---
title: "Upload a new policy version (draft)"
method: POST
path: "/api/v1/companies/{companyId}/policies/{policyId}/versions"
tags: ["Policies"]
---

# Upload a new policy version (draft)

`POST /api/v1/companies/{companyId}/policies/{policyId}/versions`

## Request

- Base URL: `https://comply.strac.io`
- URL: `https://comply.strac.io/api/v1/companies/{companyId}/policies/{policyId}/versions`
- Auth: HTTP bearer

Uploads a new version as a draft. Send the file base64-encoded (≤4 MB raw). Writes audit-log row `v1_upload_policy`.

Role gate: owner / admin.

Scope: `policies:write`.

## Path parameters

- `companyId` string, required
- `policyId` string, required

## Request body

- object
  - `fileName` string, required: File name with extension (.pdf, .docx, .doc).
  - `fileContent` string, required: Base64-encoded file bytes, ≤4 MB raw.
  - `comments` string: Optional changelog note for this version.

## Response `200`

Upload a new policy version (draft)

---

[API](https://skmtc.dev/strac/apis/strac-comply-api.md) - [All operations](https://skmtc.dev/strac/apis/strac-comply-api/llms.txt) - [OpenAPI document](https://skmtc.dev/strac/apis/strac-comply-api/revisions/d5558b64eeeb?raw)
