Concepts¶
Auth¶
- Bearer tokens issued by
POST /auth/api/v1/login/. - Refresh via
POST /auth/api/v1/refresh/(use therefresh_tokenfrom login). - All clients should dedupe in-flight refresh requests.
Conversions are asynchronous¶
Every conversion is a 3-step flow:
- Submit —
POST /<service>/api/v1/convert/returns202with aconversion_id. - Poll —
GET /<service>/api/v1/conversion/{id}/returns{ status, … }. - Download —
GET /<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).