Merge a patch into the space's shape override
PATCH
https://forumulate.com/api /orgs/{orgId}/spaces/{spaceId}/shape Merges into the stored override: add/set/omit/order and the space settings you send are applied, and anything you omit is left as it was. Applying the same patch twice is the same as applying it once.
Requires token scope: write (the coarse method gate) for Atlas key (ak_), Personal Access Token (cft_) or OAuth (cfo_) auth — in addition to any catalog scope (GET /pats/scopes) the route’s capability needs. Session/cookie auth is governed by RBAC capabilities instead.
Parameters
orgIdstringpathrequiredspaceIdstringpathrequiredforumulate-versionstringheaderAPI version negotiation. Send
forumulate-version: 2026-12-01 on every request from a new integration; it is optional only so that integrations written before versioning keep working. Each version includes everything before it:Idempotency-KeystringheaderMakes this write safe to retry. Optional — send any unique string (a UUID is ideal) and the first request runs while its response is remembered under that key for 24 hours; an identical retry replays that same status and body instead of acting twice, so a timeout or a 5xx from the edge can be retried without creating a second row. A retry sent while the first request is still in flight is refused with
409. The key is scoped to the method and path, so the same key on a different endpoint is a different request. Error responses of 5xx are never cached — those retries re-run. A key is bound to the BODY it was first used with: reusing it with a different body is a 409 idempotency.key_reused, not a replay, because replaying would tell you a write landed that never ran. Generate one key per request, never per process or per session.Request body application/json
spaceobjectShow child parameters
indexstringorderstringnavstringwhoCreatesstringsummarystring[]sectionsobjectShow child parameters
addobject[]Show child parameters
keystringrequiredlabelstringrequiredkindstringrequiredrequiredbooleanhintstringexamplestringschemaPropertystringrenderstringomitstring[]orderstring[]setobjectunsetobjectparamsobjectShow child parameters
addobject[]Show child parameters
keystringrequiredlabelstringrequiredtypestringrequiredoptionsstring[]relationSpaceIdstringhintstringplaceholderstringinternalbooleanfacetbooleanmetabooleanrequiredbooleandefaultschemaPropertystringminnumbermaxnumbervisibilitystringlocalizedbooleanuniquebooleanindexedbooleansortablebooleanminLengthintegermaxLengthintegerpatternstringconditionexprschemaobjectallowedBlocksstring[]allowedstring[]allowedGroupsstring[]toobject[]hasManybooleanrowLabelFieldstringlanguagestringfromstringacceptstring[]adminobjectfieldsobject[]omitstring[]orderstring[]setobjectunsetobjectblockTypesobjectShow child parameters
addobject[]Show child parameters
keystringrequiredlabelstringrequireddescriptionstringiconstringgroupstringfieldsobject[]requiredvariantsobject[]omitstring[]orderstring[]setobjectunsetobject{
"space": {
"index": "landing",
"order": "manual",
"nav": "tree",
"whoCreates": "staff",
"summary": [
"string"
]
},
"sections": {
"add": [
{
"key": "string",
"label": "string",
"kind": "prose",
"required": true,
"hint": "string",
"example": "string",
"schemaProperty": "string",
"render": "labelled"
}
],
"omit": [
"string"
],
"order": [
"string"
],
"set": {},
"unset": {}
},
"params": {
"add": [
{
"key": "string",
"label": "string",
"type": "text",
"options": [
null
],
"relationSpaceId": "string",
"hint": "string",
"placeholder": "string",
"internal": true,
"facet": true,
"meta": true,
"required": true,
"default": {},
"schemaProperty": "string",
"min": 0,
"max": 0,
"visibility": "public",
"localized": true,
"unique": true,
"indexed": true,
"sortable": true,
"minLength": 0,
"maxLength": 0,
"pattern": "string",
"condition": {},
"expr": {},
"schema": {},
"allowedBlocks": [
null
],
"allowed": [
null
],
"allowedGroups": [
null
],
"to": [
null
],
"hasMany": true,
"rowLabelField": "string",
"language": "string",
"from": "string",
"accept": [
null
],
"admin": {
"tab": null,
"row": null,
"collapsible": null,
"collapsed": null
},
"fields": [
null
]
}
],
"omit": [
"string"
],
"order": [
"string"
],
"set": {},
"unset": {}
},
"blockTypes": {
"add": [
{
"key": "string",
"label": "string",
"description": "string",
"icon": "string",
"group": "string",
"fields": [
null
],
"variants": [
null
]
}
],
"omit": [
"string"
],
"order": [
"string"
],
"set": {},
"unset": {}
}
}Code samples
cURL
curl -X PATCH "https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/shape" \
-H "forumulate-version: <value>" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"space":{"index":"landing","order":"manual","nav":"tree","whoCreates":"staff","summary":["string"]},"sections":{"add":[{"key":"string","label":"string","kind":"prose","required":true,"hint":"string","example":"string","schemaProperty":"string","render":"labelled"}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"params":{"add":[{"key":"string","label":"string","type":"text","options":[null],"relationSpaceId":"string","hint":"string","placeholder":"string","internal":true,"facet":true,"meta":true,"required":true,"default":{},"schemaProperty":"string","min":0,"max":0,"visibility":"public","localized":true,"unique":true,"indexed":true,"sortable":true,"minLength":0,"maxLength":0,"pattern":"string","condition":{},"expr":{},"schema":{},"allowedBlocks":[null],"allowed":[null],"allowedGroups":[null],"to":[null],"hasMany":true,"rowLabelField":"string","language":"string","from":"string","accept":[null],"admin":{"tab":null,"row":null,"collapsible":null,"collapsed":null},"fields":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"blockTypes":{"add":[{"key":"string","label":"string","description":"string","icon":"string","group":"string","fields":[null],"variants":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}}}'TypeScript
const res = await fetch('https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/shape', {
method: 'PATCH',
headers: {
'forumulate-version': '<value>',
'Idempotency-Key': '<value>',
'Content-Type': 'application/json',
},
body: JSON.stringify({"space":{"index":"landing","order":"manual","nav":"tree","whoCreates":"staff","summary":["string"]},"sections":{"add":[{"key":"string","label":"string","kind":"prose","required":true,"hint":"string","example":"string","schemaProperty":"string","render":"labelled"}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"params":{"add":[{"key":"string","label":"string","type":"text","options":[null],"relationSpaceId":"string","hint":"string","placeholder":"string","internal":true,"facet":true,"meta":true,"required":true,"default":{},"schemaProperty":"string","min":0,"max":0,"visibility":"public","localized":true,"unique":true,"indexed":true,"sortable":true,"minLength":0,"maxLength":0,"pattern":"string","condition":{},"expr":{},"schema":{},"allowedBlocks":[null],"allowed":[null],"allowedGroups":[null],"to":[null],"hasMany":true,"rowLabelField":"string","language":"string","from":"string","accept":[null],"admin":{"tab":null,"row":null,"collapsible":null,"collapsed":null},"fields":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"blockTypes":{"add":[{"key":"string","label":"string","description":"string","icon":"string","group":"string","fields":[null],"variants":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}}}),
});
const data = await res.json();Python
import requests
res = requests.request(
"PATCH",
"https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/shape",
headers={
"forumulate-version": "<value>",
"Idempotency-Key": "<value>",
"Content-Type": "application/json",
},
json={"space": {"index": "landing", "order": "manual", "nav": "tree", "whoCreates": "staff", "summary": ["string"]}, "sections": {"add": [{"key": "string", "label": "string", "kind": "prose", "required": True, "hint": "string", "example": "string", "schemaProperty": "string", "render": "labelled"}], "omit": ["string"], "order": ["string"], "set": {}, "unset": {}}, "params": {"add": [{"key": "string", "label": "string", "type": "text", "options": [None], "relationSpaceId": "string", "hint": "string", "placeholder": "string", "internal": True, "facet": True, "meta": True, "required": True, "default": {}, "schemaProperty": "string", "min": 0, "max": 0, "visibility": "public", "localized": True, "unique": True, "indexed": True, "sortable": True, "minLength": 0, "maxLength": 0, "pattern": "string", "condition": {}, "expr": {}, "schema": {}, "allowedBlocks": [None], "allowed": [None], "allowedGroups": [None], "to": [None], "hasMany": True, "rowLabelField": "string", "language": "string", "from": "string", "accept": [None], "admin": {"tab": None, "row": None, "collapsible": None, "collapsed": None}, "fields": [None]}], "omit": ["string"], "order": ["string"], "set": {}, "unset": {}}, "blockTypes": {"add": [{"key": "string", "label": "string", "description": "string", "icon": "string", "group": "string", "fields": [None], "variants": [None]}], "omit": ["string"], "order": ["string"], "set": {}, "unset": {}}},
)
data = res.json()Go
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
req, _ := http.NewRequest("PATCH", "https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/shape", strings.NewReader(`{"space":{"index":"landing","order":"manual","nav":"tree","whoCreates":"staff","summary":["string"]},"sections":{"add":[{"key":"string","label":"string","kind":"prose","required":true,"hint":"string","example":"string","schemaProperty":"string","render":"labelled"}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"params":{"add":[{"key":"string","label":"string","type":"text","options":[null],"relationSpaceId":"string","hint":"string","placeholder":"string","internal":true,"facet":true,"meta":true,"required":true,"default":{},"schemaProperty":"string","min":0,"max":0,"visibility":"public","localized":true,"unique":true,"indexed":true,"sortable":true,"minLength":0,"maxLength":0,"pattern":"string","condition":{},"expr":{},"schema":{},"allowedBlocks":[null],"allowed":[null],"allowedGroups":[null],"to":[null],"hasMany":true,"rowLabelField":"string","language":"string","from":"string","accept":[null],"admin":{"tab":null,"row":null,"collapsible":null,"collapsed":null},"fields":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"blockTypes":{"add":[{"key":"string","label":"string","description":"string","icon":"string","group":"string","fields":[null],"variants":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}}}`))
req.Header.Set("forumulate-version", "<value>")
req.Header.Set("Idempotency-Key", "<value>")
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/shape');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['forumulate-version: <value>', 'Idempotency-Key: <value>', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"space":{"index":"landing","order":"manual","nav":"tree","whoCreates":"staff","summary":["string"]},"sections":{"add":[{"key":"string","label":"string","kind":"prose","required":true,"hint":"string","example":"string","schemaProperty":"string","render":"labelled"}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"params":{"add":[{"key":"string","label":"string","type":"text","options":[null],"relationSpaceId":"string","hint":"string","placeholder":"string","internal":true,"facet":true,"meta":true,"required":true,"default":{},"schemaProperty":"string","min":0,"max":0,"visibility":"public","localized":true,"unique":true,"indexed":true,"sortable":true,"minLength":0,"maxLength":0,"pattern":"string","condition":{},"expr":{},"schema":{},"allowedBlocks":[null],"allowed":[null],"allowedGroups":[null],"to":[null],"hasMany":true,"rowLabelField":"string","language":"string","from":"string","accept":[null],"admin":{"tab":null,"row":null,"collapsible":null,"collapsed":null},"fields":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"blockTypes":{"add":[{"key":"string","label":"string","description":"string","icon":"string","group":"string","fields":[null],"variants":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}}}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;Ruby
require 'net/http'
require 'uri'
uri = URI('https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/shape')
req = Net::HTTP::Patch.new(uri)
req['forumulate-version'] = '<value>'
req['Idempotency-Key'] = '<value>'
req['Content-Type'] = 'application/json'
req.body = '{"space":{"index":"landing","order":"manual","nav":"tree","whoCreates":"staff","summary":["string"]},"sections":{"add":[{"key":"string","label":"string","kind":"prose","required":true,"hint":"string","example":"string","schemaProperty":"string","render":"labelled"}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"params":{"add":[{"key":"string","label":"string","type":"text","options":[null],"relationSpaceId":"string","hint":"string","placeholder":"string","internal":true,"facet":true,"meta":true,"required":true,"default":{},"schemaProperty":"string","min":0,"max":0,"visibility":"public","localized":true,"unique":true,"indexed":true,"sortable":true,"minLength":0,"maxLength":0,"pattern":"string","condition":{},"expr":{},"schema":{},"allowedBlocks":[null],"allowed":[null],"allowedGroups":[null],"to":[null],"hasMany":true,"rowLabelField":"string","language":"string","from":"string","accept":[null],"admin":{"tab":null,"row":null,"collapsible":null,"collapsed":null},"fields":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}},"blockTypes":{"add":[{"key":"string","label":"string","description":"string","icon":"string","group":"string","fields":[null],"variants":[null]}],"omit":["string"],"order":["string"],"set":{},"unset":{}}}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(req)
end
puts res.bodyJava
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/shape"))
.header("forumulate-version", "<value>")
.header("Idempotency-Key", "<value>")
.header("Content-Type", "application/json")
.method("PATCH", BodyPublishers.ofString("{\"space\":{\"index\":\"landing\",\"order\":\"manual\",\"nav\":\"tree\",\"whoCreates\":\"staff\",\"summary\":[\"string\"]},\"sections\":{\"add\":[{\"key\":\"string\",\"label\":\"string\",\"kind\":\"prose\",\"required\":true,\"hint\":\"string\",\"example\":\"string\",\"schemaProperty\":\"string\",\"render\":\"labelled\"}],\"omit\":[\"string\"],\"order\":[\"string\"],\"set\":{},\"unset\":{}},\"params\":{\"add\":[{\"key\":\"string\",\"label\":\"string\",\"type\":\"text\",\"options\":[null],\"relationSpaceId\":\"string\",\"hint\":\"string\",\"placeholder\":\"string\",\"internal\":true,\"facet\":true,\"meta\":true,\"required\":true,\"default\":{},\"schemaProperty\":\"string\",\"min\":0,\"max\":0,\"visibility\":\"public\",\"localized\":true,\"unique\":true,\"indexed\":true,\"sortable\":true,\"minLength\":0,\"maxLength\":0,\"pattern\":\"string\",\"condition\":{},\"expr\":{},\"schema\":{},\"allowedBlocks\":[null],\"allowed\":[null],\"allowedGroups\":[null],\"to\":[null],\"hasMany\":true,\"rowLabelField\":\"string\",\"language\":\"string\",\"from\":\"string\",\"accept\":[null],\"admin\":{\"tab\":null,\"row\":null,\"collapsible\":null,\"collapsed\":null},\"fields\":[null]}],\"omit\":[\"string\"],\"order\":[\"string\"],\"set\":{},\"unset\":{}},\"blockTypes\":{\"add\":[{\"key\":\"string\",\"label\":\"string\",\"description\":\"string\",\"icon\":\"string\",\"group\":\"string\",\"fields\":[null],\"variants\":[null]}],\"omit\":[\"string\"],\"order\":[\"string\"],\"set\":{},\"unset\":{}}}"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Responses
200 Success.
Example
{
"base": {
"blockTypes": [
{
"description": null,
"fields": null,
"group": null,
"icon": null,
"key": null,
"label": null,
"variants": null
}
],
"params": [
{
"accept": null,
"admin": null,
"allowed": null,
"allowedBlocks": null,
"allowedGroups": null,
"column": null,
"condition": null,
"default": null,
"expr": null,
"facet": null,
"fields": null,
"from": null,
"hasMany": null,
"hint": null,
"indexed": null,
"internal": null,
"key": null,
"label": null,
"language": null,
"localized": null,
"max": null,
"maxLength": null,
"meta": null,
"min": null,
"minLength": null,
"options": null,
"pattern": null,
"placeholder": null,
"relationSpaceId": null,
"required": null,
"rowLabelField": null,
"schema": null,
"schemaProperty": null,
"sortable": null,
"to": null,
"type": null,
"unique": null,
"visibility": null
}
],
"sections": [
{
"example": null,
"hint": null,
"key": null,
"kind": null,
"label": null,
"render": null,
"required": null,
"role": null,
"schemaProperty": null
}
],
"settings": {
"blockLibrary": true,
"defaultSort": "string",
"defaultVisibility": "internal",
"group": "string",
"icon": "string",
"listColumns": [
null
],
"orderable": true,
"previewUrl": "string",
"routable": true,
"searchableFields": [
null
],
"singleton": true,
"slugField": "string",
"strict": true,
"titleField": "string",
"versions": {
"max": null
}
},
"space": {
"index": "board",
"nav": "categories",
"order": "activity",
"summary": [
null
],
"whoCreates": "anyone"
},
"unknown": [
"string"
]
},
"defaultKind": "string",
"jsonSchema": {},
"override": {
"blockTypes": {
"add": [
null
],
"omit": [
null
],
"order": [
null
],
"set": {},
"unset": {}
},
"params": {
"add": [
null
],
"omit": [
null
],
"order": [
null
],
"set": {},
"unset": {}
},
"sections": {
"add": [
null
],
"omit": [
null
],
"order": [
null
],
"set": {},
"unset": {}
},
"space": {
"index": "board",
"nav": "categories",
"order": "activity",
"summary": [
null
],
"whoCreates": "anyone"
}
},
"presets": [
{
"description": "string",
"label": "string",
"layout": [
null
],
"name": "string",
"own": true,
"sections": [
null
],
"settings": {
"blockLibrary": null,
"defaultSort": null,
"defaultVisibility": null,
"group": null,
"icon": null,
"listColumns": null,
"orderable": null,
"previewUrl": null,
"routable": null,
"searchableFields": null,
"singleton": null,
"slugField": null,
"strict": null,
"titleField": null,
"versions": null
}
}
],
"shape": {
"blockTypes": [
{
"description": null,
"fields": null,
"group": null,
"icon": null,
"key": null,
"label": null,
"variants": null
}
],
"params": [
{
"accept": null,
"admin": null,
"allowed": null,
"allowedBlocks": null,
"allowedGroups": null,
"column": null,
"condition": null,
"default": null,
"expr": null,
"facet": null,
"fields": null,
"from": null,
"hasMany": null,
"hint": null,
"indexed": null,
"internal": null,
"key": null,
"label": null,
"language": null,
"localized": null,
"max": null,
"maxLength": null,
"meta": null,
"min": null,
"minLength": null,
"options": null,
"pattern": null,
"placeholder": null,
"relationSpaceId": null,
"required": null,
"rowLabelField": null,
"schema": null,
"schemaProperty": null,
"sortable": null,
"to": null,
"type": null,
"unique": null,
"visibility": null
}
],
"sections": [
{
"example": null,
"hint": null,
"key": null,
"kind": null,
"label": null,
"render": null,
"required": null,
"role": null,
"schemaProperty": null
}
],
"settings": {
"blockLibrary": true,
"defaultSort": "string",
"defaultVisibility": "internal",
"group": "string",
"icon": "string",
"listColumns": [
null
],
"orderable": true,
"previewUrl": "string",
"routable": true,
"searchableFields": [
null
],
"singleton": true,
"slugField": "string",
"strict": true,
"titleField": "string",
"versions": {
"max": null
}
},
"space": {
"index": "board",
"nav": "categories",
"order": "activity",
"summary": [
null
],
"whoCreates": "anyone"
},
"unknown": [
"string"
]
},
"warnings": [
"tags: \"Launch Day\" is stored as \"launch-day\""
]
}Schema
baseobjectrequiredShow child parameters
blockTypesBlockType[]requiredShow child parameters
descriptionstringfieldsSpaceTypeField[]requiredgroupstringiconstringkeystringrequiredlabelstringrequiredvariantsBlockVariant[]paramsSpaceTypeField[]requiredShow child parameters
acceptstring[]adminobjectallowedstring[]allowedBlocksstring[]allowedGroupsstring[]columnbooleanconditionstring | number | boolean | string | number | boolean | object[] | object[] | objectdefaultobjectexprstring | number | boolean | string | number | boolean | object[] | object[] | objectfacetbooleanfieldsSpaceTypeField[]fromstringhasManybooleanhintstringindexedbooleaninternalbooleankeystringrequiredlabelstringrequiredlanguagestringlocalizedbooleanmaxnumbermaxLengthnumbermetabooleanminnumberminLengthnumberoptionsstring[]patternstringplaceholderstringrelationSpaceIdstringrequiredbooleanrowLabelFieldstringschemaobjectschemaPropertystringsortablebooleantoReferenceTarget[]typestringrequireduniquebooleanvisibilitystringsectionsSpaceTypeSection[]requiredShow child parameters
examplestringhintstringkeystringrequiredkindstringrequiredlabelstringrequiredrenderstringrequiredbooleanrolestringschemaPropertystringsettingsobjectShow child parameters
blockLibrarybooleandefaultSortstringdefaultVisibilitystringgroupstringiconstringlistColumnsstring[]orderablebooleanpreviewUrlstringroutablebooleansearchableFieldsstring[]singletonbooleanslugFieldstringstrictbooleantitleFieldstringversionsobjectspaceobjectrequiredShow child parameters
indexstringrequirednavstringrequiredorderstringrequiredsummarystring[]requiredwhoCreatesstringrequiredunknownstring[]requireddefaultKindstringrequiredjsonSchemaobjectrequiredoverrideobjectrequiredShow child parameters
blockTypesobjectShow child parameters
addBlockType[]omitstring[]orderstring[]setobjectunsetobjectparamsobjectShow child parameters
addSpaceTypeField[]omitstring[]orderstring[]setobjectunsetobjectsectionsobjectShow child parameters
addSpaceTypeSection[]omitstring[]orderstring[]setobjectunsetobjectspaceobjectShow child parameters
indexstringnavstringorderstringsummarystring[]whoCreatesstringpresetsobject[]requiredShow child parameters
descriptionstringrequiredlabelstringrequiredlayoutobject[]namestringrequiredownbooleanrequiredsectionsKindSlot[]requiredShow child parameters
keystringrequiredkindstringrequiredlabelstringrequiredrequiredbooleanrequiredrolestringsettingsobjectShow child parameters
blockLibrarybooleandefaultSortstringdefaultVisibilitystring400 The request could not be understood — a malformed header, path or query value (
request.malformed). A value that was understood but is not acceptable is a 422 validation.failed.{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}401 No credential, or one that is expired or revoked (
auth.required). Send a Bearer token or the session cookie.{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}403 Authenticated, and not allowed — always
rbac.forbidden, whether what is missing is the capability, the token scope, or a resource the token is pinned away from. The message names the capability and, for a scope refusal, the scopes that would grant it. A refusal because of the PLAN is a 402 with quota.exceeded, not this.{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}404 No such thing — one of the ids in the path does not resolve, or resolves to something this caller may not see (
*.not_found).{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}422 The body was understood and a value is unacceptable (
validation.failed). error.details names the field paths.{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}429 Rate limited — see the RateLimit-* headers.
{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}default Error — the stable { error: { code, message } } envelope.
{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}The Forumulate teamUpdated