API

Errors

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

A stable code for your application. A request id for support.

Read an error

Use error.code to decide what to do. When a parameter needs correction, error.param names it. Follow error.doc_url for the explanation below. Quote Request-Id when you contact support.

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"
  }
}

Error codes

400invalid_request_error

invalid_json

Send one valid JSON object.

Correct the named parameter and send the request again.

400invalid_request_error

invalid_parameter

This value is not accepted.

Correct the named parameter and send the request again.

400invalid_request_error

missing_parameter

Provide this required parameter.

Correct the named parameter and send the request again.

400invalid_request_error

unknown_parameter

Remove this unrecognised parameter.

Correct the named parameter and send the request again.

401authentication_error

api_key_required

Provide your API key in the Authorization header.

Create an active key in Developers and send it in Authorization.

401authentication_error

invalid_api_key

Your API key is invalid or has been revoked.

Create an active key in Developers and send it in Authorization.

403permission_error

clone_not_allowed

The video owner does not allow cloning.

Ask the video owner to allow cloning, or choose another video.

404invalid_request_error

resource_not_found

This resource does not exist or is not yours.

Check the resource id and the account that owns it.

405invalid_request_error

method_not_allowed

Use one of the methods in the Allow header.

Use a method listed in the Allow response header.

409invalid_request_error

video_not_uploadable

This video is not waiting for an upload.

Read the current resource before changing it. Use a new video for different upload content.

409invalid_request_error

video_disabled_by_moderation

You cannot enable a video disabled by moderation.

Read the current resource before changing it. Use a new video for different upload content.

409invalid_request_error

video_deleted

You cannot change a deleted video.

Read the current resource before changing it. Use a new video for different upload content.

409invalid_request_error

upload_conflict

Create a new video to upload different content.

Read the current resource before changing it. Use a new video for different upload content.

409invalid_request_error

folder_name_taken

You already have a folder with this name.

Read the current resource before changing it. Use a new video for different upload content.

409idempotency_error

idempotency_key_in_use

A request with this idempotency key is still running.

Wait for the original request to finish, then retry with the same key.

422idempotency_error

idempotency_key_mismatch

This idempotency key was used for a different request.

Use a new key for a different method, path or body.

413invalid_request_error

payload_too_large

Keep the JSON body at or below 1 MiB.

Reduce the JSON body to at most 1 MiB.

415invalid_request_error

unsupported_media_type

Send your request body as application/json.

Set Content-Type to application/json.

422invalid_request_error

webhook_url_invalid

Use an HTTPS URL on a public address with port 443 or 8443.

Use an HTTPS endpoint on a public address, or remove an unused endpoint.

422invalid_request_error

webhook_limit_reached

You can have up to 10 webhook endpoints.

Use an HTTPS endpoint on a public address, or remove an unused endpoint.

429rate_limit_error

rate_limited

Wait before sending another request.

Wait for Retry-After seconds. Reuse the same idempotency key when retrying.

429rate_limit_error

upload_quota_exceeded

Your daily upload allowance is used. Try again after the reset.

Wait for Retry-After seconds. Reuse the same idempotency key when retrying.

429rate_limit_error

clone_limit_reached

You can clone up to 200 videos per rolling hour.

Wait for Retry-After seconds. Reuse the same idempotency key when retrying.

429rate_limit_error

clone_job_limit_reached

You can have up to 3 clone jobs queued or running.

Wait for Retry-After seconds. Reuse the same idempotency key when retrying.

500api_error

internal_error

We could not complete your request. Contact support with the request id.

Retry with the same idempotency key. Contact support with Request-Id if it continues.

502api_error

ingest_unavailable

The ingest service is temporarily unavailable. Try again shortly.

Try again shortly with the same idempotency key.

503api_error

api_disabled

The API is temporarily unavailable. Try again shortly.

Try again shortly. Contact support if access remains unavailable.

503api_error

webhooks_unavailable

Webhooks are temporarily unavailable. Contact support.

Try again shortly. Contact support if access remains unavailable.

What's next

Use idempotent requests to retry writes safely and rate-limit headers to choose when to retry.