Upload a file
Send exactly one multipart field namedfile with a filename. The filename extension determines format; Content-Type is advisory. An optional lifetime field accepts ephemeral (default) or persistent.
GET /v1/files/{id} returns metadata, including SHA-256, size, status, and lifetime. There is no endpoint to list uploads or download their original bytes; store file IDs and keep your originals.
Upload support is broader than prompt support. See prompt inputs and conversion formats.
Download an artifact
Get metadata from a completed receipt orGET /v1/artifacts/{id}. It includes filename, content_type, bytes, sha256, variant, input_eligible, and expiry/deletion information.
Fetch GET /v1/artifacts/{id}/content with bearer authentication. The API returns bytes or redirects to a signed storage URL valid for five minutes. Follow redirects without forwarding Authorization to another origin. With cURL, use --location, never --location-trusted. Request a fresh download URL through the API if the signed URL expires.
Compare the downloaded length and SHA-256 with metadata before using the file. For encrypted output, these describe ciphertext; the download has MIME application/jose and a .jwe filename. Artifact metadata still describes the original plaintext format.
artifacts.content(id) returns a raw Response for streaming; your code owns consuming/closing it and checking integrity. Source.stream() buffers and verifies before returning a fresh stream.
Retention
An ephemeral file remains claimed even when its job fails. To create a different job from that input, upload the original again. Use persistent files for deliberate reuse. Replaying the original job’s idempotency key retrieves that job; it does not rerun it or restore deleted content.
Delete a file with
DELETE /v1/files/{id}. Delete a job’s content with DELETE /v1/prompt/{id}/content or DELETE /v1/convert/{id}/content. These calls send no body and return 204; repeated deletion succeeds. Active jobs or pinned content can return 409.
Content deletion removes retained prompt/result content, customer metadata, document state, artifacts, and claimed ephemeral source data. Persistent templates are excluded. Billing receipts, IDs, status, and operational records remain. Expired/deleted downloads return 410; a retained metadata record does not guarantee available bytes.
Revise and the selected inference provider process plaintext document content. Output encryption protects exported artifact bytes; it does not encrypt receipt text or make input processing end-to-end encrypted. See the Privacy Policy for service data handling.