Skip to main content
Both prompt and conversion request bodies accept output_encryption:
Supply an RSA SubjectPublicKeyInfo public PEM, 2048–8192 bits. Your application owns the private key; send only the public key. For read/comment prompts, output encryption requires export_document: true.

What is encrypted

Exported artifact bytes are compact JWE using RSA-OAEP-256 and A256GCM. Messages and receipt metadata remain ordinary JSON and may contain document content. Revise and the inference provider process plaintext inputs; output encryption is not end-to-end input encryption. The download endpoint returns application/jose and a .jwe filename. Artifact bytes and sha256 describe ciphertext; content_type and filename in the artifact metadata describe the original plaintext file. Verify ciphertext integrity before decrypting. Use a JWE implementation that allowlists the algorithms, authenticates the protected header and GCM tag, and binds the result to the expected key, job ID, artifact ID, and variant. OAEP uses SHA-256. A decoded header is not proof of authenticity.

Chaining encrypted output

Encrypted artifacts cannot be used directly as another input. Decrypt and authenticate locally, then upload the plaintext if another request needs it. Even a plaintext artifact cannot be submitted by artifact_id to a new encrypted-output prompt. Download and reupload it as a file instead. The TypeScript client handles this step, subject to the 18 MiB upload limit.
The client retrieves and verifies ciphertext. It does not generate keys or decrypt. Its Source reports ciphertext MIME and filenames, including tracked variants, while source.artifact retains the original format metadata.