Skip to main content
POST
Create a file (presigned upload)
You’re viewing API version 2026-09, which is deprecated and stops working on October 1, 2027. To see the current version, select 2026-10 in the menu at the top of the sidebar. To move your integration, see Upgrading to 2026-10.

Authorizations

Authorization
string
header
required

Personal API key, e.g. Authorization: Bearer sajn_sk_.... Not scope-limited — acts as the issuing user.

Headers

authorization
string
required

Bearer token for API authentication

Idempotency-Key
string

Makes retries safe. A retry with the same key and the same request replays the stored response for 24 hours (header Idempotent-Replayed: true); the same key with a different request returns 400.

Maximum string length: 255

Body

application/json

Body

Request a presigned upload URL and create a pending file record

fileName
string
required

Original filename including its extension

Required string length: 1 - 255
mimeType
enum<string>
required

MIME type of the file

Available options:
application/pdf,
application/msword,
application/vnd.openxmlformats-officedocument.wordprocessingml.document,
application/vnd.ms-excel,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/vnd.ms-powerpoint,
application/vnd.openxmlformats-officedocument.presentationml.presentation,
video/mp4,
video/quicktime,
video/x-msvideo,
video/webm,
image/jpeg,
image/png,
image/gif,
image/webp,
image/svg+xml
size
integer
required

File size in bytes (max 25 MB)

Required range: 0 < x <= 26214400
checksum
string
required

Base64-encoded SHA-256 checksum of the file. S3 enforces it on upload, so a mismatch rejects the bytes.

Minimum string length: 1
visibility
enum<string>
default:PRIVATE
required

File visibility (default PRIVATE)

Available options:
PRIVATE,
PUBLIC

Response

Presigned upload details

Presigned upload details

fileId
string
required

The created file record id. Status is PENDING until the upload is confirmed on first access.

key
string
required

The S3 object key the file will be stored under

uploadUrl
string<uri>
required

Presigned PUT URL (valid 1 hour). Upload the bytes here with headers Content-Type: and x-amz-checksum-sha256: .