Update a document field
Update a document field’s properties. Only DRAFT documents can have fields updated.
Field Identifier:
fieldId- Can be either database ID or key-based reference (prefix withkey:)- Example:
/api/v1/documents/{docId}/fields/key:recipient-name
Updatable Properties:
type- Field type (cannot change if field has data)position- Field order/positionfieldMeta- Field-specific metadatakey- Unique key identifier for API access
Regular Field Updates (by ID): Pass the full field structure including type and complete fieldMeta for that field type.
Example - Update TEXT field:
PATCH /api/v1/documents/{docId}/fields/{fieldId}
{
"type": "TEXT",
"fieldMeta": {
"type": "TEXT",
"content": "<p>Updated content</p>"
}
}
Example - Update HTML field:
PATCH /api/v1/documents/{docId}/fields/{fieldId}
{
"type": "HTML",
"fieldMeta": {
"type": "HTML",
"content": "<div style='text-align: center'><h1 style='color: #003366'>Contract Title</h1><img src='https://example.com/logo.png' alt='Company Logo' style='max-width: 200px' /><p>Custom styled content with <span style='color: red'>highlighted text</span></p></div>"
}
}
Example - Update FORM field:
PATCH /api/v1/documents/{docId}/fields/{fieldId}
{
"type": "FORM",
"fieldMeta": {
"type": "FORM",
"columns": 2,
"fields": [...]
}
}
Key-Based Updates for FORM Subfields:
For FORM fields with subfield keys, use key:your-field-key as the fieldId to update a specific subfield by its key.
When updating a FORM subfield by key, only pass the fieldMeta property with the subfield’s metadata structure. All other properties (type, position, key) are ignored.
Example - Update FORM subfield value:
PATCH /api/v1/documents/{docId}/fields/key:name
{
"fieldMeta": {
"type": "input",
"value": "Andreas"
}
}
This will update only the value property of the subfield with key “name”, preserving all other properties like label, placeholder, and description.
Authorizations
Personal API key, e.g. Authorization: Bearer sajn_sk_.... Not scope-limited — acts as the issuing user.
Headers
Bearer token for API authentication
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.
255Body
Body
Field type
TEXT, HTML, FORM, PDF, PRODUCT_TABLE, TABLE, SPACER, PAGE_BREAK, DURATION Field position/order
Unique key identifier for API access
^[a-z0-9_-]*$Field-specific metadata. By id: the full metadata for the field type. For FORM subfield updates via the key: prefix, pass the subfield structure to merge (e.g., {"type": "input", "value": "new value"}).
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
Response
Error response
Error response
Error message describing what went wrong
Machine-readable error code (e.g. APPROVAL_REQUIRED)
Identifier for this occurrence — quote it to support when reporting a 500
Every validation issue, on a 400 for an invalid request
OAuth scopes the endpoint requires, on a 403 for a missing scope
OAuth scopes the token was granted, on a 403 for a missing scope

