Create subtitles
Starts an async subtitle job for media at the given URL. Responds 202 with a Location header and a job_id you can poll at GET /v1/jobs/{id}. Send an Idempotency-Key header to make retries safe. Exceeding the monthly free quota returns 429 (quota_exhausted); a Premium-only subtitle style or a free-plan duration/size cap returns 403 (feature_not_enabled); media over the hard duration/size ceiling returns 413 (request_too_large); an upstream start failure returns 503.
Authorization
BearerApiKey A Shorty API key, sent as Authorization: Bearer <key>. An OAuth 2.1 access token issued to a connected app is also accepted on the same header.
In: header
Header Parameters
Optional client-generated key (1–255 visible ASCII chars) that makes this POST replay-safe: a retry with the SAME key and body returns the original response (with Idempotency-Replayed: true) instead of creating a duplicate. Reusing a key with a different body is rejected (422).
1 <= length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/subtitles" \ -H "Content-Type: application/json" \ -d '{ "url": "http://example.com" }'{ "job_id": "string", "status": "string", "tracking_url": "string"}