API keys
API keys are the credentials your code uses to call the JSON2Video API. Every request must include the key in the x-api-key header. The dashboard at json2video.com/dashboard/apikeys is where you create, manage, and rotate them.
TODO: capture screenshot of the API keys panel showing the list of project keys with their roles.
Project API keys
JSON2Video uses a single, role-based model: Project API keys.
- A first project key is generated automatically when you sign up and emailed to you so you can start calling the API immediately.
- You can create as many additional project keys as you need.
- Each key has a configurable role that limits what it can do.
- Each key can have an optional expiration date.
- Use a dedicated key per environment (production, staging, development) and per third-party integration (Make.com, Zapier, n8n).
The previous Primary / Secondary split is deprecated. All keys are now project keys with a role.
Permission roles
Every project key is assigned one of three roles:
| Role | Can do |
|---|---|
| Render | Render videos only. Cannot create / edit templates. Cannot manage connections. Best for production render workers and read-only integrations. |
| Editor | Render + create / edit / manage templates. Use for Make.com / n8n flows that need to create templates. |
| Manager | Editor + manage Connections. Use for tools that need to set up integrations on your behalf. |
When you create a third-party integration, start with the minimum role (usually Render) and only escalate if the integration actually needs more. If a key is leaked, the blast radius is bounded by its role.
Creating a project key
- Open json2video.com/dashboard/apikeys.
- Click Add new API key.
- Give it a name (e.g. "Make.com — production").
- Choose a role:
Render,Editor, orManager. - Optionally set an expiration date.
- Click Save.
The new key appears once in a dialog — copy it immediately. After you close the dialog, the dashboard only shows a masked preview. If you lose a key, delete it and create a new one.
Using a key
Send the key in the x-api-key header on every API request:
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": [ /* ... */ ] }'
Code samples for every SDK are in the Quickstart.
Rotating a key
- Create a new project key with the same role.
- Update the consuming service (Make.com, n8n, your code) with the new key.
- Verify the service still works.
- Delete the old key from the dashboard.
This pattern avoids downtime — both keys are valid during the transition window.
Security best practices
- Never commit keys to git. Use environment variables (
JSON2VIDEO_API_KEY) and a.envfile ignored by git. - Never paste keys into public templates, Slack channels, or GitHub issues. Treat them like passwords.
- One key per environment. Production, staging, and development should each have their own key with the minimum role.
- One key per third-party integration. If Make.com is compromised, you should be able to revoke its key without touching anything else.
- Set expiration dates on keys for time-bound automations.
- Rotate keys on team changes. If someone with access to the dashboard leaves, rotate any keys they could have copied.
Revocation
Delete a key from the dashboard to immediately revoke it. Any in-flight render started with that key continues — revocation only affects new requests.