Skip to content

POST /v1/renders

One request in, one MP4 out

One POST creates a render. Validated by a strict schema with exact JSON-path errors, delivered by webhook when the MP4 is ready.

Declarative documents

Describe scenes, elements, timing and animation in JSON. The renderer turns the description into frames — your code never touches video.

Strict validation, exact errors

Every request is validated against a versioned schema. Failures return the offending JSON path and an error code with its own docs page.

Webhooks when it's done

Get a signed webhook on completion instead of polling. Verify it with one helper call. (Paid plans.)

Idempotent by key

Send an Idempotency-Key and retries never create duplicate renders — safe to call from queues and cron jobs.

Typed SDK

A generated TypeScript client with the exact request and response types the API serves. Or use plain curl — it's just JSON over HTTPS.

Assets included

Upload images, video and audio through the API and reference them by URL in any document.

curl
curl -X POST https://api.automotion.dev/v1/renders \
  -H "Authorization: Bearer am_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "movie": {
    "schema": "v1",
    "preset": "9:16",
    "scenes": [
      {
        "id": "intro",
        "duration": "voice",
        "background": "#09090b",
        "elements": [
          {
            "id": "headline",
            "type": "text",
            "text": "Ship videos from code",
            "font": "Space Grotesk",
            "fontSize": 96,
            "fontWeight": 700,
            "position": "center",
            "animation": {
              "preset": "slide-in-up"
            }
          },
          {
            "id": "voiceover",
            "type": "voice",
            "text": "Automotion turns a JSON document into a finished video.",
            "voiceId": "Joanna",
            "language": "en-US"
          },
          {
            "id": "captions",
            "type": "subtitles"
          }
        ]
      }
    ]
  }
}'