ShortyShorty
API Reference

Create subtitles

POST
/v1/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
AuthorizationBearer <token>

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

Idempotency-Key?string

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).

Length1 <= length <= 255

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