connections
GET /v1/connections/providers
Every provider a customer can connect, with its form and its checklist.
Authentication
Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X GET https://api.zinndigital.com/v1/connections/providers \
-H "Authorization: Bearer zdk_live_…"Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
The **catalogue**: for each connectable provider, which credential fields it takes (and which of them are secret), and which permissions we will test it for. Served as an endpoint rather than baked into each client because the six BYO DNS vendors take credentials of one, two and five fields — ClouDNS needs `auth_id` and `auth_password`, Azure needs five — and hardcoding those in a client duplicates the driver's own `required_settings` across the wire, where the two copies are free to drift apart. Every field name here is read off the driver class itself, so a vendor that gains a required setting changes this response and cannot be connected with a bundle it will refuse. `shapes` is a list of **alternative** credential forms; a client renders the first and offers the rest. Cloudflare is the live case: a scoped API token, or the account email plus its Global API Key. `permissions` is empty when we have no permission model for that provider. ⛔ Render that as "we cannot test this provider's permissions" — **never** as a satisfied (empty) checklist, which is a different and wrong claim. Requires authentication only; it describes what *can* be connected, not what anyone has connected.
Response
| Name | Type | Required | What it is |
|---|---|---|---|
data | ConnectionProviderDescriptor[] | Yes | — |
Errors this endpoint can return
401 · 429