API reference
Conventions shared by every endpoint, and the full endpoint index.
A REST API over JSON. One base URL, bearer auth, predictable resources.
https://api.cutedyno.comOpenAPI (always in sync with the server): /docs/api/openapi.json.
Conventions
| Topic | Rule |
|---|---|
| Auth | Authorization: Bearer cdyn_live_... |
| Bodies | JSON, Content-Type: application/json |
| Fields | camelCase; timestamps ISO 8601 UTC |
| Profiles | Pass profileId or use the key's home profile |
| Idempotency | Idempotency-Key on writes |
| Errors | { error: { code, message, requestId } } |
| Rate limits | RateLimit-* headers; 429 includes Retry-After |
See Authentication, Idempotency, Errors, Rate limits.
Pagination
Two styles, depending on the resource:
Offset pagination — posts, events, logs. Send page and limit, read total and hasMore:
const { posts, hasMore } = await cutedyno.posts.list({ page: 2, limit: 50 });Or let the SDK walk it for you:
for await (const post of cutedyno.posts.iterate({ status: 'failed' })) {
console.log(post.id);
}Cursor pagination — comments, which change while you read them. Send cursor from the previous response's nextCursor, and stop when it is null.
limit is capped at 100 everywhere. Requesting more is not an error; you get 100.
Status values
A post moves through these:
| Status | Meaning |
|---|---|
draft | Saved, no schedule. Nothing will happen until you schedule or publish it. |
pending_approval | Waiting on an approver. |
approved | Approved and about to continue. |
rejected | An approver declined it. It stays unpublished. |
scheduled | Queued for a future time. |
queued | Handed to a worker, about to be published. |
processing | Currently uploading to platforms. |
published | Succeeded on every target account. |
partially_published | Succeeded on some accounts, failed on others. |
failed | Failed on every target account. |
cancelled | Cancelled before publishing. |
partially_published is the one people forget. Posting one video to five platforms means five independent uploads with five sets of rules, and a duration that TikTok accepts may exceed what another allows. Treat it as an expected outcome: read results, and retry only what failed.
Endpoints
Profiles
A profile is one customer of your platform. It owns connected accounts, posts, and policy.
API keys
Mint and revoke keys, optionally scoped to specific profiles.
Accounts
Connect social accounts to a profile and list what is connected.
Posts
Create, schedule, publish, and inspect posts.
- GET
/v1/postsList posts - POST
/v1/postsCreate a post - POST
/v1/posts/validateValidate a post - GET
/v1/posts/{id}Get a post - PUT
/v1/posts/{id}Update a post - DEL
/v1/posts/{id}Cancel a post - POST
/v1/posts/{id}/publishPublish a post - POST
/v1/posts/{id}/retryRetry a failed post - GET
/v1/posts/{id}/historyGet post state history
Comments
Read comments on published content.
Media
Upload images and video for use in posts.
Analytics
Read account performance, timeseries history, and top content.
Webhooks
Receive events instead of polling. Includes delivery logs and tests.
- GET
/v1/webhooksList webhook subscriptions - POST
/v1/webhooksCreate a webhook subscription - POST
/v1/webhooks/{id}/testSend a test event - GET
/v1/webhooks/{id}/deliveriesList webhook deliveries - PATCH
/v1/webhooks/{id}Update a webhook subscription - DEL
/v1/webhooks/{id}Delete a webhook subscription - POST
/v1/webhooks/{id}/rotate-secretRotate the signing secret
Policy
Guardrails applied to everything in a profile.
Observability
Audit events and API request logs for debugging and compliance.