generated: '2026-07-20' method: searched source: https://docs.api.pruna.ai/guides/quickstart notes: >- Cross-cutting request/response semantics for the Pruna P-API, from the docs quickstart and the OpenAPI. The API is HTTP+apikey with an async submit/poll/download flow and an optional synchronous mode. authentication: style: api-key location: header parameter: apikey docs: https://docs.api.pruna.ai/guides/quickstart see: authentication/pruna-ai-authentication.yml model_selection: header: Model description: >- The target model is selected per request via the `Model` request header (e.g. p-image, p-image-edit, p-video). One API surface, ~20 models. sync_vs_async: default: asynchronous async_flow: - POST /v1/predictions returns a prediction id + get_url - GET /v1/predictions/status/{id} polls until succeeded/failed - GET /v1/predictions/delivery/{path} downloads the output sync_mode: header: 'Try-Sync: true' description: >- When set, POST /v1/predictions blocks up to 60 seconds and returns the completed result inline instead of requiring a poll. idempotency: supported: false notes: >- No idempotency-key header is documented or present in the OpenAPI. Predictions are inherently non-idempotent (each POST enqueues a new generation). pagination: supported: false notes: No list/collection endpoints; nothing to paginate. file_uploads: endpoint: POST /v1/files encoding: multipart/form-data (content field) reference: >- Uploaded files return an id and a get URL that is passed into prediction inputs (images[]). Files carry expires_at. error_envelope: media_type: application/json shape: '{ "error": { "code": string, "message": string, "details": string } }' see: errors/pruna-ai-problem-types.yml rate_limiting: signalled_via: HTTP 429 documented_limits: - scope: trainer models limit: 5 requests/minute see: rate-limits/pruna-ai-rate-limits.yml versioning: scheme: uri-path current: v1 see: lifecycle/pruna-ai-lifecycle.yml content_delivery: notes: >- Generated assets are delivered from /v1/predictions/delivery/{path} with Cache-Control and Content-Disposition headers; content expires (HTTP 410 when gone).