---
title: "Publish a new locked form version"
method: POST
path: "/api/v1/forms/{id}/publish"
---

# Publish a new locked form version

`POST /api/v1/forms/{id}/publish`

## Request

- Base URL: `https://applytovolunteer.com`
- URL: `https://applytovolunteer.com/api/v1/forms/{id}/publish`
- Auth: HTTP bearer

Publish a new locked version. A form with no fields is rejected. Publish is refused when it would remove a field that already has answers or consents. Requires a browser session or an org API key with forms:write. A missing or wrong key is 404, not 401. No request fields are read. A form with no fields is 400. Dropping a field key that already has answers or consents is 409.

## Path parameters

- `id` string, required: Form id.

## Request body

- object: No fields. The handler does not read a body.

## Response `200`

Publish a new locked version. A form with no fields is rejected. Publish is refused when it would remove a field that already has answers or consents.

## Other responses

- `400`: The body, query, or input failed validation.
- `404`: The resource does not exist, or it is hidden from this caller. Several organization routes return 404 instead of 401 when the key is missing or the row is in another organization.
- `409`: The write conflicts with the current state.
- `429`: Too many requests from this network or organization.
- `503`: The form could not be published.

---

[API](https://skmtc.dev/applytovolunteer/apis/apply2volunteer-api.md) · [All operations](https://skmtc.dev/applytovolunteer/apis/apply2volunteer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/applytovolunteer/apis/apply2volunteer-api/revisions/23df1ec8c88d?raw)
