API

API reference

Version 2026-11-01OpenAPI 3.1Download openapi.json

Upload videos, publish a player, and build around events. Your API key connects your library to your application. Start with the quickstart.

Videos

Create, organise and publish your video library.

List videos

GET /videos

read requests

Return your videos, newest first. Follow next_cursor with the same filters. An insertion between pages can shift a result. Restart from the first page after a cursor expires.

Parameters

query

NameTypeRequiredDescription
statusenum: waiting_for_upload | processing | ready | failedNoFilter by status.
folder_idstringNoFilter by folder.
qstringNoSearch your video titles.
limitintegerNoResults per page.
cursorstringNoOpaque cursor from the previous response.

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: listYes
dataarray of object (Video)Yes
has_morebooleanYes
next_cursorstring or nullYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Create a video

POST /videos

write requestsSupports idempotency

Create a video from an upload, an HTTP or HTTPS URL, or a video whose owner allows cloning. For uploads, send bytes to the returned tus endpoint. URL ingest has a separate service ceiling; read the upload guide. Upload creation also spends one upload request.

Parameters

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
titlestringNo
folder_idstring or nullNo
sourceobjectYes
JSON
{
  "title": "Launch trailer",
  "source": {
    "type": "upload"
  }
}

Responses

StatusDescriptionSchema
201Successful response.object
NameTypeRequiredDescriptionExample
videoobject (Video)Yes{ "object": "video", "id": "h87x", "title": "Launch trailer", "status": "ready", "processing": null, "failure": null, "source": "upload", "folder_id": "fld_3", "enabled": true, "disabled_by_moderation": false, "duration": 184, "size": 119248005, "max_height": 1080, "playback": { "player_url": "https://todayfiles-play.site/h87x", "embed_html": "<iframe src=\"https://todayfiles-play.site/h87x\" width=\"100%\" height=\"100%\" frameborder=\"0\" allowfullscreen></iframe>", "thumbnail_url": "https://todayfiles-play.site/img/k3q7wz2a/5x9a2k/thumb.jpg", "poster_url": "https://todayfiles-play.site/img/k3q7wz2a/5x9a2k/poster.jpg" }, "created_at": "2026-10-30T23:41:52Z", "updated_at": "2026-10-30T23:42:23Z" }
uploadobject or nullYes{ "object": "upload", "id": "up_01jbqz5m3e6k8r9t2v4w6x8y0a", "video_id": "h87x", "status": "waiting", "protocol": "tus", "tus": { "version": "1.0.0", "endpoint": "https://upload.todayfiles.com/files/", "metadata": {}, "chunk_size": { "min": 5242880, "recommended": 16777216, "max": 67108864 } }, "max_bytes": 53687091200, "expires_at": "2026-11-01T10:15:30Z", "created_at": "2026-11-01T08:15:30Z" }
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

Retrieve a video

GET /videos/{id}

read requests

Retrieve a video. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
200Successful response.Video
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Update a video

PATCH /videos/{id}

write requests

Update a video. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
titlestringNo
enabledbooleanNo
folder_idstring or nullNo
JSON
{
  "title": "Launch trailer",
  "enabled": true
}

Responses

StatusDescriptionSchema
200Successful response.Video
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Delete a video

DELETE /videos/{id}

write requests

Soft-delete your video. It becomes unavailable through this API immediately.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
204No content.No content
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Uploads

Send bytes directly with resumable tus uploads.

Create an upload target

POST /videos/{id}/upload

upload requestsSupports idempotency

Create a fresh target for a video waiting for bytes. Pass the complete metadata map to your tus client. Use 16 MiB chunks and read max_bytes for this target’s signed ceiling.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Responses

StatusDescriptionSchema
201Successful response.Upload
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

Retrieve the latest upload

GET /videos/{id}/upload

read requests

Return the latest target. The status follows video processing; your tus client tracks transferred bytes.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
200Successful response.Upload
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Folders

Keep related videos together.

