Busabase
OpenAPI リファレンス

Change Requests

Human review workflow for proposed changes.

POST
/api/v1/nodes/change-requests

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/nodes/change-requests" \  -H "Content-Type: application/json" \  -d '{    "operations": [      {        "kind": "create",        "nodeType": "folder",        "slug": "string",        "name": "string"      }    ]  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
PUT
/api/v1/nodes/{nodeId}/content

Path Parameters

nodeId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PUT "https://example.com/api/v1/nodes/string/content" \  -H "Content-Type: application/json" \  -d '{    "content": {      "kind": "doc",      "body": "string"    }  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/bases/{baseId}/change-requests

Path Parameters

baseId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/bases/string/change-requests" \  -H "Content-Type: application/json" \  -d '{    "fields": {      "property1": null,      "property2": null    }  }'
{  "id": "string",  "baseId": "string",  "headCommitId": "string",  "parentRecordId": "string",  "parentCommitId": "string",  "status": "active",  "createdBy": "string",  "createdByUser": null,  "fieldUsers": {},  "archivedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "headCommit": {    "id": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operationId": "string",    "parentCommitId": "string",    "payload": {      "property1": null,      "property2": null    },    "operation": "node_create",    "message": "string",    "author": "string",    "authorUser": null,    "createdAt": "string"  },  "materialized": true}
POST
/api/v1/bases/{baseId}/records/bulk-change-request

Path Parameters

baseId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/bases/string/records/bulk-change-request" \  -H "Content-Type: application/json" \  -d '{    "records": [      {        "property1": null,        "property2": null      }    ]  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/bases/{baseId}/records/bulk-update-change-request

Path Parameters

baseId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/bases/string/records/bulk-update-change-request" \  -H "Content-Type: application/json" \  -d '{    "updates": [      {        "recordId": "string",        "fields": {          "property1": null,          "property2": null        }      }    ]  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/bases/{baseId}/fields/change-requests

Path Parameters

baseId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/bases/string/fields/change-requests" \  -H "Content-Type: application/json" \  -d '{    "operation": "create"  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/bases/{baseId}/lifecycle/change-requests

Path Parameters

baseId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/bases/string/lifecycle/change-requests" \  -H "Content-Type: application/json" \  -d '{    "operation": "archive"  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/file-trees/{nodeId}/change-requests

Path Parameters

nodeId*string

A node id OR a slug. A slug is only unique WITHIN a type, so pass type alongside one; a node id needs no hint.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/file-trees/string/change-requests" \  -H "Content-Type: application/json" \  -d '{    "operations": [      {        "kind": "create",        "path": "string",        "assetId": "string"      }    ]  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/assets/{assetId}/edit-content

Path Parameters

assetId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/assets/string/edit-content" \  -H "Content-Type: application/json" \  -d '{    "edits": [      {        "oldString": "string",        "newString": "string"      }    ]  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
GET
/api/v1/change-requests

Query Parameters

limit?integer

Change requests per page. Capped at 100; ask for the next page with cursor.

Range1 <= value <= 100
Default50
cursor?string

Opaque page cursor: pass back the nextCursor from the previous response. Do not construct or parse it.

status?array<>

Keep only these statuses. Omitting it returns every status, not just open ones.

mine?boolean

Only change requests CREATED by the acting user — not ones awaiting their review.

affectsNodeId?string

