Connections

Connections

Reference article: Part of the API reference. To connect and manage apps in Nimbus, see Managing connections.

A connection is an app linked to Nimbus, such as Slack or Google Calendar, that the agent and runs can use. These endpoints list your organization's connections and whether each one works, so you can monitor integrations from your own dashboards and catch a broken one before work depends on it.

Connections are read-only through the API. They only ever include safe fields: which app it is, its status, and who owns it. Credentials, tokens, and secrets are never returned.

The Connection object

{
  "id": "f2b7d4e9-8a1c-4c5f-b3e6-9d0a7c2e5f18",
  "object": "connection",
  "app": "google_calendar",
  "status": "connected",
  "owner": "user",
  "workstream": null,
  "created": 1755100800,
  "updated": 1758700000
}
Field Type Description
id string The connection's ID.
object string Always connection.
app string The connected app, such as google_calendar or slack.
status string pending_oauth, connected, revoked, or error. See Statuses.
owner string user if one person connected it for themselves, organization if it's shared by the organization.
workstream string or null The ID of the workstream it's tied to, if any.
created integer or null When it was connected, in Unix seconds.
updated integer or null When it last changed, in Unix seconds.

Statuses {#statuses}

Status Meaning
pending_oauth Someone started connecting the app but hasn't finished signing in to it.
connected The connection works.
error The connection has a problem. Check it in the app, and reconnect it if needed.
revoked The connection was disconnected. Hidden from lists unless you filter for it.

List connections

Returns the organization's connections, newest first, including ones individual people connected for themselves. Revoked connections are left out unless you filter for them with status=revoked.

GET /v1/connections

Scope: connections:read

Parameter In Type Description
limit query integer, optional How many objects to return, 1–100. Default 20.
cursor query string, optional The next_cursor from the previous page. See Pagination.
status query string, optional Only connections with this status: pending_oauth, connected, revoked, or error.

::: code-group

curl "https://api.gonimbus.ai/v1/connections?status=error" \
  -H "Authorization: Bearer $NIMBUS_API_KEY"
const response = await fetch('https://api.gonimbus.ai/v1/connections?status=error', {
  headers: { Authorization: `Bearer ${process.env.NIMBUS_API_KEY}` },
})
const { data: broken } = await response.json()
response = requests.get(
    "https://api.gonimbus.ai/v1/connections",
    params={"status": "error"},
    headers={"Authorization": f"Bearer {os.environ['NIMBUS_API_KEY']}"},
)
broken = response.json()["data"]

:::

Returns a list object of Connection objects.

Retrieve a connection

Returns one connection, including a revoked one.

GET /v1/connections/{connection}

Scope: connections:read

Parameter In Type Description
connection path string The connection's ID.

::: code-group

curl https://api.gonimbus.ai/v1/connections/f2b7d4e9-8a1c-4c5f-b3e6-9d0a7c2e5f18 \
  -H "Authorization: Bearer $NIMBUS_API_KEY"
const response = await fetch('https://api.gonimbus.ai/v1/connections/f2b7d4e9-8a1c-4c5f-b3e6-9d0a7c2e5f18', {
  headers: { Authorization: `Bearer ${process.env.NIMBUS_API_KEY}` },
})
const connection = await response.json()
response = requests.get(
    "https://api.gonimbus.ai/v1/connections/f2b7d4e9-8a1c-4c5f-b3e6-9d0a7c2e5f18",
    headers={"Authorization": f"Bearer {os.environ['NIMBUS_API_KEY']}"},
)
connection = response.json()

:::

Returns the Connection object, or 404 resource_missing if no connection has that ID.

Example scenario

An IT team runs a nightly check that lists connections with status=error and posts any it finds to their operations workstream with Post a message, naming the app and whether it's a personal or organization connection. Someone reconnects it in the morning, before a scheduled run fails for lack of access.

FAQ

Can I get a connection's access token through the API?

No. The API never returns credentials, tokens, or references to them, for any key type.

Can I connect or disconnect an app through the API?

No. Connect, reconnect, and remove apps in the app. See Managing connections.

Why is a connection I disconnected not in the list?

Disconnected connections have the status revoked and are hidden by default. List them with status=revoked.

Do I see people's personal connections?

Yes, with owner set to user, so you can tell they're personal. You see which app is connected and its status, never its credentials.

How do I fix a connection in error?

Check it in the app, where the connector card shows what went wrong, and reconnect it. See Managing connections.