List folders

GET /folders

read requests

List folders. Only resources belonging to your account are returned or changed.

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: listYes
dataarray of object (Folder)Yes
has_morebooleanYes
next_cursorstring or nullYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Create a folder

POST /folders

write requestsSupports idempotency

Create a folder. Only resources belonging to your account are returned or changed.

Parameters

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
namestringYes
JSON
{
  "name": "Trailers"
}

Responses

StatusDescriptionSchema
201Successful response.Folder
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

Rename a folder

PATCH /folders/{id}

write requests

Rename a folder. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
namestringYes
JSON
{
  "name": "Trailers"
}

Responses

StatusDescriptionSchema
200Successful response.Folder
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Delete a folder

DELETE /folders/{id}

write requests

Delete your folder. Its videos become uncategorised.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
204No content.No content
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Add videos to a folder

POST /folders/{id}/videos

write requestsSupports idempotency

Add videos to a folder. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
video_idsarray of stringYes
JSON
{
  "video_ids": [
    "h87x",
    "q2m8"
  ]
}

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: resultYes
movedintegerYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

Remove videos from folders

POST /folders/remove-videos

write requestsSupports idempotency

Remove videos from folders. Only resources belonging to your account are returned or changed.

Parameters

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
video_idsarray of stringYes
JSON
{
  "video_ids": [
    "h87x"
  ]
}

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: resultYes
removedintegerYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

Clone jobs

Copy videos whose owners allow cloning.

Create a clone job

POST /clone-jobs

write requestsSupports idempotency

Queue up to 200 video ids or player URLs. You can have up to 3 jobs in progress and clone up to 200 videos per rolling hour.

Parameters

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
inputsarray of stringYes
JSON
{
  "inputs": [
    "h87x",
    "https://todayfiles-play.site/q2m8"
  ]
}

Responses

StatusDescriptionSchema
202Successful response.CloneJob
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

List clone jobs

GET /clone-jobs

read requests

List clone jobs. Only resources belonging to your account are returned or changed.

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: listYes
dataarray of object (CloneJob)Yes
has_morebooleanYes
next_cursorstring or nullYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Retrieve a clone job

GET /clone-jobs/{id}

read requests

Retrieve a clone job. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
200Successful response.CloneJob
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Analytics

Read views, downloads and current viewers.

Query video views

GET /analytics/views

analytics requests

Query your views. Unique counts are exact per daily dimension and can count the same viewer again when summed across days.

Parameters

query

NameTypeRequiredDescription
fromstring (date)No
tostring (date)No
group_bystringNoComma-separated date, video, country, device, referrer or player; downloads also accept quality.
video_idstringNo
limitintegerNo

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: analyticsYes
fromstringYes
tostringYes
group_byarray of stringYes
rowsarray of objectYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Query video downloads

GET /analytics/downloads

analytics requests

Query your downloads. Unique counts can count the same downloader again across daily groups.

Parameters

query

NameTypeRequiredDescription
fromstring (date)No
tostring (date)No
group_bystringNoComma-separated date, video, country, device, referrer or player; downloads also accept quality.
video_idstringNo
limitintegerNo

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: analyticsYes
fromstringYes
tostringYes
group_byarray of stringYes
rowsarray of objectYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Retrieve current viewers

GET /analytics/realtime

analytics requests

Retrieve current viewers. Only resources belonging to your account are returned or changed.

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: realtimeYes
viewersintegerYes
window_secondsintegerYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Account

Read your account and upload allowance.

Retrieve your account

GET /account

read requests

Retrieve your account. Only resources belonging to your account are returned or changed.

Responses

StatusDescriptionSchema
200Successful response.Account
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Webhooks

Receive signed events and inspect delivery attempts.

Create a webhook

POST /webhooks

write requestsSupports idempotency

Use HTTPS on port 443 or 8443. The host must resolve only to public addresses at creation and every delivery. Save the signing secret: it is shown once.

