Concepts¶
Auth¶
- Requests authenticate with
Authorization: Bearer <external_token>, or the web app'sHttpOnlysession cookie (backend auth is cookie-or-bearer). - The free tier needs no credentials, anonymous requests are served within the free quota.
external_tokens are issued by Google/Apple sign-in or OIDC. Identity flows (signup, login, password reset) are served by allauth headless at/_allauth/app/v1/, see Auth.
Conversions are asynchronous¶
Every conversion is a 3-step flow:
- Submit,
POST /api/v1/<service>/convert/returns202with the conversionid. - Poll,
GET /api/v1/<service>/conversion/{id}/returns{ status, … }. - Download,
GET /api/v1/<service>/{id}/download/streams the file, or redirects to it.
Statuses: pending → processing → completed | partial | failed.
Polling cadence¶
- Document conversions: poll every 2-5 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 credits per day, counted per device.
- Paid: each operation is priced by the live rate card.
Locales & RTL¶
The API is language-agnostic. Client UIs support en, fa, ar. RTL is handled client-side (dir="rtl" on fa/ar).