JsonCut
V2 API AND WEBHOOKS

Start the render.
Continue when it is ready.

Create editable projects, reuse typed templates, render images or video asynchronously and continue the workflow through signed webhooks.

Images and videoAsync by defaultSigned webhooks
CREATE RENDERPOST
/api/v2/projects/project_id/renders
kindvideo
formatmp4
Idempotency-Key
queuedrenderingcompleted
RENDER COMPLETED200
product-launch.mp41920 × 1080
render.completedSigned delivery sent
ONE PRODUCTION FLOW

Keep the request fast.
Let production finish safely.

Your application does not need to keep a connection open while media renders. Every path returns a trackable resource with the same lifecycle.

  1. 01
    Choose the source

    Use a project, published template or a bounded inline source.

  2. 02
    Attach media

    Upload real files once and reference the owned media record.

  3. 03
    Submit

    Create an idempotent image, video or bulk render request.

  4. 04
    Observe

    Read the canonical render state while work continues asynchronously.

  5. 05
    Continue

    Download the artifact or let a signed webhook start the next step.

THE PUBLIC V2 SURFACE

Everything needed
for visual production.

This overview stays grouped by durable workflows. The interactive reference remains the source of truth for parameters, schemas and responses.

Open the complete V2 API reference
RENDER · PRODUCT LAUNCHrender_01K4…
QUEUED12:24:02
RENDERINGFrame 284 / 450
ARTIFACTWhen complete
Poster readyMP4 rendering63%
POST accepted immediatelyGET returns current stateDELETE cancels unfinished work
ONE CANONICAL LIFECYCLE

Queue it once.
Know what happened.

Project, template and inline requests all become the same render resource. Your integration can use one status model for images and video.

  • Idempotent creationRepeated requests with the same caller key return the existing operation.
  • Actionable statesQueued, rendering, completed, failed or cancelled stay easy to branch on.
  • Durable output accessCompleted resources expose the artifact and its output metadata.
Read the render lifecycle
SIGNED WEBHOOKS

Stop polling
when the result matters.

Register the render events your application needs. JsonCut signs each raw payload, retries bounded delivery failures and keeps a safe delivery history.

render.completedrender.failedrender.cancelled
Set up and verify webhooks
JsonCut EVENTrender.completedevt_01K4…
HMAC SHA-256
YOUR ENDPOINT2xx
POST /jsoncut-events
Signature verified
Event acknowledged
DELIVERED1 attempt · 184 ms
START WITH ONE REQUEST

A small integration surface.
A complete production loop.

Use the quickstart for the first project render, then add webhook verification when the workflow moves into production.

Submit a renderREQUEST
curl -X POST "$JSONCUT_API/api/v2/projects/$PROJECT_ID/renders" \
  -H "X-API-Key: $JSONCUT_API_KEY" \
  -H "Idempotency-Key: product-launch-42" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "video",
    "format": "mp4",
    "retention": "project"
  }'
curl -X POST "$JSONCUT_API/api/v2/projects/$PROJECT_ID/renders" \ -H "X-API-Key: $JSONCUT_API_KEY" \ -H "Idempotency-Key: product-launch-42" \ -H "Content-Type: application/json" \ -d '{ "kind": "video", "format": "mp4", "retention": "project" }'
Receive completionEVENT
{
  "id": "evt_01K4…",
  "type": "render.completed",
  "createdAt": "2026-08-30T12:24:18Z",
  "data": {
    "renderId": "render_01K4…",
    "status": "completed",
    "artifactCount": 1
  }
}
{ "id": "evt_01K4…", "type": "render.completed", "createdAt": "2026-08-30T12:24:18Z", "data": { "renderId": "render_01K4…", "status": "completed", "artifactCount": 1 } }

Keep keys server-sideUse scoped API keys for each environment and integration.

Retry deliberatelyReuse idempotency keys and only retry errors marked retryable.

Acknowledge quicklyVerify the raw body, deduplicate the event ID and process asynchronously.

PROJECT · RENDER · DELIVER

Connect the next workflow.
Keep the creative editable.

Start from a real Studio project, add the public V2 API and let signed events move completed media through your stack.

Open the API quickstart