Parameters

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
urlstring (uri)Yes
eventsarray of enum: video.ready | video.failed | clone_job.completedYes
descriptionstringNo
JSON
{
  "url": "https://example.com/hooks/todayfiles",
  "events": [
    "video.ready"
  ],
  "description": "Production"
}

Responses

StatusDescriptionSchema
201Successful response.Webhook
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

List webhooks

GET /webhooks

read requests

List webhooks. Only resources belonging to your account are returned or changed.

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: listYes
dataarray of object (Webhook)Yes
has_morebooleanYes
next_cursorstring or nullYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Retrieve a webhook

GET /webhooks/{id}

read requests

Retrieve a webhook. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
200Successful response.Webhook
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Update a webhook

PATCH /webhooks/{id}

write requests

Update a webhook. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Request body

application/json · Required

NameTypeRequiredDescriptionExample
urlstring (uri)No
eventsarray of enum: video.ready | video.failed | clone_job.completedNo
descriptionstringNo
enabledbooleanNo
JSON
{
  "enabled": true
}

Responses

StatusDescriptionSchema
200Successful response.Webhook
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Delete a webhook

DELETE /webhooks/{id}

write requests

Delete a webhook. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
204No content.No content
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Rotate a signing secret

POST /webhooks/{id}/rotate-secret

write requestsSupports idempotency

Save the new secret before leaving this response. Deliveries include signatures for both secrets for 24 hours.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Responses

StatusDescriptionSchema
200Successful response.Webhook
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

Send a test event

POST /webhooks/{id}/test

write requestsSupports idempotency

Send a ping event immediately. The response records the delivery outcome.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

header

NameTypeRequiredDescription
Idempotency-KeystringNoOptional key for safely replaying this request for 24 hours.

Responses

StatusDescriptionSchema
200Successful response.Delivery
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error
422A parameter or JSON body needs correction.Error

List webhook deliveries

GET /webhooks/{id}/deliveries

read requests

List webhook deliveries. Only resources belonging to your account are returned or changed.

Parameters

path

NameTypeRequiredDescription
idstringYesResource id.

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: listYes
dataarray of object (Delivery)Yes
has_morebooleanYes
next_cursorstring or nullYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Events

Recover events from the last 30 days.

List events

GET /events

read requests

Events remain available for 30 days, newest first. Pass the last event id as after to continue.

Parameters

query

NameTypeRequiredDescription
typeenum: video.ready | video.failed | clone_job.completed | pingNo
afterstringNo
limitintegerNo

Responses

StatusDescriptionSchema
200Successful response.object
NameTypeRequiredDescriptionExample
objectenum: listYes
dataarray of object (Event)Yes
has_morebooleanYes
next_cursorstring or nullYes
400A parameter or JSON body needs correction.Error
401Provide an active API key.Error
404Unknown or inaccessible resource.Error
409The resource cannot accept this change.Error
429Wait before retrying.Error

Objects

Video

NameTypeRequiredDescriptionExample
objectenum: videoYes
idstringYesStable resource id.
titlestringYesYour video title.
statusenum: waiting_for_upload | processing | ready | failedYesUploads wait for bytes, then process before becoming ready or failed.
processingobject or nullYes
failureobject or nullYes
sourceenum: upload | url | clone | ftp | torrent | importYes
folder_idstring or nullYes
enabledbooleanYes
disabled_by_moderationbooleanYes
durationinteger or nullYesDuration in seconds, when known.
sizeinteger or nullYesSize in bytes, when known.
max_heightinteger or nullYes
playbackobject or nullYes
created_atstring (date-time)Yes
updated_atstring (date-time)Yes
JSON
{
  "object": "video",
  "id": "h87x",
  "title": "Launch trailer",
  "status": "ready",
  "processing": null,
  "failure": null,
  "source": "upload",
  "folder_id": "fld_3",
  "enabled": true,
  "disabled_by_moderation": false,
  "duration": 184,
  "size": 119248005,
  "max_height": 1080,
  "playback": {
    "player_url": "https://todayfiles-play.site/h87x",
    "embed_html": "\u003ciframe src=\"https://todayfiles-play.site/h87x\" width=\"100%\" height=\"100%\" frameborder=\"0\" allowfullscreen\u003e\u003c/iframe\u003e",
    "thumbnail_url": "https://todayfiles-play.site/img/k3q7wz2a/5x9a2k/thumb.jpg",
    "poster_url": "https://todayfiles-play.site/img/k3q7wz2a/5x9a2k/poster.jpg"
  },
  "created_at": "2026-10-30T23:41:52Z",
  "updated_at": "2026-10-30T23:42:23Z"
}

