POST
/v1/connect/sessionsCreate a connect session
Starts an OAuth flow for one profile and returns the URL to redirect your customer to.
Required permission: `connections:write`
Accepts `profileId` to target a specific profile. Omit it to use the key’s home profile.
- Base URL
- https://api.cutedyno.com
- Permission
connections:write- Idempotency
- Send an
Idempotency-Keyheader so a retry cannot apply twice. How it works
Request
curl -X POST "https://api.cutedyno.com/v1/connect/sessions" \
-H "Authorization: Bearer $CUTEDYNO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"profileId": "profile_a1b2c3d4",
"platform": "facebook",
"redirectUrl": "https://cdn.example.com/media/launch.jpg"
}'Headers
Idempotency-KeystringoptionalA unique key so a retried request is not applied twice. Stored for 24 hours.
Body
platformenumrequiredSocial platform identifier.
One of:facebookinstagramtiktoklinkedinyoutube
profileIdstringoptionalProfile to act on. Defaults to the profile the API key was created in.
redirectUrlstringoptionalHTTPS URL to return the user to once they finish.
Response
Returns 201 with the following body.
authUrlstringrequiredstatestringrequiredConnectSessionrequired
Example
{
"authUrl": "https://cdn.example.com/media/launch.jpg",
"state": "string",
"session": {
"id": "a1b2c3d4-0000-4000-8000-000000000000",
"platform": "facebook",
"status": "pending",
"authUrl": "https://cdn.example.com/media/launch.jpg",
"url": "https://cdn.example.com/media/launch.jpg",
"errorMessage": "Shipping today.",
"createdAt": "string",
"completedAt": "string",
"expiresAt": "string"
}
}Errors
Failures use the standard error envelope. Branch on code, never on the message.
| Status | Code | When it happens |
|---|---|---|
| 400 | invalid_request | The request body or query string failed validation. The message names the offending field. |
| 401 | invalid_api_key | The key does not exist, was revoked, or is malformed. Keys start with cdyn_live_. |
| 403 | profile_not_accessible | The requested profile is outside this key’s scope, or belongs to another account. |
| 429 | rate_limit_exceeded | Too many requests for this key. Honour the Retry-After header before retrying. |
| 500 | internal_error | Something failed on our side. Retry with the same Idempotency-Key; report the requestId if it persists. |