StarTRUSTED BY 3.2+ MILLION USERS

The short-form video API for your product

The Crayo Developer API is a REST interface that runs auto clipping, AI voiceovers, image generation, and short-form video rendering from your own code with one bearer key. It is for developers, agencies, and product teams putting Crayo inside their own apps and pipelines.

Call Crayo from your own product: auto clipping, AI voiceovers, images, and rendered short-form video over one REST API.

Get your API key
Developer API

One call, five clips

Every endpoint lives under https://api.crayo.ai and takes a single bearer key. Here is a full AutoClip job, start to queued.

cURL
curl -X POST "https://api.crayo.ai/v1/autoclip" \
  -H "Authorization: Bearer $CRAYO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "asset_id": "cm7x1k2p40001abcd",
  "clip_count": 5,
  "clip_length": 60,
  "edit_level": "full"
}'
Node
const response = await fetch("https://api.crayo.ai/v1/autoclip", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CRAYO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    asset_id: "cm7x1k2p40001abcd",
    clip_count: 5,
    clip_length: 60,
    edit_level: "full",
  }),
});

const data = await response.json();
if (!response.ok) throw new Error(data.error?.message ?? response.statusText);
console.log(data);
Response
{
  "success": true,
  "autoclip": {
    "id": "cm7x1m8880001abcd",
    "status": "queued",
    "clip_count": 5,
    "credits_charged": 5
  }
}

What you can build

Auto clipping pipelines

Send a long upload to AutoClip, ask for 2 to 20 vertical clips, and get back ready made projects with titles and thumbnails that you can export individually.

Story video generation

Compose up to 50 scenes into a project with narration, background music and a subtitle style, then render it to a finished file with one export call.

Voiceovers and images on demand

Generate narration from a script with any voice in the catalog, or produce images, icons and face swaps from a prompt without leaving your own product.

Audio cleanup and transcripts

Run speech enhancement or a voice change over media you already own, and pull word level transcripts with millisecond timings for your own captioning.

Asset management with webhooks

List, fetch and delete everything in your media library, and subscribe up to 5 webhook endpoints so your backend hears about finished renders without polling.

Internal tooling for teams

Wire Crayo into the dashboards your editors already use, check credit and storage balances before a batch run, and keep the whole pipeline on one account.

How it works

1

Create your API key

Open the developer console in your Crayo dashboard and generate a key. It is shown once and stored only as a hash, so copy it into your secret manager straight away.

2

Get your media in

Upload a file through the signed upload flow, or import one from a public https URL. Either way you get back an asset id that every other endpoint accepts.

3

Call an endpoint

Send the asset id to AutoClip, a generation endpoint, or a project you composed scene by scene, then export it. Credits are charged when the request is accepted.

4

Collect the result

Exports and AutoClip jobs run asynchronously. Poll the job endpoint or register a webhook and Crayo posts a signed payload the moment the job finishes or fails.

Every endpoint

34 endpoints across nine groups. Reads, catalogs and uploads are free. Anything that generates media spends the same credits the app does.

Account

Plan, credit balances, storage, and the rate limits on your key.

MethodPathPurposeCredits
GET/v1/accountRead plan, credit balances by type, storage usage and rate limitsFree

Assets and uploads

Your media library, plus the two ways to get files into it.

MethodPathPurposeCredits
GET/v1/assetsList assets by type and categoryFree
GET/v1/assets/{id}Fetch one assetFree
POST/v1/assetsImport media from a public https URLFree
DELETE/v1/assets/{id}Remove an unused assetFree
POST/v1/uploadsStart a direct upload and get a signed URLFree
POST/v1/uploads/{id}/completeFinish the upload and turn it into an assetFree

Generation

Images, icons, face swaps, narration and audio cleanup.

MethodPathPurposeCredits
POST/v1/image-generatorGenerate an image from a prompt1 image credit
POST/v1/icon-generatorGenerate a channel or brand icon1 image credit
POST/v1/icon-generator/bulkGenerate up to 12 icons in one call1 image credit per concept
POST/v1/face-swapSwap a face onto a target image1 image credit
POST/v1/voiceover-generatorTurn a script into narration with a chosen voice1 voiceover credit per second
POST/v1/voice-changerRe-voice an existing audio asset1 voiceover credit per second
POST/v1/speech-enhancerClean up noisy or muffled speech1 voiceover credit per second

