---
title: "Publish a file revision"
method: POST
path: "/files/{fileId}/revisions/{revisionId}/publish"
tags: ["File Revisions"]
---

# Publish a file revision

`POST /files/{fileId}/revisions/{revisionId}/publish`

## Request

- Base URL: `https://public-api.process.st/api/v1.1`
- URL: `https://public-api.process.st/api/v1.1/files/{fileId}/revisions/{revisionId}/publish`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Makes your draft the current published version and keeps the previous version in the file's history. When approval workflows are enabled and the file requires review, only its owner or an administrator can publish it. Set acknowledgmentsRequired to true to request acknowledgments from the file's recipients; it defaults to false.

## Path parameters

- `fileId` string, required
- `revisionId` string, required

## Request body

- PublishFileRevisionRequest
  - `acknowledgmentsRequired` boolean, required

## Response `200`

- PublicApiFileRevisionResponse
  - `data` object, required
    - `id` string, required: The ID of the Revision
    - `createdDate` string, date-time, required: When the resource was first created. ISO-8601 UTC.
    - `createdBy` object, required: User who created the resource.
      - `id` string, required: The resource's ID.
      - `email` string, required: The user's email address (also their login identifier).
      - `username` string, required: The user's display name (e.g. `Jane Doe`).
    - `updatedDate` string, date-time, required: When the resource was last modified. ISO-8601 UTC.
    - `updatedBy` object, required: User who last modified the resource.
      - `id` string, required: The resource's ID.
      - `email` string, required: The user's email address (also their login identifier).
      - `username` string, required: The user's display name (e.g. `Jane Doe`).
    - `fileId` string, required
    - `version` string, required: Revision version number; monotonically increasing per template.
    - `status` 'Draft' | 'Finished' | 'Revised', required: Status of this revision. `Draft` — being edited; not yet published. `Finished` — currently published version (only one Finished revision per workflow/page at a time). `Revised` — was previously the published version but has been replaced by a newer Finished revision.
    - `changeType` 'Material' | 'NonMaterial', required: Whether the changes in this revision are significant. `Material` — substantial changes; bumps the major version (e.g. `1.3` → `2.0`). `NonMaterial` — minor edits like wording or typo fixes; bumps the minor version (e.g. `1.3` → `1.4`).
    - `changeExplanation` string
    - `document` object, required
      - `filename` string
      - `contentType` string, required
      - `sizeBytes` integer, required
      - `downloadUrl` string, required: Authorized document URL. It may expire; fetch this revision again to refresh it.
    - `links` object[]: Navigable HATEOAS links to related resources. Each entry has a `name` (RFC-5988 relation), an `href` URL, and a `type` (`Api` or `App`).
      - `name` string, required: Standard link relation name (RFC 5988) indicating this link's role. Common values include `self`, `edit`, `related`, `previous`, `next`.
      - `href` string, required: URL of the linked resource.
      - `rel` 'Approval Task' | 'Approvals' | 'Assignees' | 'Comment' | 'Data Set Records' | 'Data Sets' | 'Form Field Values' | 'Subject Task' | 'Task' | 'Tasks' | 'Users' | 'Webhook' | 'Workflow' | 'Workflow Run': Optional. The kind of resource this link points to (e.g. `Workflow`, `Task`, `Comment`).
      - `type` 'Api' | 'App', required: Whether this link targets an API endpoint or a Process Street app URL. `Api` — a callable API endpoint you can fetch directly. `App` — a browser-facing URL in the Process Street UI.
  - `links` object[]: Pagination links. When the result has more pages, look for an entry with `name: "next"` — its `href` is the URL to fetch the next page. Absence of `next` means there are no more pages. For single-resource responses this array is typically empty.
    - `name` string, required: Standard link relation name (RFC 5988) indicating this link's role. Common values include `self`, `edit`, `related`, `previous`, `next`.
    - `href` string, required: URL of the linked resource.
    - `rel` 'Approval Task' | 'Approvals' | 'Assignees' | 'Comment' | 'Data Set Records' | 'Data Sets' | 'Form Field Values' | 'Subject Task' | 'Task' | 'Tasks' | 'Users' | 'Webhook' | 'Workflow' | 'Workflow Run': Optional. The kind of resource this link points to (e.g. `Workflow`, `Task`, `Comment`).
    - `type` 'Api' | 'App', required: Whether this link targets an API endpoint or a Process Street app URL. `Api` — a callable API endpoint you can fetch directly. `App` — a browser-facing URL in the Process Street UI.

## Other responses

- `400`: Invalid value for: body
- `default`

## Changes

- **2026-10-30** `5f56e80f02f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/process/apis/process-street-public-api/changes/files/:fileId/revisions/:revisionId/publish/post.md)

---

[API](https://skmtc.dev/process/apis/process-street-public-api.md) - [All operations](https://skmtc.dev/process/apis/process-street-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/process/apis/process-street-public-api/revisions/78ea0b3f3b40?raw)
