Skip to main content

API

Error handling and retries

Build a predictable integration when conversion tasks fail or take longer than expected.

Create a conversion resource, upload the file, launch it, then read status and download the result.

HTTP / error.codeMeaning
401Authenticate with a valid OOMOL user credential.
402 / BALANCE_EXHAUSTEDOpen recharge; an already failed task cannot resume.
404Missing, expired or inaccessible resource.
409 / SOURCE_FILE_MISSINGUpload the source before launch.
409 / TRANSFORM_CONCURRENCY_LIMITNot started. Retry the uploaded task manually after capacity frees.
409 / TRANSFORM_ALREADY_LAUNCHEDParameters are immutable.
429 / 5xxHonor 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_KEY
POST /transforms {"input_format":"pdf"}
GET /transforms/{uuid}/upload-urls → signed PUT, no API credential
POST /transforms/{uuid}/launch {"output_format":"epub"}
GET /transforms/{uuid} → basic status
GET /transforms/{uuid}/observation → optional progress / preview
GET /transforms/{uuid}/download-urls → signed result, only after succeeded
GET /transforms/running/ → running resources
GET /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.

OpenAPI · Python quickstart