API reference

POST/v1/connect/sessions

Create 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-Key header 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-Keystringoptional

A unique key so a retried request is not applied twice. Stored for 24 hours.

Body

platformenumrequired

Social platform identifier.

One of:facebookinstagramtiktoklinkedinyoutube

profileIdstringoptional

Profile to act on. Defaults to the profile the API key was created in.

redirectUrlstringoptional

HTTPS URL to return the user to once they finish.

Response

Returns 201 with the following body.

authUrlstringrequired
statestringrequired
ConnectSessionrequired

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.

StatusCodeWhen it happens
400invalid_requestThe request body or query string failed validation. The message names the offending field.
401invalid_api_keyThe key does not exist, was revoked, or is malformed. Keys start with cdyn_live_.
403profile_not_accessibleThe requested profile is outside this key’s scope, or belongs to another account.
429rate_limit_exceededToo many requests for this key. Honour the Retry-After header before retrying.
500internal_errorSomething failed on our side. Retry with the same Idempotency-Key; report the requestId if it persists.