The Crayo API publishes an OpenAPI 3.1 document at crayo.ai/docs/openapi.json that describes all 68 endpoints with their parameters, request bodies, example responses and error codes. Import it into an API client or a code generator to get a typed SDK.
The document is generated from the same endpoint registry that renders these pages and the API console in the Crayo app, so it always matches what is documented here. It is served as plain JSON.
curl -o crayo-openapi.json "https://crayo.ai/docs/openapi.json"3.1.0, title Crayo API, server https://api.crayo.ai.bearerAuth HTTP bearer scheme applied to every operation. Supply a key that starts with crayo_sk_.Operations are keyed by path and lower-case method. Each one carries the endpoint id as operationId, the description and notes from these docs, path and query parameters with enums and defaults, a JSON request body schema with an example where the endpoint takes a body, and a 200 response schema inferred from the example response.
{
"/v1/projects/{id}/export": {
"post": {
"operationId": "export-project",
"summary": "Export project",
"tags": [
"Projects"
],
"x-credits": "1 export credit per second of finished video",
"x-rate-limit": {
"tier": "heavy",
"requests_per_second": 2,
"requests_per_minute": 10
}
}
}
}x-credits is the plain-language cost string shown on every endpoint page.x-rate-limit names the tier and its requests per second and per minute, the same numbers as the rate limit tables.components.schemas defines the Error envelope and the objects that View Tracker responses and webhooks reuse everywhere they appear. A field we do not have is null, never omitted.
| Schema | Description |
|---|---|
| Profile | An account on any platform. The same shape comes back from a live lookup, a tracker's latest reading, a feed's profile and a webhook. Fields a platform does not expose are null, never omitted. |
| Post | A single video, reel, photo post or tweet. Counts are the platform's numbers at observed_at. video_url is always null: this API never returns media download links. Use thumbnail_url and images for visuals. A stored post also carries null for fields we never keep (images, and owner on profile feeds). |
| Comment | A comment on a post. |
| ProfileSnapshot | One stored reading of a profile. |
| PostSnapshot | One stored reading of a post. |
| TrackedPost | A post inside a profile tracker: the post object plus when we first and last saw it and whether it has been removed. |
| Tracker | A managed target: a profile or a single post that we refresh on your cadence and keep every reading of. |
| TrackerEvent | Something that changed on a tracked target between two refreshes. Kept for 90 days. |
| Usage | Your tracker credits, projected spend and target count. |
| Insights | Optional math over a profile tracker's stored readings. Every field is null until there is enough history. |
| AccountAbout | The public bio and headline stats of an account. |
| AccountSummary | One entry in a followers or following list. |
| BatchItem | The result for one target in a batch create, in the order you sent them. |
| Pagination | Every list answers with the same pagination object. Pass next_cursor back unchanged as cursor to get the next page; stop when has_more is false. A cursor is an opaque signed token bound to your account and to the request that produced it. Sending it with a different target, route or account is 400 VALIDATION_ERROR (invalid cursor). |
| TranscriptSegment | One timed line of a transcript. |
| Tag | Endpoints | Reference |
|---|---|---|
| Account | 1 | /docs/account |
| Assets and Uploads | 7 | /docs/assets |
| Generation | 6 | /docs/generation |
| Catalogs | 4 | /docs/catalogs |
| Transcripts | 1 | /docs/transcripts |
| Projects | 6 | /docs/projects |
| Exports | 2 | /docs/exports |
| AutoClip | 3 | /docs/autoclip |
| Speech Enhancer | 5 | /docs/speech-enhancer |
| View Tracker: Raw (manage it yourself) | 15 | /docs/view-tracker-raw |
| View Tracker: Managed (our scheduler) | 14 | /docs/view-tracker-managed |
| Webhooks | 4 | /docs/webhooks |
Create an API key on the Crayo Developers page, send it as a bearer token to api.crayo.ai, and learn the rate limits, error envelope and webhooks.
API docsReference for GET /v1/account on the Crayo API: plan, credit balances by type, storage usage and the rate limits that apply to your key.
FeatureCall Crayo from your own product: auto clipping, AI voiceovers, images, and rendered short-form video over one REST API.
API docsImport media from a URL or upload bytes through a signed URL, then list, rename and delete the assets every other Crayo API endpoint reads from.
API docsGenerate images, icon sets, face swaps, narration and voice changes through the Crayo API. Every result is stored as an asset you can place in a project.
API docsList the narration voices, voice languages, burned-in subtitle styles and background music tracks that Crayo API projects and generators accept.
FAQs
Frequently asked questionsFrequent questionsContact our 24/7 support team for any concerns or inquiries.