Archived docs Get your API Key
Get started
Tutorials
Guides
Reference
Help for AI agents
🤖 AI Assistant

Generic HTTP integration

Any automation tool that can make an authenticated HTTP request can call JSON2Video. This includes Zapier, Pipedream, Activepieces, Power Automate, or your own custom backend.

The recipe is always the same: POST /v2/movies to start a render, then GET /v2/movies?project=... to check status. This guide gives you the cURL primitives — translate them to your tool's HTTP action.

Authentication

Every request needs an x-api-key header containing your API key. Get one from the dashboard at json2video.com/dashboard/apikeys. Create a secondary key with the Render role for any third-party tool.

Submit a render

curl -X POST https://api.json2video.com/v2/movies \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "resolution": "full-hd",
    "scenes": [
      {
        "elements": [
          { "type": "text", "text": "Hello from HTTP!", "duration": 5 }
        ]
      }
    ]
  }'

Response:

{
  "success": true,
  "project": "WAEE8PohgVwv2teP",
  "timestamp": "2025-05-28T14:57:34.393Z"
}

Save the project value — you'll need it to check status.

Poll for status

curl https://api.json2video.com/v2/movies?project=WAEE8PohgVwv2teP \
  -H "x-api-key: YOUR_API_KEY"

Response (in progress):

{ "success": true, "movie": { "project": "WAEE8PohgVwv2teP", "status": "running", "progress": 42 } }

Response (finished):

{
  "success": true,
  "movie": {
    "project": "WAEE8PohgVwv2teP",
    "status": "done",
    "url": "https://assets.json2video.com/clients/.../movie.mp4",
    "thumbnail": "https://assets.json2video.com/clients/.../thumbnail.jpg",
    "duration": 12.5
  }
}

Poll every 5-10 seconds until status is one of: done, error, timeout.

Tool-specific notes

Zapier

  • Use the Webhooks by Zapier → Custom Request action with method POST, the JSON above, and the x-api-key header.
  • Zapier's free tier executions a step every 15 minutes, so polling-based flows can be slow. Use a webhook destination on the render request and a Webhooks by Zapier → Catch Hook trigger to react instantly.

Pipedream

  • Use the HTTP / Webhook → Custom Request action.
  • Pipedream supports JavaScript code steps — drop in a polling loop with setTimeout between requests.

Power Automate

  • Use the HTTP action (premium connector). Set the URI, method, headers, and body inline.
  • Use the Until control to poll until body('GET_status').movie.status is done.

Bubble / Webflow / other low-code

  • Use the platform's HTTP integration (usually called API Connector or similar).
  • Configure two endpoints: one POST (create movie), one GET (status). Reuse the API key as a shared header.

Use a webhook to avoid polling

For backends and tools that can receive HTTP, configure a webhook destination on the render request so JSON2Video calls you when the video is ready:

{
  "resolution": "full-hd",
  "scenes": [ /* ... */ ],
  "exports": [{
    "destinations": [{
      "type": "webhook",
      "endpoint": "https://your-app.example.com/api/json2video-done"
    }]
  }]
}

Your endpoint receives a POST with the full movie object as the body when the render finishes. See Webhooks (production) for the full receiver pattern.

See also