# Connect Render

> Watch the deploys of your Render services and whether they are suspended. A failed deploy reaches your Mac's notch with its commit, and a suspended service says who suspended it.

Source: https://coisland.app/docs/connect-render/

## What you need

- **You need:** API key, from Account Settings › API Keys (https://dashboard.render.com/u/settings)
- **The form asks:** Connector name, API key
- **You can watch:** Failed deploys, Suspended services
- **Access:** GET requests only; a Render key itself cannot be read-only

CoIsland calls Render's REST API straight from your Mac: there is no CoIsland server and no CoIsland account. The key stays in your login Keychain, and every request the Render connector sends is a `GET`. A Render key has no scopes: it acts with your role in every workspace you belong to.

## Create a Render API key

1. In the Render Dashboard, open **Account Settings › API Keys** (`dashboard.render.com/u/settings`) and click **Create API Key**.
2. Name it, such as `CoIsland`, and copy it: Render shows it only once. It does not expire; revoke it there when you stop using it.

Any member can create a key for their own account; there is no approval step.

### When your workspace blocks the key

- **Two-factor authentication enforced:** the key reaches the workspace's services once your account has 2FA.
- **Google sign-in enforced:** only keys created while signed in with Google work.
- **SAML single sign-on required:** your keys work again after you sign in through SSO.
- **Viewer and Billing roles** cannot see some of a service's details.

CoIsland then says "service srv-…: not allowed. The workspace may require two-factor authentication, Google sign-in or SAML SSO for API keys, or your role may not include it."

## Connect Render in CoIsland

1. Open **Settings › Connectors** and click **+** (Add Connector).
2. Choose **Render**, fill in the two fields, then click **Test connector**.
3. Click **Add Connector**.

| Field | What to enter |
|---|---|
| Connector name | What monitors call it. CoIsland suggests `render` |
| API key | The key you copied, with no spaces or line breaks |

**Test connector** calls `GET /v1/users` and `GET /v1/owners` and saves nothing. It shows your name, email and workspaces.

## Watch Render: the two monitor kinds

| Kind | What alerts | What CoIsland calls |
|---|---|---|
| Failed deploys | A deploy of the last 7 days that failed to build (`build_failed`), to start (`update_failed`) or in its pre-deploy command (`pre_deploy_failed`) | `GET /v1/services/{id}` and `GET /v1/services/{id}/deploys`, per service |
| Suspended services | A service suspended, by a person, for billing or for crash looping | `GET /v1/services?suspended=suspended` |

```text
service:srv-abc123 service:srv-def456
workspace:tea-abc123
workspace:all
```

- `service:` takes service IDs (`srv-…`), from 1 to 10; the picker lists your services by name, and the card names them.
- `workspace:all` watches every workspace of the key.
- A resumed service leaves the result; suspended again, it alerts again.

Clicking a row in the notch opens the alert in CoIsland: a failed deploy with its status, commit, trigger and duration; a suspended service with who suspended it, or "Resumed" once it runs again. **Open in Render** goes to the deploy or the service in the Dashboard.

A Render monitor's `-- kind:` is `render.deploys` or `render.suspended`.

## Troubleshooting Render connector errors

- **"The API key was refused."** Render answered 401 `Unauthorized`: the key was revoked, or its user left.
- **"service srv-…: Not found, or not visible to this token."** The service was deleted, or belongs to a workspace you left.
- **"Rate limited."** Render allows 400 reads a minute per user; CoIsland waits, then retries.

## Frequently asked questions

### Can CoIsland change anything on Render?

No. The connector only sends `GET` requests: it never deploys, restarts, suspends or resumes a service.