Catalogs

Voices, languages, subtitle styles and background music.

MethodPathPurposeCredits
GET/v1/voicesBrowse voices by gender and accentFree
GET/v1/voices/languagesList the languages voices can speakFree
GET/v1/subtitle-stylesList caption styles you can attach to a projectFree
GET/v1/musicBrowse background music by genreFree

Transcripts

Word level speech to text over your own media.

MethodPathPurposeCredits
POST/v1/transcriptsTranscribe an asset with per word timings1 voiceover credit per second, repeats cached free

Projects

Compose scenes into a video, then render it.

MethodPathPurposeCredits
POST/v1/projectsBuild a project from scenes, narration, music and captionsFree unless captions need transcription
GET/v1/projectsList your projectsFree
GET/v1/projects/{id}Fetch one project with its full specFree
PATCH/v1/projects/{id}Update a project you created through the APIFree in most cases
DELETE/v1/projects/{id}Delete a projectFree
POST/v1/projects/{id}/exportRender the project, asynchronously1 export credit per second of finished video

Exports

Track renders and collect the finished file.

MethodPathPurposeCredits
GET/v1/exportsList renders for an account or projectFree
GET/v1/exports/{id}Check render status and grab the output assetFree

AutoClip

Turn a long video into vertical shorts automatically.

MethodPathPurposeCredits
POST/v1/autoclipQueue 2 to 20 clips from a long source video1 video credit per requested clip
GET/v1/autoclipList your AutoClip jobsFree
GET/v1/autoclip/{id}Check a job and read back its finished clipsFree

Webhooks

Get told when long running work finishes.

MethodPathPurposeCredits
POST/v1/webhooksRegister an endpoint and receive its signing secretFree
GET/v1/webhooksList your webhook endpointsFree
DELETE/v1/webhooks/{id}Remove an endpointFree
POST/v1/webhooks/{id}/testFire a test delivery at an endpointFree

Credits, limits and rates

No separate API plan and no separate bill. Keys work on any Crayo account and run at full capability on any paid plan. See pricing for what each plan includes.

How credits work

  • Credits come out of the same balance the app uses: image, voiceover, export and video.
  • They are charged when a request is accepted, and every async response reports credits_charged.
  • Uploads, imports, catalogs, listings and job polling never cost credits.
  • Free accounts have no credits or storage, so chargeable calls return 402 until you are on a plan.

Hard limits

  • Uploads up to 20 MB for images, 100 MB for audio and 1 GB for video, or 100 MB per URL import.
  • Projects hold up to 50 scenes and 10 minutes of video, with 200 projects per account.
  • AutoClip takes sources from 1 minute to 3 hours and runs up to 3 jobs at a time.
  • Two exports render concurrently, and up to 5 webhook endpoints can be registered per account.

Rate limits per key

  • Default2 requests per second, 50 per minute
  • Heavy generation2 requests per second, 10 per minute
  • Polling2 requests per second, 120 per minute
  • Uploads2 requests per second, 20 per minute

FAQs

Frequent questions

Create a key in the Crayo developer console and send it as an Authorization: Bearer header on every request. The key is shown once and stored only as a hash, so save it somewhere safe.

The API spends the same credits as the app: image, voiceover, export and video. Credits are charged when a request is accepted, and the response tells you how many were charged.

No plan tier is required. Every Crayo account can create a key, and the API is usable at full capability on any paid plan, since chargeable calls draw on your credit and storage balance.

Exports and AutoClip jobs are asynchronous. They return a queued id immediately, then you poll the job endpoint or register a webhook for export.completed, export.failed, autoclip.completed and autoclip.failed.

Per key, most endpoints allow 2 requests per second and 50 per minute. Heavy generation is 10 per minute, polling is 120 per minute, and uploads are 20 per minute.

Clipping pipelines that turn long uploads into vertical shorts, story videos composed scene by scene, generated images and narration, and asset libraries kept in sync through webhooks.

Still have questions?

Contact our 24/7 support team for any concerns or inquiries.

Get in touch