Only change requests whose target, or any of their operations, touches this node — including Base-backed nodes. To ask whether a resource already has an unfinished change request, pass this with limit: 1 rather than paging the space: an empty result is conclusive.

Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/api/v1/change-requests"
{  "changeRequests": [    {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "status": "in_review",      "submittedBy": "string",      "submittedByUser": null,      "sourceAttribution": {        "displayName": "string",        "ownerName": "string",        "channel": "web_ui"      },      "sourceMeta": {        "property1": null,        "property2": null      },      "reviewPolicySnapshot": {        "property1": null,        "property2": null      },      "mergeSummary": {        "property1": null,        "property2": null      },      "rejectedReason": "string",      "reviewedAt": "string",      "mergedAt": "string",      "createdAt": "string",      "updatedAt": "string",      "base": {        "id": "string",        "nodeId": "string",        "slug": "string",        "name": "string",        "description": "string",        "reviewPolicy": {          "kind": "single",          "requiredApprovals": 0        },        "createdAt": "string",        "fields": [          {            "id": "string",            "baseId": "string",            "slug": "string",            "name": "string",            "type": "text",            "required": true,            "position": 0,            "options": {}          }        ]      },      "node": {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          {            "id": "string",            "parentId": "string",            "type": "folder",            "slug": "string",            "name": "string",            "description": "string",            "metadata": {},            "settings": {},            "explicitVisibility": null,            "icon": null,            "position": 0,            "createdAt": "string",            "updatedAt": "string",            "baseId": "string",            "children": [              null            ],            "hasChildren": true,            "shared": true          }        ],        "hasChildren": true,        "shared": true      },      "operations": [        {          "id": "string",          "changeRequestId": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operation": "node_create",          "status": "pending",          "targetRecordId": "string",          "targetViewId": "string",          "filePath": "string",          "sourceRecordId": "string",          "sourceCommitId": "string",          "baseCommitId": "string",          "headCommitId": "string",          "deleteMode": "archive",          "mergedRecordId": "string",          "mergedViewId": "string",          "position": 0,          "createdAt": "string",          "updatedAt": "string",          "headCommit": {            "id": "string",            "baseId": "string",            "targetType": "base",            "nodeId": "string",            "operationId": "string",            "parentCommitId": "string",            "payload": {              "property1": null,              "property2": null            },            "operation": "node_create",            "message": "string",            "author": "string",            "authorUser": null,            "createdAt": "string"          },          "baseFields": {            "property1": null,            "property2": null          }        }      ],      "primaryOperation": {        "id": "string",        "changeRequestId": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operation": "node_create",        "status": "pending",        "targetRecordId": "string",        "targetViewId": "string",        "filePath": "string",        "sourceRecordId": "string",        "sourceCommitId": "string",        "baseCommitId": "string",        "headCommitId": "string",        "deleteMode": "archive",        "mergedRecordId": "string",        "mergedViewId": "string",        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "headCommit": {          "id": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operationId": "string",          "parentCommitId": "string",          "payload": {            "property1": null,            "property2": null          },          "operation": "node_create",          "message": "string",          "author": "string",          "authorUser": null,          "createdAt": "string"        },        "baseFields": {          "property1": null,          "property2": null        }      },      "operationCount": 0,      "reviews": [        {          "id": "string",          "changeRequestId": "string",          "reviewerId": "string",          "reviewer": null,          "verdict": "approved",          "reason": "string",          "visibleOperationHeads": {            "property1": "string",            "property2": "string"          },          "createdAt": "string"        }      ]    }  ],  "nextCursor": "string"}
GET
/api/v1/change-requests/page

Query Parameters

page?integer

1-indexed, not 0-indexed.

Range1 <= value <= 9007199254740991
Default1
pageSize?integer

Change requests per page. Capped at 100.

Range1 <= value <= 100
Default50
status?array<>

Keep only these statuses. Omitting it returns every status, not just open ones.

mine?boolean

Only change requests CREATED by the acting user — not ones awaiting their review.

affectsNodeId?string

Only change requests whose target, or any of their operations, touches this node — including Base-backed nodes.

Length1 <= length

Response Body

application/json

curl -X GET "https://example.com/api/v1/change-requests/page"
{  "changeRequests": [    {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "status": "in_review",      "submittedBy": "string",      "submittedByUser": null,      "sourceAttribution": {        "displayName": "string",        "ownerName": "string",        "channel": "web_ui"      },      "sourceMeta": {        "property1": null,        "property2": null      },      "reviewPolicySnapshot": {        "property1": null,        "property2": null      },      "mergeSummary": {        "property1": null,        "property2": null      },      "rejectedReason": "string",      "reviewedAt": "string",      "mergedAt": "string",      "createdAt": "string",      "updatedAt": "string",      "base": {        "id": "string",        "nodeId": "string",        "slug": "string",        "name": "string",        "description": "string",        "reviewPolicy": {          "kind": "single",          "requiredApprovals": 0        },        "createdAt": "string",        "fields": [          {            "id": "string",            "baseId": "string",            "slug": "string",            "name": "string",            "type": "text",            "required": true,            "position": 0,            "options": {}          }        ]      },      "node": {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          {            "id": "string",            "parentId": "string",            "type": "folder",            "slug": "string",            "name": "string",            "description": "string",            "metadata": {},            "settings": {},            "explicitVisibility": null,            "icon": null,            "position": 0,            "createdAt": "string",            "updatedAt": "string",            "baseId": "string",            "children": [              null            ],            "hasChildren": true,            "shared": true          }        ],        "hasChildren": true,        "shared": true      },      "operations": [        {          "id": "string",          "changeRequestId": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operation": "node_create",          "status": "pending",          "targetRecordId": "string",          "targetViewId": "string",          "filePath": "string",          "sourceRecordId": "string",          "sourceCommitId": "string",          "baseCommitId": "string",          "headCommitId": "string",          "deleteMode": "archive",          "mergedRecordId": "string",          "mergedViewId": "string",          "position": 0,          "createdAt": "string",          "updatedAt": "string",          "headCommit": {            "id": "string",            "baseId": "string",            "targetType": "base",            "nodeId": "string",            "operationId": "string",            "parentCommitId": "string",            "payload": {              "property1": null,              "property2": null            },            "operation": "node_create",            "message": "string",            "author": "string",            "authorUser": null,            "createdAt": "string"          },          "baseFields": {            "property1": null,            "property2": null          }        }      ],      "primaryOperation": {        "id": "string",        "changeRequestId": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operation": "node_create",        "status": "pending",        "targetRecordId": "string",        "targetViewId": "string",        "filePath": "string",        "sourceRecordId": "string",        "sourceCommitId": "string",        "baseCommitId": "string",        "headCommitId": "string",        "deleteMode": "archive",        "mergedRecordId": "string",        "mergedViewId": "string",        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "headCommit": {          "id": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operationId": "string",          "parentCommitId": "string",          "payload": {            "property1": null,            "property2": null          },          "operation": "node_create",          "message": "string",          "author": "string",          "authorUser": null,          "createdAt": "string"        },        "baseFields": {          "property1": null,          "property2": null        }      },      "operationCount": 0,      "reviews": [        {          "id": "string",          "changeRequestId": "string",          "reviewerId": "string",          "reviewer": null,          "verdict": "approved",          "reason": "string",          "visibleOperationHeads": {            "property1": "string",            "property2": "string"          },          "createdAt": "string"        }      ]    }  ],  "total": 0,  "totalPages": 0,  "page": 1,  "pageSize": 1}
GET
/api/v1/change-requests/counts

Response Body

application/json

curl -X GET "https://example.com/api/v1/change-requests/counts"
{  "review": 0,  "changes": 0,  "created": 0,  "approved": 0,  "merged": 0,  "rejected": 0}
GET
/api/v1/change-requests/{changeRequestId}

Path Parameters

changeRequestId*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/change-requests/string"
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/change-requests/reviews

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/change-requests/reviews" \  -H "Content-Type: application/json" \  -d '{    "verdict": "approved",    "changeRequestIds": [      "string"    ]  }'
{  "results": [    {      "changeRequestId": "string",      "ok": true,      "status": "string",      "changeRequest": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "status": "in_review",        "submittedBy": "string",        "submittedByUser": null,        "sourceAttribution": {          "displayName": "string",          "ownerName": "string",          "channel": "web_ui"        },        "sourceMeta": {          "property1": null,          "property2": null        },        "reviewPolicySnapshot": {          "property1": null,          "property2": null        },        "mergeSummary": {          "property1": null,          "property2": null        },        "rejectedReason": "string",        "reviewedAt": "string",        "mergedAt": "string",        "createdAt": "string",        "updatedAt": "string",        "base": {          "id": "string",          "nodeId": "string",          "slug": "string",          "name": "string",          "description": "string",          "reviewPolicy": {            "kind": "single",            "requiredApprovals": 0          },          "createdAt": "string",          "fields": [            {              "id": "string",              "baseId": "string",              "slug": "string",              "name": "string",              "type": "text",              "required": true,              "position": 0,              "options": {}            }          ]        },        "node": {          "id": "string",          "parentId": "string",          "type": "folder",          "slug": "string",          "name": "string",          "description": "string",          "metadata": {},          "settings": {},          "explicitVisibility": null,          "icon": null,          "position": 0,          "createdAt": "string",          "updatedAt": "string",          "baseId": "string",          "children": [            {              "id": "string",              "parentId": "string",              "type": "folder",              "slug": "string",              "name": "string",              "description": "string",              "metadata": {},              "settings": {},              "explicitVisibility": null,              "icon": null,              "position": 0,              "createdAt": "string",              "updatedAt": "string",              "baseId": "string",              "children": [                null              ],              "hasChildren": true,              "shared": true            }          ],          "hasChildren": true,          "shared": true        },        "operations": [          {            "id": "string",            "changeRequestId": "string",            "baseId": "string",            "targetType": "base",            "nodeId": "string",            "operation": "node_create",            "status": "pending",            "targetRecordId": "string",            "targetViewId": "string",            "filePath": "string",            "sourceRecordId": "string",            "sourceCommitId": "string",            "baseCommitId": "string",            "headCommitId": "string",            "deleteMode": "archive",            "mergedRecordId": "string",            "mergedViewId": "string",            "position": 0,            "createdAt": "string",            "updatedAt": "string",            "headCommit": {              "id": "string",              "baseId": "string",              "targetType": "base",              "nodeId": "string",              "operationId": "string",              "parentCommitId": "string",              "payload": {                "property1": null,                "property2": null              },              "operation": "node_create",              "message": "string",              "author": "string",              "authorUser": null,              "createdAt": "string"            },            "baseFields": {              "property1": null,              "property2": null            }          }        ],        "primaryOperation": {          "id": "string",          "changeRequestId": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operation": "node_create",          "status": "pending",          "targetRecordId": "string",          "targetViewId": "string",          "filePath": "string",          "sourceRecordId": "string",          "sourceCommitId": "string",          "baseCommitId": "string",          "headCommitId": "string",          "deleteMode": "archive",          "mergedRecordId": "string",          "mergedViewId": "string",          "position": 0,          "createdAt": "string",          "updatedAt": "string",          "headCommit": {            "id": "string",            "baseId": "string",            "targetType": "base",            "nodeId": "string",            "operationId": "string",            "parentCommitId": "string",            "payload": {              "property1": null,              "property2": null            },            "operation": "node_create",            "message": "string",            "author": "string",            "authorUser": null,            "createdAt": "string"          },          "baseFields": {            "property1": null,            "property2": null          }        },        "operationCount": 0,        "reviews": [          {            "id": "string",            "changeRequestId": "string",            "reviewerId": "string",            "reviewer": null,            "verdict": "approved",            "reason": "string",            "visibleOperationHeads": {              "property1": "string",              "property2": "string"            },            "createdAt": "string"          }        ]      }    }  ]}
POST
/api/v1/change-requests/{changeRequestId}/close

Path Parameters

changeRequestId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/change-requests/string/close" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
POST
/api/v1/change-requests/merge

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/change-requests/merge" \  -H "Content-Type: application/json" \  -d '{    "changeRequestIds": [      "string"    ]  }'
{  "results": [    {      "changeRequestId": "string",      "ok": true,      "status": "string",      "changeRequest": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "status": "in_review",        "submittedBy": "string",        "submittedByUser": null,        "sourceAttribution": {          "displayName": "string",          "ownerName": "string",          "channel": "web_ui"        },        "sourceMeta": {          "property1": null,          "property2": null        },        "reviewPolicySnapshot": {          "property1": null,          "property2": null        },        "mergeSummary": {          "property1": null,          "property2": null        },        "rejectedReason": "string",        "reviewedAt": "string",        "mergedAt": "string",        "createdAt": "string",        "updatedAt": "string",        "base": {          "id": "string",          "nodeId": "string",          "slug": "string",          "name": "string",          "description": "string",          "reviewPolicy": {            "kind": "single",            "requiredApprovals": 0          },          "createdAt": "string",          "fields": [            {              "id": "string",              "baseId": "string",              "slug": "string",              "name": "string",              "type": "text",              "required": true,              "position": 0,              "options": {}            }          ]        },        "node": {          "id": "string",          "parentId": "string",          "type": "folder",          "slug": "string",          "name": "string",          "description": "string",          "metadata": {},          "settings": {},          "explicitVisibility": null,          "icon": null,          "position": 0,          "createdAt": "string",          "updatedAt": "string",          "baseId": "string",          "children": [            {              "id": "string",              "parentId": "string",              "type": "folder",              "slug": "string",              "name": "string",              "description": "string",              "metadata": {},              "settings": {},              "explicitVisibility": null,              "icon": null,              "position": 0,              "createdAt": "string",              "updatedAt": "string",              "baseId": "string",              "children": [                null              ],              "hasChildren": true,              "shared": true            }          ],          "hasChildren": true,          "shared": true        },        "operations": [          {            "id": "string",            "changeRequestId": "string",            "baseId": "string",            "targetType": "base",            "nodeId": "string",            "operation": "node_create",            "status": "pending",            "targetRecordId": "string",            "targetViewId": "string",            "filePath": "string",            "sourceRecordId": "string",            "sourceCommitId": "string",            "baseCommitId": "string",            "headCommitId": "string",            "deleteMode": "archive",            "mergedRecordId": "string",            "mergedViewId": "string",            "position": 0,            "createdAt": "string",            "updatedAt": "string",            "headCommit": {              "id": "string",              "baseId": "string",              "targetType": "base",              "nodeId": "string",              "operationId": "string",              "parentCommitId": "string",              "payload": {                "property1": null,                "property2": null              },              "operation": "node_create",              "message": "string",              "author": "string",              "authorUser": null,              "createdAt": "string"            },            "baseFields": {              "property1": null,              "property2": null            }          }        ],        "primaryOperation": {          "id": "string",          "changeRequestId": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operation": "node_create",          "status": "pending",          "targetRecordId": "string",          "targetViewId": "string",          "filePath": "string",          "sourceRecordId": "string",          "sourceCommitId": "string",          "baseCommitId": "string",          "headCommitId": "string",          "deleteMode": "archive",          "mergedRecordId": "string",          "mergedViewId": "string",          "position": 0,          "createdAt": "string",          "updatedAt": "string",          "headCommit": {            "id": "string",            "baseId": "string",            "targetType": "base",            "nodeId": "string",            "operationId": "string",            "parentCommitId": "string",            "payload": {              "property1": null,              "property2": null            },            "operation": "node_create",            "message": "string",            "author": "string",            "authorUser": null,            "createdAt": "string"          },          "baseFields": {            "property1": null,            "property2": null          }        },        "operationCount": 0,        "reviews": [          {            "id": "string",            "changeRequestId": "string",            "reviewerId": "string",            "reviewer": null,            "verdict": "approved",            "reason": "string",            "visibleOperationHeads": {              "property1": "string",              "property2": "string"            },            "createdAt": "string"          }        ]      },      "record": {        "id": "string",        "baseId": "string",        "headCommitId": "string",        "parentRecordId": "string",        "parentCommitId": "string",        "status": "active",        "createdBy": "string",        "createdByUser": null,        "fieldUsers": {},        "archivedAt": "string",        "createdAt": "string",        "updatedAt": "string",        "base": {          "id": "string",          "nodeId": "string",          "slug": "string",          "name": "string",          "description": "string",          "reviewPolicy": {            "kind": "single",            "requiredApprovals": 0          },          "createdAt": "string",          "fields": [            {              "id": "string",              "baseId": "string",              "slug": "string",              "name": "string",              "type": "text",              "required": true,              "position": 0,              "options": {}            }          ]        },        "headCommit": {          "id": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operationId": "string",          "parentCommitId": "string",          "payload": {            "property1": null,            "property2": null          },          "operation": "node_create",          "message": "string",          "author": "string",          "authorUser": null,          "createdAt": "string"        }      },      "view": {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "description": "string",        "type": "table",        "config": {          "filters": [],          "sorts": [],          "visibleFieldSlugs": [            "string"          ],          "fieldWidths": {            "property1": 92,            "property2": 92          },          "coverFieldSlug": "string",          "coverFit": "cover",          "cardSize": "small",          "showFieldLabels": true,          "stackByFieldSlug": "string",          "dateFieldSlug": "string",          "startFieldSlug": "string",          "endFieldSlug": "string",          "ganttScale": "week"        },        "status": "active",        "createdBy": "string",        "createdByUser": null,        "archivedAt": "string",        "createdAt": "string",        "updatedAt": "string"      }    }  ]}
POST
/api/v1/operations/{operationId}/revisions

Path Parameters

operationId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/operations/string/revisions" \  -H "Content-Type: application/json" \  -d '{    "fields": {      "property1": null,      "property2": null    }  }'
{  "id": "string",  "baseId": "string",  "targetType": "base",  "nodeId": "string",  "status": "in_review",  "submittedBy": "string",  "submittedByUser": null,  "sourceAttribution": {    "displayName": "string",    "ownerName": "string",    "channel": "web_ui"  },  "sourceMeta": {    "property1": null,    "property2": null  },  "reviewPolicySnapshot": {    "property1": null,    "property2": null  },  "mergeSummary": {    "property1": null,    "property2": null  },  "rejectedReason": "string",  "reviewedAt": "string",  "mergedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "node": {    "id": "string",    "parentId": "string",    "type": "folder",    "slug": "string",    "name": "string",    "description": "string",    "metadata": {},    "settings": {},    "explicitVisibility": null,    "icon": null,    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "baseId": "string",    "children": [      {        "id": "string",        "parentId": "string",        "type": "folder",        "slug": "string",        "name": "string",        "description": "string",        "metadata": {},        "settings": {},        "explicitVisibility": null,        "icon": null,        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "baseId": "string",        "children": [          null        ],        "hasChildren": true,        "shared": true      }    ],    "hasChildren": true,    "shared": true  },  "operations": [    {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    }  ],  "primaryOperation": {    "id": "string",    "changeRequestId": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operation": "node_create",    "status": "pending",    "targetRecordId": "string",    "targetViewId": "string",    "filePath": "string",    "sourceRecordId": "string",    "sourceCommitId": "string",    "baseCommitId": "string",    "headCommitId": "string",    "deleteMode": "archive",    "mergedRecordId": "string",    "mergedViewId": "string",    "position": 0,    "createdAt": "string",    "updatedAt": "string",    "headCommit": {      "id": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operationId": "string",      "parentCommitId": "string",      "payload": {        "property1": null,        "property2": null      },      "operation": "node_create",      "message": "string",      "author": "string",      "authorUser": null,      "createdAt": "string"    },    "baseFields": {      "property1": null,      "property2": null    }  },  "operationCount": 0,  "reviews": [    {      "id": "string",      "changeRequestId": "string",      "reviewerId": "string",      "reviewer": null,      "verdict": "approved",      "reason": "string",      "visibleOperationHeads": {        "property1": "string",        "property2": "string"      },      "createdAt": "string"    }  ]}
GET
/api/v1/records/{recordId}/change-requests

Path Parameters

recordId*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/records/string/change-requests"
[  {    "id": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "status": "in_review",    "submittedBy": "string",    "submittedByUser": null,    "sourceAttribution": {      "displayName": "string",      "ownerName": "string",      "channel": "web_ui"    },    "sourceMeta": {      "property1": null,      "property2": null    },    "reviewPolicySnapshot": {      "property1": null,      "property2": null    },    "mergeSummary": {      "property1": null,      "property2": null    },    "rejectedReason": "string",    "reviewedAt": "string",    "mergedAt": "string",    "createdAt": "string",    "updatedAt": "string",    "base": {      "id": "string",      "nodeId": "string",      "slug": "string",      "name": "string",      "description": "string",      "reviewPolicy": {        "kind": "single",        "requiredApprovals": 0      },      "createdAt": "string",      "fields": [        {          "id": "string",          "baseId": "string",          "slug": "string",          "name": "string",          "type": "text",          "required": true,          "position": 0,          "options": {}        }      ]    },    "node": {      "id": "string",      "parentId": "string",      "type": "folder",      "slug": "string",      "name": "string",      "description": "string",      "metadata": {},      "settings": {},      "explicitVisibility": null,      "icon": null,      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "baseId": "string",      "children": [        {          "id": "string",          "parentId": "string",          "type": "folder",          "slug": "string",          "name": "string",          "description": "string",          "metadata": {},          "settings": {},          "explicitVisibility": null,          "icon": null,          "position": 0,          "createdAt": "string",          "updatedAt": "string",          "baseId": "string",          "children": [            null          ],          "hasChildren": true,          "shared": true        }      ],      "hasChildren": true,      "shared": true    },    "operations": [      {        "id": "string",        "changeRequestId": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operation": "node_create",        "status": "pending",        "targetRecordId": "string",        "targetViewId": "string",        "filePath": "string",        "sourceRecordId": "string",        "sourceCommitId": "string",        "baseCommitId": "string",        "headCommitId": "string",        "deleteMode": "archive",        "mergedRecordId": "string",        "mergedViewId": "string",        "position": 0,        "createdAt": "string",        "updatedAt": "string",        "headCommit": {          "id": "string",          "baseId": "string",          "targetType": "base",          "nodeId": "string",          "operationId": "string",          "parentCommitId": "string",          "payload": {            "property1": null,            "property2": null          },          "operation": "node_create",          "message": "string",          "author": "string",          "authorUser": null,          "createdAt": "string"        },        "baseFields": {          "property1": null,          "property2": null        }      }    ],    "primaryOperation": {      "id": "string",      "changeRequestId": "string",      "baseId": "string",      "targetType": "base",      "nodeId": "string",      "operation": "node_create",      "status": "pending",      "targetRecordId": "string",      "targetViewId": "string",      "filePath": "string",      "sourceRecordId": "string",      "sourceCommitId": "string",      "baseCommitId": "string",      "headCommitId": "string",      "deleteMode": "archive",      "mergedRecordId": "string",      "mergedViewId": "string",      "position": 0,      "createdAt": "string",      "updatedAt": "string",      "headCommit": {        "id": "string",        "baseId": "string",        "targetType": "base",        "nodeId": "string",        "operationId": "string",        "parentCommitId": "string",        "payload": {          "property1": null,          "property2": null        },        "operation": "node_create",        "message": "string",        "author": "string",        "authorUser": null,        "createdAt": "string"      },      "baseFields": {        "property1": null,        "property2": null      }    },    "operationCount": 0,    "reviews": [      {        "id": "string",        "changeRequestId": "string",        "reviewerId": "string",        "reviewer": null,        "verdict": "approved",        "reason": "string",        "visibleOperationHeads": {          "property1": "string",          "property2": "string"        },        "createdAt": "string"      }    ]  }]
POST
/api/v1/records/{recordId}/change-requests

Path Parameters

recordId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/records/string/change-requests" \  -H "Content-Type: application/json" \  -d '{    "operation": "update"  }'
{  "id": "string",  "baseId": "string",  "headCommitId": "string",  "parentRecordId": "string",  "parentCommitId": "string",  "status": "active",  "createdBy": "string",  "createdByUser": null,  "fieldUsers": {},  "archivedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "base": {    "id": "string",    "nodeId": "string",    "slug": "string",    "name": "string",    "description": "string",    "reviewPolicy": {      "kind": "single",      "requiredApprovals": 0    },    "createdAt": "string",    "fields": [      {        "id": "string",        "baseId": "string",        "slug": "string",        "name": "string",        "type": "text",        "required": true,        "position": 0,        "options": {}      }    ]  },  "headCommit": {    "id": "string",    "baseId": "string",    "targetType": "base",    "nodeId": "string",    "operationId": "string",    "parentCommitId": "string",    "payload": {      "property1": null,      "property2": null    },    "operation": "node_create",    "message": "string",    "author": "string",    "authorUser": null,    "createdAt": "string"  },  "materialized": true}
POST
/api/v1/views/change-requests

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v1/views/change-requests" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "operation": "create",    "baseId": "string"  }'
{  "id": "string",  "baseId": "string",  "slug": "string",  "name": "string",  "description": "string",  "type": "table",  "config": {    "filters": [],    "sorts": [],    "visibleFieldSlugs": [      "string"    ],    "fieldWidths": {      "property1": 92,      "property2": 92    },    "coverFieldSlug": "string",    "coverFit": "cover",    "cardSize": "small",    "showFieldLabels": true,    "stackByFieldSlug": "string",    "dateFieldSlug": "string",    "startFieldSlug": "string",    "endFieldSlug": "string",    "ganttScale": "week"  },  "status": "active",  "createdBy": "string",  "createdByUser": null,  "archivedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "materialized": true}