Treat a conversion result as a stateful job, not as a synchronous file download. This keeps your product reliable when source files are large, unavailable, or malformed.
Retry safely
Retry only requests that are safe to repeat. A result request can be retried with exponential backoff. For submit requests, persist the task ID returned by a successful response before attempting another submission.
Handle terminal failures
When a task is failed, log its task ID and returned reason together with your internal job ID. Show users an actionable next step, such as checking the source URL or uploading a readable PDF, rather than exposing an unformatted API error.
Set practical time limits
Use a polling deadline that matches your product experience. Stop polling at that deadline, retain the task ID, and let a background worker or a user-initiated refresh check the final status later.
For exact response fields and failure examples, see the API Reference.