Skip to main content
PATCH
Update form settings and questions

Authorizations

Authorization
string
header
required

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

Headers

Sajn-Version
enum<string>

API version for this request. Without it, the request uses the organization's default version; an organization without a default is pinned to the latest version by its first request.

Available options:
2026-09,
2026-10
Sajn-Workspace
string

ID of the workspace this request acts in, from GET /api/v1/workspaces. Without it, an API key acts in its default workspace. The token's user must be a member of the workspace; an OAuth token only accepts the workspace it was granted for. A workspace that doesn't exist or can't be reached returns 403 WORKSPACE_ACCESS_DENIED.

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

Path Parameters

id
string
required

The form ID.

Body

application/json

Body

name
string | null

Name of the form, shown as the heading of the public form page.

Maximum string length: 200
description
string | null

Introduction shown under the heading.

Maximum string length: 4000
thankYouMessage
string | null

Message shown after the respondent submits.

Maximum string length: 4000
redirectUrl
string<uri> | null

http(s) URL the respondent goes to after submitting, in place of the thank-you message.

Maximum string length: 2000
password
string | null

Omit to keep the password, null to remove it, or a string to replace it.

Required string length: 4 - 100
questions
object[]

The complete ordered question list. Replaces the current list.

Maximum array length: 60
expiresAt
string<date-time> | null

When the form closes to new submissions. Null keeps it open.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
maxSubmissions
integer | null

Most submissions the form accepts, counting active starts and submitted responses. Null means no limit.

Required range: 1 <= x <= 100000
documentExpiresInDays
integer

Days each document created from a submission stays signable.

Required range: 1 <= x <= 3650

Response

200

id
string
required

The form ID.

templateId
string
required

The ID of the template the form owns. Its documents are created from it.

workspaceId
string
required

The workspace ID.

sender
object
required

The member every document from the form is created and sent as.

respondentPartyId
string | null
required

The ID of the template party the respondent becomes. Null on a draft without one.

url
string
required

The public form link.

enabled
boolean
required

True if the form is published.

closedReason
enum<string> | null
required

Why a published form stopped accepting submissions. Null while it's open.

Available options:
INCOMPLETE,
MAX_SUBMISSIONS,
EXPIRED,
SENDER_LEFT,
null
hasPassword
boolean
required

True if the link requires a password.

name
string | null
required

Name of the form, shown as the heading of the public form page.

description
string | null
required

Introduction shown under the heading.

thankYouMessage
string | null
required

Message shown after the respondent submits.

redirectUrl
string | null
required

URL the respondent goes to after submitting.

documentExpiresInDays
number
required

Days each document created from a submission stays signable.

expiresAt
string<date-time> | null
required

When the form closes to new submissions. Null keeps it open.

maxSubmissions
number | null
required

Most submissions the form accepts. Null means no limit.

submissionCount
number
required

Active starts plus submitted responses, counted against maxSubmissions.

createdAt
string<date-time>
required

When the form was created.

updatedAt
string<date-time>
required

When the form was last updated.

questions
object[]
required
Maximum array length: 60
slots
object[]
required

The keyed FORM subfields of the form's document that a FIELD question can fill.

publishIssues
object[]
required

What stops the form from publishing (BLOCKER) or deserves a look (WARNING). Empty when the form is ready.

statistics
object
required