Skip to main content
The Corsair SDK is TypeScript-only, but Hub itself is a plain HTTP service. A Go, Python, or Ruby backend integrates by calling these endpoints directly. Credentials are still delivered to your endpoint and stored in your database. Hub stores none. Every request authenticates with your environment API key (ck_dev_… locally, ck_prod_… in production):

Create a connect session

Returns HTTP 201 with { "token", "connectUrl", "projectId", "environmentId", "expiresAt" }. Redirect the user’s browser to connectUrl. Hub hosts the connect page and the OAuth callback.

Receive the delivery

When the user finishes connecting, Hub POSTs a signed JSON envelope to your deliveryUrl. The body is { "type", "payload" }, with these headers: Verify before trusting the body. Recompute the HMAC over the raw bytes and compare in constant time:
Only after verify passes: parse the body, exchange or store the credential, and respond 200.

List connections

cURL
Returns an array of { tenantId, plugin, status, authType, connected, verified, missingFields, reportedAt }, one entry per tenantId:plugin. connected and verified are booleans; reportedAt is an ISO timestamp.

Rate limits

Connect and permission session creation share a limit of 100 sessions per hour per environment. Over the limit returns HTTP 429. Malformed requests do not consume quota.