Skip to content

Concepts

Auth

  • Bearer tokens issued by POST /auth/api/v1/login/.
  • Refresh via POST /auth/api/v1/refresh/ (use the refresh_token from login).
  • All clients should dedupe in-flight refresh requests.

Conversions are asynchronous

Every conversion is a 3-step flow:

  1. SubmitPOST /<service>/api/v1/convert/ returns 202 with a conversion_id.
  2. PollGET /<service>/api/v1/conversion/{id}/ returns { status, … }.
  3. DownloadGET /<service>/api/v1/{id}/download/ redirects to a presigned URL.

Statuses: pending → processing → completed | failed.

Polling cadence

  • Document conversions: poll every 2-5 s.
  • Media (image/audio/video): poll every 2-10 s.
  • Font conversions: poll every 1-2 s (most finish in <2 s).

Use exponential backoff if a conversion is still processing after 60 s.

Credits

  • Free tier: 10 conversions per IP per 30 days.
  • Paid: 1 credit per conversion (some video conversions cost more — see Limits).

Locales & RTL

The API is language-agnostic. Client UIs support en, fa, ar. RTL is handled client-side (dir="rtl" on fa/ar).