Office
No-code data tables (Base/Bitable) and approval flows (Approval).
10 endpoints · base /api/v1/office
List records in a table.
office_list_recordsScope: office.base.record.viewAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
Idempotency-Key New | string | header | no | A value you generate for EACH write (e.g. a UUID), up to 200 characters. Resending the same value within 24 hours returns the original result instead of creating a second record. Same value with a different body ⇒ 422. |
id | GUID | path | yes | Table id |
page | int | body | no | — |
pageSize | int | body | no | Rows per page |
Example
curl -X POST https://api.nextx.vn/api/v1/office/tables/<id>/records/list \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Idempotency-Key: 7f3c2a90-…" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"pageSize": 1
}'Sample response
Response schema is being synced from source.
Details of one record.
office_get_recordScope: office.base.record.viewAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
id | GUID | path | yes | Table id |
recordId | GUID | path | yes | — |
Example
curl https://api.nextx.vn/api/v1/office/tables/<id>/records/<recordId> \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
Response schema is being synced from source.
Create a record.
office_create_recordScope: office.base.record.manageAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
Idempotency-Key New | string | header | no | A value you generate for EACH write (e.g. a UUID), up to 200 characters. Resending the same value within 24 hours returns the original result instead of creating a second record. Same value with a different body ⇒ 422. |
id | GUID | path | yes | Table id |
data | object | body | yes | Field values keyed by field_id |
Example
curl -X POST https://api.nextx.vn/api/v1/office/tables/<id>/records \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Idempotency-Key: 7f3c2a90-…" \
-H "Content-Type: application/json" \
-d '{
"data": {}
}'Sample response
Response schema is being synced from source.
Update a record.
office_update_recordScope: office.base.record.manageAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
Idempotency-Key New | string | header | no | A value you generate for EACH write (e.g. a UUID), up to 200 characters. Resending the same value within 24 hours returns the original result instead of creating a second record. Same value with a different body ⇒ 422. |
id | GUID | path | yes | Table id |
recordId | GUID | path | yes | — |
data | object | body | yes | — |
replace | bool | body | no | true = overwrite everything |
Example
curl -X PUT https://api.nextx.vn/api/v1/office/tables/<id>/records/<recordId> \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Idempotency-Key: 7f3c2a90-…" \
-H "Content-Type: application/json" \
-d '{
"data": {},
"replace": false
}'Sample response
Response schema is being synced from source.
Delete a record.
office_delete_recordScope: office.base.record.manageAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
id | GUID | path | yes | Table id |
recordId | GUID | path | yes | — |
Example
curl -X DELETE https://api.nextx.vn/api/v1/office/tables/<id>/records/<recordId> \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
Response schema is being synced from source.
List approval requests.
office_list_approval_instancesScope: office.approval.instance.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
role | string | query | no | Request scope; default mine (requests submitted by the caller) |
page | int | query | no | — |
pageSize | int | query | no | Rows per page |
Example
curl https://api.nextx.vn/api/v1/office/approvals/instances?role=...&page=1&pageSize=1 \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"items": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"definitionId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"definitionCode": "string",
"applicantId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"status": "string",
"formValue": "string",
"currentNodeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"enrollmentId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"createdAt": "2026-10-27T09:00:00+07:00",
"definitionName": "string",
"myPendingTaskId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
}
],
"totalCount": 0,
"page": 0,
"pageSize": 0,
"totalPages": 0,
"hasNextPage": false,
"hasPreviousPage": false
}Approval request details.
office_get_approval_instanceScope: office.approval.instance.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
id | GUID | path | yes | — |
Example
curl https://api.nextx.vn/api/v1/office/approvals/instances/<id> \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"instance": {
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"definitionId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"definitionCode": "string",
"applicantId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"status": "string",
"formValue": "string",
"currentNodeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"enrollmentId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"createdAt": "2026-10-27T09:00:00+07:00",
"definitionName": "string",
"myPendingTaskId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
},
"tasks": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"instanceId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"nodeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"approverId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"status": "string",
"taskKind": "string",
"comment": "string",
"actedAt": "2026-10-27T09:00:00+07:00",
"originTaskId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"position": 0,
"dueAt": "2026-10-27T09:00:00+07:00",
"escalatedAt": "2026-10-27T09:00:00+07:00",
"delegatedForUserId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
}
],
"timeline": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"taskId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"action": "string",
"actorId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"comment": "string",
"createdAt": "2026-10-27T09:00:00+07:00"
}
]
}Create an approval request from a template.
office_create_approval_instanceScope: office.approval.instance.manageUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
Idempotency-Key New | string | header | no | A value you generate for EACH write (e.g. a UUID), up to 200 characters. Resending the same value within 24 hours returns the original result instead of creating a second record. Same value with a different body ⇒ 422. |
definitionCode | string | body | yes | Approval template code |
formValue | string | body | no | Form values (JSON string) |
Example
curl -X POST https://api.nextx.vn/api/v1/office/approvals/instances \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Idempotency-Key: 7f3c2a90-…" \
-H "Content-Type: application/json" \
-d '{
"definitionCode": "...",
"formValue": "..."
}'Sample response
nullApprove one approval task.
office_approve_taskScope: office.approval.instance.manageUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
Idempotency-Key New | string | header | no | A value you generate for EACH write (e.g. a UUID), up to 200 characters. Resending the same value within 24 hours returns the original result instead of creating a second record. Same value with a different body ⇒ 422. |
taskId | GUID | path | yes | — |
comment | string | body | no | — |
Example
curl -X POST https://api.nextx.vn/api/v1/office/approvals/tasks/<taskId>/approve \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Idempotency-Key: 7f3c2a90-…" \
-H "Content-Type: application/json" \
-d '{
"comment": "..."
}'Sample response
Response schema is being synced from source.
Reject one approval task.
office_reject_taskScope: office.approval.instance.manageUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
Idempotency-Key New | string | header | no | A value you generate for EACH write (e.g. a UUID), up to 200 characters. Resending the same value within 24 hours returns the original result instead of creating a second record. Same value with a different body ⇒ 422. |
taskId | GUID | path | yes | — |
comment | string | body | no | — |
Example
curl -X POST https://api.nextx.vn/api/v1/office/approvals/tasks/<taskId>/reject \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Idempotency-Key: 7f3c2a90-…" \
-H "Content-Type: application/json" \
-d '{
"comment": "..."
}'Sample response
Response schema is being synced from source.