Map every connection to the workflows that reference it
connection:readReturns the reverse index connectionId -> [{id, name}, ...] for the caller's whole workspace — each credential's blast radius. Call it before deleting or replacing a connection to see what breaks.
Computed by scanning every workflow definition in the workspace for "connectionId": "<uuid>", so it covers triggers, steps, branch arms, loop bodies and error arms alike. A workflow referencing the same connection from several steps is listed ONCE.
IMPORTANT: a connection with no usage is simply ABSENT from the map — it is not present with an empty array. Treat a missing key as zero usage. A workspace where nothing references anything returns {"data": {}}.
The scan reads each workflow's DRAFT definition, so a reference that survives only in a published version and has been edited out of the draft does not appear here.
This route is matched before /api/connections/{id}, so usage is not a connection id.
Authorization
bearerAuth An API token: Authorization: Bearer grt_…. Mint one in the app under Settings → Workspace → API tokens; the raw value is shown once. Scopes confine the token — see x-permission on each operation.
In: header
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/connections/usage"{ "data": { "3f1c2a44-7b9e-4a1d-9f0e-2a5c8d1b6e30": [ { "id": "9a2b7c10-11d2-4c33-8a44-55e6f7089a1b", "name": "Order intake" } ] }}