CuraeAI Developers
API referenceSDK Curae Connect

Initiate a Curae Connect entry-flow session (Path A / B / C selection)

Mints a fresh CuraeConnectSession for the SDK app's (customerAccountId, appUserId) coordinate. Path selection is deterministic from the bound `LimitedAccountAppBinding`: existing-ACTIVE → Path A (`EXISTING_ACTIVE_HANDOFF`, handoff lands in-tx), no-binding + `preferSignup: true` → Path B (`NEW_ACTIVE_SIGNUP_HANDOFF`, requires `completeHandoff`), else → Path C (`SILENT_LIMITED`, reuses or provisions a LIMITED user). The route requires `connection:write` scope and an `Idempotency-Key` (retries replay the original response verbatim). Rate-limited at 10 req / customer-account / appUserId / minute on top of the standard Platform API buckets.

POST/api/sdk/v1/curae-connect/initiate

Mints a fresh CuraeConnectSession for the SDK app's (customerAccountId, appUserId) coordinate. Path selection is deterministic from the bound LimitedAccountAppBinding: existing-ACTIVE → Path A (EXISTING_ACTIVE_HANDOFF, handoff lands in-tx), no-binding + preferSignup: true → Path B (NEW_ACTIVE_SIGNUP_HANDOFF, requires completeHandoff), else → Path C (SILENT_LIMITED, reuses or provisions a LIMITED user). The route requires connection:write scope and an Idempotency-Key (retries replay the original response verbatim). Rate-limited at 10 req / customer-account / appUserId / minute on top of the standard Platform API buckets.

Authorization

platformApiKey
AuthorizationBearer <token>

CuraeAI Platform API key using the format Bearer . Keys are opaque credentials such as cae_live_..., not JWTs.

In: header

Header Parameters

Idempotency-Key*string

Required idempotency key for safe initiate retries.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/sdk/v1/curae-connect/initiate" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "appUserId": "string"  }'
{  "session": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",    "customerAccountId": "d8c60791-7301-441c-98e8-5bea9a162d9b",    "appUserId": "string",    "subjectUserId": "296d2d93-03fc-4d0e-b7e7-4f7600664125",    "state": "INITIATED",    "handoffReturnUrl": "http://example.com",    "deviceKeyCnf": {},    "ttlExpiresAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z",    "completedAt": "2019-08-24T14:15:22Z"  },  "path": "EXISTING_ACTIVE_HANDOFF",  "subjectUserId": "296d2d93-03fc-4d0e-b7e7-4f7600664125",  "createdLimitedAccount": true,  "handoffToken": "string",  "handoffTokenExpiresAt": "2019-08-24T14:15:22Z"}
{  "type": "string",  "title": "string",  "status": 0,  "detail": "string",  "instance": "string",  "code": "string",  "details": {},  "retryable": true}