Busabase
OpenAPI 参考

Bases

Workbench Bases — developer-facing table/database API.

GET
/api/v1/bases

Query Parameters

status?string

active (default) or the soft-archived set. Archived rows have the SAME shape as live ones — this is a predicate, not a different resource.

Default"active"

Value in

  • "active"
  • "archived"

Response Body

application/json

curl -X GET "https://example.com/api/v1/bases"
[  {    "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": {}      }    ]  }]
POST
/api/v1/bases

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" \  -H "Content-Type: application/json" \  -d '{    "slug": "string",    "name": "string"  }'
{  "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": {}    }  ],  "materialized": true}
GET
/api/v1/bases/{baseId}

Path Parameters

baseId*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/bases/string"
{  "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": {}    }  ]}
GET
/api/v1/bases/{baseId}/fields/deleted

Path Parameters

baseId*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/bases/string/fields/deleted"
[  {    "id": "string",    "baseId": "string",    "slug": "string",    "name": "string",    "type": "text",    "required": true,    "position": 0,    "options": {}  }]
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

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/fields" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "slug": "string"  }'
{  "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": {}    }  ]}
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}/fields/convert/preview

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/fields/convert/preview" \  -H "Content-Type: application/json" \  -d '{    "fieldId": "string",    "newType": "text"  }'
{  "totalCount": 0,  "convertibleCount": 0,  "nullCount": 0,  "conflicts": [    {      "recordId": "string",      "currentValue": null    }  ]}
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"    }  ]}