Mint a presigned S3 PUT URL
Returns a single-use presigned PUT URL the customer uploads
bytes to directly. The returned id is an opaque handle
(upl_...) the customer then references via POST /v1/sources
(type: "file") or POST /v1/knowledge (type: "file") to
kick off ingestion.
The URL is bound to the supplied contentType and the
Content-Length cap — the customer cannot reuse the URL for
a different content type or larger payload.
Required scope: any valid key. Caps differ per content type (audio/video up to 500 MB, image up to 25 MB, application/pdf up to 100 MB, text/plain up to 25 MB).
Bytes are GC’d by an S3 lifecycle rule after 24 hours if never referenced.
Documentation Index
Fetch the complete documentation index at: https://apidocs.scripe.io/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Pass Authorization: Bearer scripe_sk_live_<...> (or
scripe_sk_test_<...> for test keys) on every request. Keys
are scoped to a single workspace and can be revoked from the
Scripe dashboard.
Headers
Pin the API version. Format YYYY-MM-DD. Omit to receive the
currently rolling default. Unknown versions return 400 version_unsupported.
"2026-08-01"
Opaque string (1–64 chars, [A-Za-z0-9_-]) used to dedup
retried writes. Within 24h of the first request, the same key
- same body returns the original response (
Idempotent-Replayed: true). Same key + different body returns409 idempotency_key_conflict.
Strongly recommended for every write — see
/docs/api/v1/idempotency.
^[A-Za-z0-9_-]{1,64}$Body
MIME type of the file. Accepted families: audio/*,
video/*, image/*, application/pdf,
application/msword (+ Office Open XML variants),
text/plain. Other types return 422 unprocessable.
"audio/mpeg"
Optional. Max bytes the customer expects to upload.
Defaults to the per-content-type cap (500 MB for
audio/video, 100 MB for PDF, etc.). Customer-supplied
values over the cap return 422 unprocessable.
x >= 1Response
Presigned URL minted (or replayed via Idempotency-Key).