SnozeDevelopers
API referenceDatabases

Move a sub-record with a parent precondition

Requires record write access. parentId null promotes to the top level. expectedParentId must match the stored parent; stale moves fail. A move carries descendants and rejects cross-database targets, archived parents, cycles and depth beyond 32 levels. The returned record omits its bulk children relation.

PATCH
/v1/workspaces/{workspaceId}/databases/{databaseId}/records/{recordId}/parent
AuthorizationBearer <token>

Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.

In: header

Path Parameters

workspaceId*string
databaseId*string
recordId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/workspaces/string/databases/string/records/string/parent" \  -H "Content-Type: application/json" \  -d '{    "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",    "expectedParentId": "34062852-cc15-443d-8d31-39f16352a0d0"  }'
{  "data": {    "id": "1d8a44e0-7c93-4f21-b60a-3e8d2f5a9c14",    "workspaceId": "4b81aa0c-6d2f-4b19-9f0e-1a7c3d5e8b02",    "databaseId": "9f2c1e7a-3b58-4d0c-8e27-6a1f9d4b3c85",    "contentSurfaceId": "string",    "title": "Ship the desktop app",    "data": {      "status": "in_progress",      "due": "2026-08-01"    },    "relations": {},    "computed": {},    "system": {},    "related": {},    "archived": false,    "externalId": "string",    "createdByUserId": "string",    "updatedByUserId": "string",    "createdAt": "2026-07-10T08:00:00.000Z",    "updatedAt": "2026-07-14T11:26:02.000Z"  }}