Skip to main content
POST
Request a presigned URL to upload a policy PDF

Authorizations

X-API-Key
string
header
required

API key for authentication

Headers

X-Organization-Id
string

Organization ID (required for session auth, optional for API key auth)

Path Parameters

id
string
required

Policy ID

Example:

"pol_abc123def456"

Body

application/json
fileName
string
required

Filename of the PDF (e.g., "policy-v1.pdf"). Non-alphanumeric characters will be replaced with underscores when storing in S3.

Example:

"acceptable-use-v1.pdf"

fileType
string
required

MIME type of the file. Must be "application/pdf" — the presigned URL enforces this at upload time.

Example:

"application/pdf"

versionId
string

Optional version ID to attach the PDF to. Omit to attach the PDF at the policy level (legacy path).

Example:

"pv_abc123def456"

Response

201 - application/json
uploadUrl
string
required

Presigned S3 URL. PUT the raw file bytes to this URL with header Content-Type: application/pdf. No auth headers required — the signature is in the URL.

Example:

"https://bucket.s3.us-east-1.amazonaws.com/org_xxx/policies/pol_xxx/...?X-Amz-Signature=..."

s3Key
string
required

The S3 key the file will land at. Pass this back to the confirm endpoint after a successful upload.

Example:

"org_abc/policies/pol_xyz/1735000000-acceptable-use-v1.pdf"

expiresIn
number
required

Seconds until the presigned URL expires.

Example:

900