Upload

NameTypeRequiredDescriptionExample
objectenum: uploadYes
idstringYesStable resource id.
video_idstringYes
statusenum: waiting | expired | processing | completedYes
protocolenum: tusYes
tusobjectYes
max_bytesintegerYesThe byte ceiling signed for this upload target. Read this value before uploading.
expires_atstring (date-time)YesCreation deadline for this target.
created_atstring (date-time)Yes
JSON
{
  "object": "upload",
  "id": "up_01jbqz5m3e6k8r9t2v4w6x8y0a",
  "video_id": "h87x",
  "status": "waiting",
  "protocol": "tus",
  "tus": {
    "version": "1.0.0",
    "endpoint": "https://upload.todayfiles.com/files/",
    "metadata": {},
    "chunk_size": {
      "min": 5242880,
      "recommended": 16777216,
      "max": 67108864
    }
  },
  "max_bytes": 53687091200,
  "expires_at": "2026-11-01T10:15:30Z",
  "created_at": "2026-11-01T08:15:30Z"
}

Folder

NameTypeRequiredDescriptionExample
objectenum: folderYes
idstringYesStable resource id.
namestringYes
created_atstring (date-time)Yes
updated_atstring (date-time)Yes
JSON
{
  "object": "folder",
  "id": "fld_3",
  "name": "Trailers",
  "created_at": "2026-11-01T08:15:30Z",
  "updated_at": "2026-11-01T08:15:30Z"
}

CloneJobItem

NameTypeRequiredDescriptionExample
inputstringYes
statusenum: pending | running | succeeded | failedYes
video_idstring or nullYes
errorobject or nullYes
JSON
{
  "input": "h87x",
  "status": "succeeded",
  "video_id": "q2m8",
  "error": null
}

CloneJob

NameTypeRequiredDescriptionExample
objectenum: clone_jobYes
idstringYesStable resource id.
statusenum: queued | running | completedYes
countsobjectYes
itemsarray of object (CloneJobItem)No
created_atstring (date-time)Yes
completed_atstring or nullYes
JSON
{
  "object": "clone_job",
  "id": "cj_1z",
  "status": "completed",
  "counts": {
    "total": 1,
    "succeeded": 1,
    "failed": 0,
    "pending": 0
  },
  "items": [
    {
      "input": "h87x",
      "status": "succeeded",
      "video_id": "q2m8",
      "error": null
    }
  ],
  "created_at": "2026-11-01T08:15:30Z",
  "completed_at": "2026-11-01T08:15:30Z"
}

Webhook

NameTypeRequiredDescriptionExample
objectenum: webhookYes
idstringYesStable resource id.
urlstring (uri)YesHTTPS endpoint on a public address, using port 443 or 8443.
eventsarray of enum: video.ready | video.failed | clone_job.completedYes
descriptionstringYes
enabledbooleanYes
statusenum: active | disabled | disabled_after_failuresYes
secretstringNoShown only after creation or rotation. Save it before leaving this response.
created_atstring (date-time)Yes
updated_atstring (date-time)Yes
last_deliveryobject or nullYes
JSON
{
  "object": "webhook",
  "id": "wh_01jbqz5m3e6k8r9t2v4w6x8y0a",
  "url": "https://example.com/hooks/todayfiles",
  "events": [
    "video.ready",
    "video.failed"
  ],
  "description": "Production",
  "enabled": true,
  "status": "active",
  "created_at": "2026-11-01T08:15:30Z",
  "updated_at": "2026-11-01T08:15:30Z",
  "last_delivery": null
}

