# DevMotion Video API

Generate, customize, and render videos programmatically. Design templates in the editor, then produce thousands of personalized videos via a simple REST API.

Base URL: `https://devmotion.app/api/v1`

Authentication: pass your API key as a Bearer token in every request.

Authorization header

    Authorization: Bearer dm_live_YOUR_API_KEY

Get your API key →

## Quick Start

1. Get your API key — go to your Profile page and create a key. Requires Creator or Pro plan.

2. Create a render

curl

    curl -X POST https://devmotion.app/api/v1/renders \
      -H "Authorization: Bearer dm_live_YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "template_id": "laptop-3d-intro",
        "modifications": [
          { "layer": "Browser", "property": "props.url",
            "value": "https://yoursite.com" }
        ],
        "webhook_url": "https://yourserver.com/webhook"
      }'

3. Get the result — poll `GET /renders/:id` or wait for the webhook callback with the video URL.

POST /renders — response

    {
      "id": "render_abc123",
      "status": "rendering",
      "output_url": null,
      "webhook_url": "https://yourserver.com/webhook",
      "metadata": null,
      "created_at": "2025-01-15T10:30:00Z"
    }

> Rendering is asynchronous. The response is `202 Accepted` immediately; `output_url` is populated when the render completes.

## Endpoints

Method | Path | Description
--- | --- | ---
`POST` | `/renders` | Create a render job
`GET` | `/renders` | List renders
`GET` | `/renders/:id` | Get render status & result
`GET` | `/templates` | List templates
`GET` | `/templates/:id` | Get template details
`GET` | `/projects/:id` | Get project structure
`POST` | `/projects/:id/actions/:actionId` | Run a media action
`GET` | `/projects/:id/exports` | List video exports

All paths are relative to `https://devmotion.app/api/v1`.