Managing Clips
Once a job renders, it produces a clip — the finished MP4 plus its thumbnail. These endpoints let you inspect a clip's state, mark it to keep, and delete it when you no longer need it.
A clip's id is the UUID that appears in its embed/share URLs (https://dinkem.gg/clips/<id>). It's
different from the job_id you got back when submitting the render; the
clip is created by the renderer once the job succeeds. The job.completed
webhook carries the clip id, so store it against your record when the job finishes.
All clip endpoints authenticate the same way as job submission —
Authorization: Bearer YOUR_API_KEY (see Authentication) — and only ever act
on clips owned by the authenticated account. A clip id that doesn't exist, or belongs to another
account, returns 404.
The clip object
The get endpoint returns the clip as a JSON object (the save/unsave/delete commands
return an empty 204 — see each below):
{
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"state": "ready",
"is_saved": false,
"title": "",
"resolution": 1080,
"fps": 30,
"tier": "economy",
"duration_seconds": 8.5,
"size": "10485760",
"job_id": "1c8f...",
"created_at": "2026-08-06T12:00:00.000Z"
}
| Field | Type | Description |
|---|---|---|
id | string | The clip's UUID. |
state | string | ready once the clip is rendered and available, or deleted after you delete it. |
is_saved | boolean | Whether you've marked this clip to keep (see Saving a clip). |
resolution | integer | Render resolution (vertical dimension). |
fps | integer | Recording framerate. |
duration_seconds | number | Clip length in seconds. |
size | string | MP4 size in bytes, as a string (it can exceed the safe JSON integer range). |
job_id | string | null | The job that produced this clip. |
created_at | string | ISO 8601 timestamp of when the clip was created. |
Get a clip
GET https://dinkem.gg/api/clips/:id
Returns the clip object. Use it to poll a clip's state or check its is_saved
flag.
Saving a clip
POST https://dinkem.gg/api/clips/:id/save
POST https://dinkem.gg/api/clips/:id/unsave
save sets is_saved to true; unsave sets it back to false. Both return an empty 204 No Content on success, or 404 if no clip with that id belongs to your account.
Saved clips are kept indefinitely; unsaved clips are subject to automatic expiry. Save the clips your users want to keep, and leave the rest to expire on their own.
Deleting a clip
DELETE https://dinkem.gg/api/clips/:id
Deletes the clip's MP4 and thumbnail from storage and sets its state to deleted. After this, the
clip and embed pages (/clips/<id> and /clips/<id>/embed) show a "clip has been deleted" placeholder
instead of the player.
Deletion is permanent — the underlying files are removed and can't be recovered. The call is
idempotent: deleting an already-deleted clip is a no-op. Returns an empty 204 No Content on success,
or 404 if no clip with that id belongs to your account.