Event

NameTypeRequiredDescriptionExample
objectenum: eventYes
idstringYesStable resource id.
typeenum: video.ready | video.failed | clone_job.completed | pingYes
created_atstring (date-time)Yes
dataobjectYes
JSON
{
  "object": "event",
  "id": "evt_01jbqz5m3e6k8r9t2v4w6x8y0a",
  "type": "video.ready",
  "created_at": "2026-11-01T08:15:30Z",
  "data": {
    "video": {
      "object": "video",
      "id": "h87x",
      "title": "Launch trailer",
      "status": "ready",
      "processing": null,
      "failure": null,
      "source": "upload",
      "folder_id": "fld_3",
      "enabled": true,
      "disabled_by_moderation": false,
      "duration": 184,
      "size": 119248005,
      "max_height": 1080,
      "playback": {
        "player_url": "https://todayfiles-play.site/h87x",
        "embed_html": "\u003ciframe src=\"https://todayfiles-play.site/h87x\" width=\"100%\" height=\"100%\" frameborder=\"0\" allowfullscreen\u003e\u003c/iframe\u003e",
        "thumbnail_url": "https://todayfiles-play.site/img/k3q7wz2a/5x9a2k/thumb.jpg",
        "poster_url": "https://todayfiles-play.site/img/k3q7wz2a/5x9a2k/poster.jpg"
      },
      "created_at": "2026-10-30T23:41:52Z",
      "updated_at": "2026-10-30T23:42:23Z"
    }
  }
}

Delivery

NameTypeRequiredDescriptionExample
objectenum: deliveryYes
idstringYesStable resource id.
event_idstringYes
webhook_idstringYes
attemptintegerYes
statusenum: pending | succeeded | failedYes
response_statusinteger or nullYes
duration_msinteger or nullYes
errorstringYes
next_attempt_atstring or nullYes
created_atstring (date-time)Yes
JSON
{
  "object": "delivery",
  "id": "dlv_01jbqz5m3e6k8r9t2v4w6x8y0a",
  "event_id": "evt_01jbqz5m3e6k8r9t2v4w6x8y0a",
  "webhook_id": "wh_01jbqz5m3e6k8r9t2v4w6x8y0a",
  "attempt": 1,
  "status": "succeeded",
  "response_status": 200,
  "duration_ms": 120,
  "error": "",
  "next_attempt_at": null,
  "created_at": "2026-11-01T08:15:30Z"
}

Account

NameTypeRequiredDescriptionExample
objectenum: accountYes
idstringYesStable resource id.
emailstring (email)Yes
usernamestringYes
clone_allowedbooleanYes
uploadsobjectYes
JSON
{
  "object": "account",
  "id": "acct_7",
  "email": "you@example.com",
  "username": "demo",
  "clone_allowed": true,
  "uploads": {
    "max_bytes_per_file": 53687091200,
    "daily_limit": 100,
    "used_today": 3,
    "remaining_today": 97,
    "resets_at": "2026-11-02T00:00:00Z"
  }
}

List

NameTypeRequiredDescriptionExample
objectenum: listYes
dataarray of objectYes
has_morebooleanYes
next_cursorstring or nullYes
JSON
{
  "object": "list",
  "data": [],
  "has_more": false,
  "next_cursor": null
}

Error

NameTypeRequiredDescriptionExample
errorobjectYes
JSON
{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_parameter",
    "message": "title must be 1 to 200 characters.",
    "param": "title",
    "request_id": "req_3k7f2qzv8m1xw",
    "doc_url": "https://api.todayfiles.com/docs/errors#invalid_parameter"
  }
}