Create a conversion resource, upload the file, launch it, then read status and download the result.
| HTTP / error.code | Meaning |
|---|---|
| 401 | Authenticate with a valid OOMOL user credential. |
| 402 / BALANCE_EXHAUSTED | Open recharge; an already failed task cannot resume. |
| 404 | Missing, expired or inaccessible resource. |
| 409 / SOURCE_FILE_MISSING | Upload the source before launch. |
| 409 / TRANSFORM_CONCURRENCY_LIMIT | Not started. Retry the uploaded task manually after capacity frees. |
| 409 / TRANSFORM_ALREADY_LAUNCHED | Parameters are immutable. |
| 429 / 5xx | Honor Retry-After when provided; bounded backoff, do not blindly recreate. |
Transform API
Production: https://api.pdfcraft.ai/v1/pcc-api
Development: https://pdf-craft-api.oomol.dev/v1/pcc-api
text
Authorization: Bearer YOUR_API_KEYPOST /transforms {"input_format":"pdf"}GET /transforms/{uuid}/upload-urls → signed PUT, no API credentialPOST /transforms/{uuid}/launch {"output_format":"epub"}GET /transforms/{uuid} → basic statusGET /transforms/{uuid}/observation → optional progress / previewGET /transforms/{uuid}/download-urls → signed result, only after succeededGET /transforms/running/ → running resourcesGET /transforms/finished/ → succeeded / failed / cancelled
waiting_for_upload → running → succeeded | failed | cancelled
uuid: save before upload; use the same task to resume.target_language: required for EPUB input or PDF output; omit for untranslated PDF → EPUB/Markdown.rendering_mode: replace / bilingual / bilingual-inline; PDF output only replace.footnotes: PDF only, disabled / basic / refined.- Signed URLs: temporary; never attach API Authorization to storage.
limit,cursor,next_cursor: cursor pagination; no total count.