APITable API reference manual (beta)
Reminder:
The current API is in beta, we may add new interface return value properties, but will not remove properties that already exist.If the API does not return the data you need, feel free to feedback to us.
This reference manual is intended to help you gain a comprehensive understanding of the APITable API.
Recommendation:
If you haven't learned about the APITable API before, it is recommended that you start with APITable API Introduction.
The navigation area on the left side of this page provides detailed information about each API interface (including records, fields, views, attachments, spaces, and working directories).
The code area on the right of this page allows you to find sample requests and sample responses for each API interface, making it easy to copy the code you need directly.
The base URL for the APITable API request is https://api.apitable.com/fusion/v1/
.
Note: https requests must be used, not http requests.
The APITable API follows the RESTful convention as much as possible, i.e. data is added, deleted, and checked via GET
, POST
, PATCH
, and DELETE
requests to the space and APITable resources.
The request and response bodies are encoded in JSON format.
The parameter names in JSON use camel naming (e.g. viewId) and are case sensitive.
Way 1: By API token
API Token is the user authentication token.When you send an API request to the APITable server, you must include Authorization: Bearer {Your API Token}
in the request header to facilitate the server's authentication of the user's identity.
After successful authentication, this API request will have the same privileges as the user's operations in the APITable interface, i.e. whatever data the user can operate on the interface, this request can also operate on it.
Take the following cURL request as an example.
curl "https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/records" \
-H "Authorization: Bearer {Your API Token}" \
Its request header includes.
Name | Data Type | Required | Format of Value | Example Value |
---|---|---|---|---|
Authorization | String (string) | Yes | Bearer {Your API Token} |
Bearer uskYtInkHozfsMikhh0yfoS |
For specific authentication operations, please refer to Quick Start
Way 2: OAuth2 (WIP)
When sending API requests, you need to be aware of several restrictions: frequency restrictions, interface restrictions, usage restrictions.
Frequency limits
The frequency of API requests to the same table from the same user is limited to 5 requests/second
.
If the request frequency exceeds the limit, an error "Operation too frequent" will be displayed (error status code 429).
Interface limits
Get records interface: Get up to 1000 rows of records at a time.
For example, if you want to fetch 10000 rows of records in bulk, you need to call the Get Records interface at least 10 times.
Create records interface: Create up to 10 rows of records at a time.
For example, if you want to create 1000 rows of records in a batch, you need to call the Create Record interface at least 100 times.
Update records interface: update up to 10 rows of records at a time.
For example, if you want to update 1000 rows of records in a batch, you need to call the Update Record interface at least 100 times.
Delete records interface: Delete up to 10 rows of records at a time.
For example, if you want to delete 1000 rows of records in a batch, you need to call the Delete Record interface at least 100 times.
Upload attachments interface: only 1 attachment can be uploaded at a time.
If you need to upload multiple files, you need to call this interface repeatedly.
Usage limits
There are two types of usage limits: one is the limit of API usage; the other is the limit of space resource usage, for details, please refer to pring page.
The maximum capacity of uploading attachments to a single space is 1 GB.
Each time you send an API request, the application returns a business status code and a corresponding message.
If the request fails, you can troubleshoot it based on the status code and error message returned.
HTTP Status Code | Response Message | Business Status Code | Description |
---|---|---|---|
200 | SUCCESS | 200 | GET , PATCH , DELETE requests work and return results as expected |
201 | SUCCESS | 200 | POST request works and returns results as expected |
200 | Cannot find the specified datasheet | 301 | Possible scenarios: 1) The datasheet may have been deleted 2) The user cannot find the datasheet in their own space list |
200 | Failed to upload attachment | 426 | Possible scenarios: ① Attachments exceed the 1 GB size limit ② The space has reached its maximum attachment capacity |
200 | The number of uploaded attachments exceeds the limit | 428 | Upload attachments can only upload one per call, beyond this error will be reported |
200 | Operation without node permission | 602 | Users do not have access rights to the specified datasheet (e.g., manageable, editable, or read-only) |
200 | (Refer to the specific error message) | 400 | Parameter exception, data verification exception |
401 | Authentication failure | 401 | Possible scenarios: ① API Token is not passed in the request header ② API Token is incorrect |
403 | Prohibit access | 403 | Possible scenarios: ① The number of API calls has exceeded the limit ② Unable to get the API usage quota for the space, please try again later |
404 | Interface does not exist | 404 | Please check if the request address is correct |
429 | Operate too often | 429 | The maximum request frequency for the same table by the same user is 5 times/second |
500 | SERVER_ERROR (code) | 500 | Unhandled exceptions for internal services |
200 | You have exceeded the "Public Beta" limit of 50,000 lines | 304 | The number of rows in the table has reached the maximum number of rows in a single table, please replace the number of tables as soon as possible to avoid data loss |
At present, APITable is open to the interfaces of getting records, creating records, updating records and deleting records.
The data structure of the records is as follows.
Properties | Type | Description | Example values |
---|---|---|---|
recordId | string* |
record ID | rec1jV9eWxcaB |
createdAt | number* |
The creation time of the record, in timestamp format | 1624960629000 |
updatedAt | number* |
The modification time of this record, in timestamp format | 1624964696000 |
fields | object* |
The data of the corresponding field in a record, returned in the format {"field": "value"} |
{"status": "in progress"} or `{"created": 1624960629065, "updated": 1624964696235, "category": ["Fixing", "P0"], "issue description": "A small |
Get Records
This interface is used to get the records of the specified datasheet.
- Request address: https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/records
- Request method:
GET
- Request header must contain:
Authorization: Bearer {your API Token}
The area on the right provides sample requests for cURL, Javascript SDK for your reference.
If you need more detailed operation guidance, you can read the get-records operation guide of API Guide.
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
datasheetId required | string Example: dst0Yj5aNeoHldqvf6 APITable Datasheet ID |
query Parameters
pageSize | number Default: 100 Example: pageSize=100 How many records are returned per page. By default, 100 records are returned per page. The value range is an integer from 1 to 1000. |
maxRecords | number Example: maxRecords=1000 How many records are returned in total. If maxRecords and pageSize are used at the same time, and the value of maxRecords is less than the total number of records, only the setting of maxRecords will take effect. |
pageNum | number Default: 1 Example: pageNum=1 Specifies the page number of the page, which is used in conjunction with the pageSize parameter. For example, 'pageSize=1000&pageNum=2' returns records between 1001 and 2000. |
sort | Array of objects Sort the returned records. Sort is an array of multiple sort objects.The structure of a single sort object is |
recordIds | Array of strings Example: recordIds=rec4zxfWB5uyM Returns a specified record. Example of obtaining multiple records: |
viewId | string Example: viewId=viwG9l1VPD6nH When the viewId is not explicitly specified, all records and fields are returned.When the viewId is explicitly specified, all records in the specified view will be returned in turn according to the sorting in the specified view.Note that the hidden fields in the view will not appear in the returned results. |
fields | Array of strings The returned record results are limited to the specified fields.cURL Query Example. 1. |
filterByFormula | string Use smart formulas to filter records.The formula can be used for reference《Formula Overview》.If filterByFormula and viewId are used at the same time, all records in the specified view that meet this formula will be returned.Query Example. |
cellFormat | string Default: "json" Enum: "string" "json" The type of the value in the cell. The default is
|
fieldKey | string Default: "name" Enum: "name" "id" The key used when querying fields and returning fields. The default is' name '(field name). When 'id' is specified, fieldId will be used as the query and return method (use 'id' can avoid code invalidation caused by modifying field names). |
Responses
Request samples
- cURL
- JavaScript SDK
curl -X GET \ "https://api.apitable.com/fusion/v1/datasheets/{Replace with yours datasheetId}/records" \ -H "Authorization: Bearer {Replace your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "pageNum": 1,
- "records": [
- {
- "recordId": "recV3ElniQavTNyJG",
- "fields": { },
- "createdAt": 0,
- "updatedAt": 0
}
], - "pageSize": 100,
- "total": 500
}
}
Create Records
This interface is used to create a new record in the specified datasheet.A maximum of 10 records can be created in a single request.
- Request address: https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/records
- Request method:
POST
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: application/json
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
A POST packet will contain a records
array with several records to be created.
The object fields
contains the fields to be created in a record and the corresponding values, and can contain any number of field values; fields not explicitly specified will be left blank.
If you need more detailed instructions, you can read the create-records instructions in the API Guide.
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
datasheetId required | string Example: dst0Yj5aNeoHldqvf6 APITable Datasheet ID |
query Parameters
viewId | string Example: viewId=viwG9l1VPD6nH When the viewId is not explicitly specified, all fields that are not empty are returned; When the viewId is explicitly specified, the fields that are not hidden and are not empty in the specified view are returned. |
Request Body schema: application/json
Request body structure
required | Array of objects (FieldCreateRo) The record data to be created, including the recorded fields and field values. |
fieldKey | string Default: "name" Enum: "name" "id" The key used when writing fields and returning fields. The default is' name '(field name). If you want to use fieldId as the write and return method, you need to explicitly specify it as' id '(using' id 'can avoid code invalidation caused by modifying field names). |
Responses
Request samples
- Payload
- cURL
- JavaScript SDK
{- "records": [
- {
- "fields": {
- "matter": "「Organization Module - Organization of the address book panel",
- "problem description": "It is essentially the same as the above requirements",
- "classification": "Product demand",
- "Review date": "2019-10-30T00:00:00.000Z"
}
}, - {
- "fields": {
- "matter": "「Member」 module - set the department",
- "Problem description": "After selecting a person, you can adjust multiple departments to which he belongs\nAfter selecting a department, you can also add members to the current department",
- "classification": "product demand",
- "review date": "2019-10-29T16:00:00.000Z"
}
}
], - "fieldKey": "name"
}
Response samples
- 201
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "records": [
- {
- "recordId": "recV3ElniQavTNyJG",
- "fields": { },
- "createdAt": 0,
- "updatedAt": 0
}
]
}
}
Update Records
This interface is used to update the records in the specified datasheet.A maximum of 10 records can be updated in a single request.
- Request address: https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/records
- Request method:
PATCH
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: application/json
Example requests for cURL, Javascript SDK are provided in the right area for your reference.
The object fields
contains the fields in a record to be updated and the corresponding values. Only fields that are explicitly specified will update the data, fields that are not specified will retain the old values.
If you need to clear the value of a field, you can set it to null
.For example, "Status": null
will clear the value of the "Status" column corresponding to the record.
If you need more detailed operation instructions, you can read the Update Records operation guide of the "API Guide".
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
datasheetId required | string Example: dst0Yj5aNeoHldqvf6 APITable Datasheet ID |
query Parameters
viewId | string Example: viewId=viwG9l1VPD6nH When the viewId is not explicitly specified, all fields that are not empty are returned; When the viewId is explicitly specified, the fields that are not hidden and are not empty in the specified view are returned. |
Request Body schema: application/json
Request body structure
records required | Array of arrays The record data to be updated, including the record fields and field values. |
fieldKey | string Default: "name" Enum: "name" "id" The key used when writing fields and returning fields. The default is' name '(field name).If you want to use fieldId as the write and return method, you need to explicitly specify it as' id '(using' id 'can avoid code invalidation caused by modifying field names). |
Responses
Request samples
- Payload
- cURL
- JavaScript SDK
{- "records": [
- {
- "recordId": "recrHnjVuH6Fd",
- "fields": {
- "currency": 5.53,
- "single choice": "Single choice 1"
}
}, - {
- "recordId": "recwZ6yV3Srv3",
- "fields": {
- "currency": 5.53,
- "single choice": "Single choice 2"
}
}
], - "fieldKey": "name"
}
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "records": [
- {
- "recordId": "recV3ElniQavTNyJG",
- "fields": { },
- "createdAt": 0,
- "updatedAt": 0
}
]
}
}
Delete Record
This interface is used to delete records from a particular datasheet.A maximum of 10 records can be deleted in a single request.
- Request address: https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/records
- Request method:
DELETE
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: application/json
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
If you need more detailed operation guidance, you can read the delete-records operation guide in the "API Guide".
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
datasheetId required | string Example: dst0Yj5aNeoHldqvf6 APITable Datasheet ID |
query Parameters
recordIds required | Array of strings Example: recordIds=recwZ6yV3Srv3 ID of the record to be deleted. |
Responses
Request samples
- cURL
- JavaScript SDK
curl -X DELETE \ "https://api.apitable.com/fusion/v1/datasheets/{Replace yours datasheetId}/records?recordIds={Replace with the one you want to delete recordId}" \ -H "Authorization: Bearer {Replace your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": true
}
The data structure of the fields is as follows.
Properties | Type | Description | Example values |
---|---|---|---|
id | string* |
field ID | fldsRHWJZwFcM |
name | string* |
field name | Order number |
type | string* |
Field types, possible values are listed in the section Field Types and Attributes | SingleText |
editable | boolean* |
Field permissions, i.e. column permissions, true for editable, false for read-only |
true |
property | object | Field attributes.Different fields have different attributes, see the section Field Types and Attributes for details on the attributes of various fields | {"defaultValue":"To be added"} |
isPrimary | boolean | Is the main | true |
desc | string | Field descriptions, i.e. column descriptions | This column is the automatic generation of the single number, do not manually modify |
Field Types and Attributes
APITable currently has the following field types.
The type of field returned by the interface | The type of the corresponding field |
---|---|
SingleText | single-line text |
Text | Multi-line text |
SingleSelect | Single choice |
MultiSelect | Multiple choice |
Number | Number |
Currency | Currency |
Percent | Percentage |
DateTime | Datetime |
Attachment | Attachment |
Member | Member |
Checkbox | Check |
Rating | Rating |
URL | Website |
Phone | A telephone number. |
MagicLink | MagicLink |
MagicLookUp | MagicLookUp |
Formula | Intelligent formula |
AutoNumber | Autoincrement number |
CreatedTime | Create Timestamp |
LastModifiedTime | Modify Timestamp |
CreatedBy | Created by |
LastModifiedBy | Updated by |
The following section describes the properties of each field type in detail.
When the "Get Field" interface is called, the following results are returned for each field type.
SingleText
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "SingleText",
"property": {
"defaultValue": ""
}
}
Field Properties | Data Type | Description |
---|---|---|
defaultValue | String | When creating a new record, the default value of the corresponding cell of this field, the default is empty |
Text
DescriptionNo field properties are available at this time.
SingleSelect
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "SingleSelect",
"property": {
"options": [
{
"id": "optpTVSGk0R2M",
"name": "Elevit",
"color": {
"name": "indigo_4",
"value": "#5586FF"
}
},
{
"id": "optqX2Bw479FG",
"name": "OAD",
"color": {
"name": "blue_4",
"value": "#55CDFF"
}
}
]
}
}
Field Properties | Data Type | Description |
---|---|---|
options | Object Arrays | List of all available options |
Description of the parameters contained under options.
Parameters | Data Type | Description |
---|---|---|
id | String | option ID |
name | String | option name |
color | Object | The color of the option, including the name and value of the color |
MultiSelect
The field properties are the same as the radio selection.
Number
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "Number",
"property": {
"defaultValue": "2",
"precision": 0,
"commaStyle": ",",
"symbol": "Square meters"
}
}
| Field Properties | Data Type | Description | | ---------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | | defaultValue | String | The default value for this field when creating a new record, default is empty. | | precision | Number | Indicates the number of decimal places, i.e., the precision of the number.The values are 0 (for integers), 1 (to one decimal place), 2 (to two decimal places), 3 (to three decimal places), 4 (to four decimal places) | | commaStyle | String | Thousand separator, set this property to separate thousands of digits by a comma, such as 1,000.default is empty (optional) | symbol | | symbol | String | numeric units, displayed to the right of the number, default is null (optional) |
Currency
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "Currency",
"property": {
"defaultValue": "1000.00",
"precision": 2,
"symbol": "¥",
"symbolAlign": "Default"
}
}
Field Properties | Data Type | Description |
---|---|---|
defaultValue | String | The default value for this field when creating a new record, the default is null. |
precision | Number | Indicates the number of decimal places, i.e., the precision of the number.The values are 0 (for integers), 1 (to one decimal place), 2 (to two decimal places), 3 (to three decimal places), 4 (to four decimal places) |
symbol | String | currency symbol, can be any custom character |
symbolAlign | String | currency symbol (optional).The default value is Default (the currency unit is immediately to the left of the value), other values are Left (the currency unit is fixed to the left), Right (the currency unit is fixed to the right). |
Percent
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "Percent",
"property": {
"defaultValue": "0.85",
"precision": 1
}
}
Field Properties | Data Type | Description |
---|---|---|
defaultValue | String | The default value of the cell corresponding to this field when creating a new record, the default is empty. |
precision | Number | Indicates the number of decimal places to convert the field value to a percentage, i.e., the percentage precision.The values are 0 (for integers), 1 (to one decimal place), 2 (to two decimal places), 3 (to three decimal places), 4 (to four decimal places).For example, if the field value is 0.22, it will be displayed as 22% if the percentage precision is 0. If the percentage precision is 1, it will be displayed as 22.0% |
de-duplicate
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "DateTime",
"property": {
"format": "YYYY/MM/DD hh:mm",
"includeTime": true,
"autoFill": true,
"timeZone": "Asia/Shanghai",
"includeTimeZone": true
}
}
Field Properties | Data Type | Description |
---|---|---|
format | String | Date format |
autoFill | Boolean | Whether to auto-fill the time when creating a new record |
includeTime | Boolean | Whether to display the time |
timeZone | String | Time zone |
includeTimeZone | Boolean | Whether to display time zone |
The value of the date field returns timestamp without restricted format.The format
information in the field property can be used for formatting, see dayjs format for the meaning.
If you don't want to handle date formatting and want the returned result to be consistent with the view display, you can assign cellFormat
to string
in the interface request parameters, and all the returned content will be a string.
For available values for timeZone
property, please refer to List of Time Zones. Example: Asia/Shanghai
。
Attachment
DescriptionNo field properties are available at this time.
Member
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "Member",
"property": {
"options": [
{
"id": "1385370606558318594",
"name": "Coco",
"type": "Member",
"avatar": "https://s1.apitable.com/default/avatar004.jpg"
}
],
"isMulti": true,
"shouldSendMsg": true
}
}
Field Properties | Data Type | Description |
---|---|---|
options | Object Arrays | Members that have been selected for the current member field |
isMulti | Boolean | If or not multiple members can be selected |
shouldSendMsg | Boolean | Whether to send an in-site message to a member when it is mentioned in the member column |
Description of the parameters contained under options.
| Parameters | Data Type | Description |
| ---------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
| id | String | The user's organizational unit id (different from the actual user id) on the current station, hereafter referred to as the member id. e. g.Bob's member id on space A is different from his member id on space B | name |
| name | String | member name |
| type | String | member type, including Member
(for users with physical accounts) and Team
(for organizational units on the station, such as departments, groups, etc.) |
| avatar | String | URL of the member's avatar |
Checkbox
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "Checkbox",
"property": {
"icon": "✅"
}
}
Field Properties | Data Type | Description |
---|---|---|
icon | String | Iconic representation of the checked value, typically an emoji character |
Rating
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "Rating",
"property": {
"icon": "⭐",
"max": 5
}
}
Field Properties | Data Type | Description |
---|---|---|
icon | String | An icon representation of the rating value, usually an emoji character, such as ⭐ or 🎉 |
max | Number | The maximum value of the rating, from 1-10 |
URL
DescriptionNo field properties are available at this time.
Phone
DescriptionNo field properties are available at this time.
DescriptionNo field properties are available at this time.
MagicLink
Two datasheets A and B are connected by a link field, and there will be an association field in A that is associated with B, and a link field in B that is associated with A.This pair of related fields is called a brother field
.
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "MagicLink",
"property": {
"foreignDatasheetId": "dstgr2YN264s7CXKVs",
"brotherFieldId": "fldyv9fOeCx8B",
"limitToViewId": "viwY4B8pmiMoi",
"limitSingleRecord": true
}
}
Field Properties | Data Type | Description |
---|---|---|
foreignDatasheetId | String | Related datasheet ID |
brotherFieldId | String | The ID of the brother field in the associated datasheet |
limitToViewId | String | Specifies a view of the associated datasheet, limiting the selection to the records under that view |
limitSingleRecord | Boolean | Whether to select only a single record |
MagicLookUp
The MagicLookUp field is a field attached to a MagicLink field. It is a dynamic computed field, and the cell itself does not store any value.
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "MagicLookUp",
"property": {
"relatedLinkFieldId": "fldhBGpM3ylTq",
"targetFieldId": "fldS2mgS18LE1",
"rollupFunction": "VALUES",
"valueType": "Array",
"entityField": {
"datasheetId": "dstgr2YN264s7CXKVs",
"field": {
"id": "fldS2mgS18LE1",
"name": "title",
"type": "SingleText",
"property": {
"defaultValue": ""
},
"editable": true
}
}
}
}
Field Properties | Data Type | Description |
---|---|---|
relatedLinkFieldId | String | The associated field ID of the referenced current datasheet |
targetFieldId | String | the field ID of the queried field in the associated datasheet |
hasError | Boolean | When a lookup dependent associated field is deleted or converted, the referenced value may not be retrieved properly |
entityField | Object | The entity fields are finally referenced, excluding MagicLoopUp fields.If an error exists, the entity field may not exist. |
rollupFunction | String | aggregate function |
valueType | String | Return value type, including String , Boolean , Number , DateTime , Array |
format | Object | Returns the result of a number or date formatting operation when the return value is of type Number or DateTime |
Description of the rollupFunction values refer to Lookup Product Manual for the meaning of the parameters.
Function Name Return Value Type Description VALUES array Original values AVERAGE number average COUNT number non-null count COUNTA number non-null value count COUNTALL number full count SUM number Total MIN number/datetime minimum MAX number/datetime maximum AND boolean and operation OR boolean or operation XOR boolean eXclusive OR operation CONCATENATE string concatenate to text ARRAYJOIN string comma-join ARRAYUNIQUE array Deduplication ARRAYCOMPACT array filter all null values Description of the parameters contained under entityField.
Parameters Data Type Description datasheetId String the datasheet ID of the entity field field Object A Field
object other than LookUp, a MagicLookUp can refer to a field of a MagicLookUp type from another datasheet, but ultimately an entity field will exist.Note: If you use this field feature in your application, you will need to handle exceptions when a reference error is detected for the field.
The parameters included under format are described below.
Parameters Data Type Description type String formatting type DateTime
,Number
,Percent
,Currency
format Object The specific format of the different formatting types Formatted as date.
Parameters Data Type Description dateFormat String Date format, e.g. YYYY/MM/DD
timeFormat String Time format, e.g. hh:mm
,HH:mm
includeTime Boolean Whether to display the time timeZone String Time zone includeTimeZone Boolean Whether to display time zone Formatted as a number or percentage:
Parameters Data Type Description precision Number numeric precision or percentage precision Formatted as currency:
Parameters Data Type Description precision Number Precision symbol String currency symbol
Formula
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "Formula",
"property": {
"expression": "",
"valueType": "String",
"hasError": false
}
}
Field Properties | Data Type | Description |
---|---|---|
expression | string* |
formula expression |
valueType | string(enum)* |
Return value type, including String , Boolean , Number , DateTime , Array |
hasError | boolean | The calculated value may not be retrieved properly when the relevant field dependent on the formula is deleted or converted. |
format | object | When the return value is of type Number or DateTime , it returns a number or date formatted in the same format as the lookup. |
Same as magiclookup, exceptions need to be handled when errors are encountered.
AutoNumber
DescriptionNo field properties are available at this time.
CreatedTime
Same as DateTime.
LastModifiedTime
Same as DateTime.
CreatedBy
The member id is at the space level and the creator id is at the account level.
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "CreatedBy",
"property": {
"options": [
{
"id": "e9cbc839fd1b49be85b1f7b0977047e2",
"name": "Coco",
"avatar": "https://s1.apitable.com/default/avatar004.jpg"
}
]
}
}
Field Properties | Data Type | Description |
---|---|---|
options | option[] | Members whose fields have been selected by the current member |
Description of the parameters contained under options.
Parameters | Data Type | Description |
---|---|---|
id | string* |
user id |
name | string* |
user nickname |
avatar | string* |
URL of user avatar |
LastModifiedBy
Return a sample fragment of the result (containing only field types and attributes).
{
"type": "LastModifiedBy",
"property": {
"options": [
{
"id": "e9cbc839fd1b49be85b1f7b0977047e2",
"name": "Coco",
"avatar": "https://s1.apitable.com/default/avatar004.jpg"
}
]
}
}
Field Properties | Data Type | Description |
---|---|---|
options | option[] | Current field stored users |
Description of the parameters contained under options.
Parameters | Data Type | Description |
---|---|---|
id | string* |
user id |
name | string* |
user nickname |
avatar | string* |
URL of user avatar |
Get Field
This interface is used to get information about all fields in the specified datasheet that you have permission to view.
A maximum of 200 fields can be created in a single datasheet.Requests for fields return the results in a single pass, without paging.
- Request address: https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/fields
- Request method:
GET
- Request header must contain:
Authorization: Bearer {your API Token}
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
If you need more detailed operation instructions, you can read the Get Fields operation guide of the "API Guide".
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
datasheetId required | string Example: dst0Yj5aNeoHldqvf6 APITable Datasheet ID |
query Parameters
viewId | string Example: viewId=viwG9l1VPD6nH View ID. If you specify a view, the returned fields are in the same order as the view. Hidden fields will not be returned. |
Responses
Request samples
- cURL
- JavaScript SDK
- Python SDK
curl -X GET \ "https://api.apitable.com/fusion/v1/datasheets/{Replace with yours datasheetId}/fields" \ -H "Authorization: Bearer {Replace your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "fields": [
- {
- "id": "fidV3ElniQavTNyJG",
- "name": "Title",
- "type": "SingleText",
- "desc": "desc",
- "property": {
- "defaultValue": "To be supplemented"
}
}
]
}
}
Create Field
This interface is used to create new fields in the specified datasheet.A maximum of 200 fields can be created in a single datasheet.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/datasheets/{datasheetId}/fields
- Request method:
POST
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: application/json
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
spaceId required | string Example: spcjXzqVrjaP3 Space ID |
datasheetId required | string Example: dstNiC6R9MryevVaCQ Datasheet ID |
Request Body schema: application/json
Request body structure
type required | string Field Type |
name required | string Field name, no more than 100 characters |
required | object Single line text attribute |
Responses
Request samples
- Payload
- cURL
- JavaScript SDK
- Python SDK
{- "type": "SingleText",
- "name": "Title",
- "property": {
- "defaultValue": "Default text text"
}
}
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "id": "fldupsvkR2ATB",
- "name": "Title"
}
}
Delete field
This interface is used to delete fields in the specified datasheet.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/datasheets/{datasheetId}/fields/{fieldId}
- Request method:
DELETE
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: application/json
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
spaceId required | string Example: spcjXzqVrjaP3 Space ID |
datasheetId required | string Example: dstNiC6R9MryevVaCQ Datasheet ID |
fieldId required | string Example: fld7r18G7eSOu field ID, field ID can be obtained through the field interface |
Responses
Request samples
- cURL
- JavaScript SDK
- Python SDK
curl -X DELETE \ "https://api.apitable.com/fusion/v1/spaces/spcjXzqVrjaP3/datasheets/dstNiC6R9MryevVaCQ/fields/fldxxxxxx" \ -H "Authorization: Bearer {Your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": { }
}
Currently, only the interface to get views is open in APITable.
Views are different forms of data presentation and are divided into different types such as grid view, kanban view, gallery view, gantt view, etc.Views can be individually set up for filtering, grouping, sorting, etc.
Up to 30 views can be created in a datasheet.
The data structure of the views is as follows.
Properties | Type | Description | Example values |
---|---|---|---|
id | string* |
view ID | viwpdA8TUBp5r |
name | string* |
view name | all orders |
type | string (enum)* |
View type, possible values are Grid , Gallery , Kanban , Gantt |
Grid |
Get View
This interface is used to fetch all views of the specified datasheet.
The request to fetch the views returns the results in one go, without paging.
- Request address: https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/views
- Request method:
GET
- Request header must contain:
Authorization: Bearer {your API Token}
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
If you need a more detailed operation guide, you can read the Get Views operation guide in the "API Guide".
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
datasheetId required | string Example: dst0Yj5aNeoHldqvf6 APITable Datasheet ID |
Responses
Request samples
- cURL
- JavaScript SDK
curl -X GET \ "https://api.apitable.com/fusion/v1/datasheets/{Replace with yours datasheetId}/views" \ -H "Authorization: Bearer {Replace your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "views": [
- {
- "id": "viwpdA8TUBp5r",
- "name": "Order completed",
- "type": "Grid"
}
]
}
}
Create Datasheet
This interface is used to create a datasheet with the specified fields in the specified space station.A maximum of 200 fields can be created in a single request in a newly created datasheet.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/datasheets
- Request method: `POST
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: application/json
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
spaceId required | string Example: spcjXzqVrjaP3 Space ID |
Request Body schema: application/json
Request body structure
name required | string Datasheet name, no more than 100 characters |
description | string Table description, no more than 500 characters |
folderId | string The folder ID; if it is blank, it will be the working directory by default |
preNodeId | string The ID of the previous node. If it is empty, it will be moved to the first place |
Array of objects (FieldItemRo) Field list. If it is blank, 3 columns of default fields will be added |
Responses
Request samples
- Payload
- cURL
- JavaScript SDK
- Python SDK
{- "name": "My Datasheet",
- "description": "This is a description",
- "folderId": "fodn173Q0e8nC",
- "preNodeId": "dstQJl6BGku1WfLPTD",
- "fields": [
- {
- "type": "Text",
- "name": "Title"
}
]
}
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "id": "dstbs2U7mt8AEqgKuh",
- "createdAt": 1648648690000,
- "fields": [
- {
- "id": "fldupsvkR2ATB",
- "name": "Title"
}
]
}
}
Create embedded links
This interface is used to create an "embed link" to a specified node, such as a datasheet or a dashboard. If all parameters in the payload have the same value, the generated linkId (the last string of the url path) is the same. If the parameter values of the payload are different, the generated linkId will also be different.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/nodes/{nodeId}/embedlinks
- Request method: `POST
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: application/json
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
spaceId required | string Example: spcjXzqVrjaP3 Space ID |
nodeId required | string Example: dstS94qPZFXjC1LKns Datasheet ID |
Request Body schema: application/json
object (EmbedLinkPayloadDto) | |
theme | string (This attribute is temporarily closed) The default value is light, theme color, dark | light |
Responses
Request samples
- Payload
- cURL
- JavaScript SDK
- Python SDK
{- "payload": {
- "primarySideBar": {
- "collapsed": true
}, - "viewControl": {
- "viewId": "string",
- "tabBar": true,
- "toolBar": {
- "basicTools": true,
- "shareBtn": true,
- "widgetBtn": true,
- "apiBtn": true,
- "formBtn": true,
- "historyBtn": true,
- "robotBtn": true,
- "addWidgetBtn": true,
- "fullScreenBtn": true
}, - "collapsed": true,
- "nodeInfoBar": true,
- "collaboratorStatusBar": true
}, - "bannerLogo": true,
- "permissionType": "string"
}, - "theme": "string"
}
Response samples
- 201
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "payload": {
- "primarySideBar": {
- "collapsed": true
}, - "viewControl": {
- "viewId": "string",
- "tabBar": true,
- "toolBar": {
- "basicTools": true,
- "shareBtn": true,
- "widgetBtn": true,
- "apiBtn": true,
- "formBtn": true,
- "historyBtn": true,
- "robotBtn": true,
- "addWidgetBtn": true,
- "fullScreenBtn": true
}, - "collapsed": true,
- "nodeInfoBar": true,
- "collaboratorStatusBar": true
}, - "bannerLogo": true,
- "permissionType": "string"
}, - "theme": "string",
- "linkId": "string",
- "url": "string"
}
}
Get list of embedded links
This interface is used to get a list of embedded links for the specified node(deleted embedded links are not returned).
A datasheet can create up to 30 embedded links. The result is returned once upon request, without pagination.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/nodes/{nodeId}/embedlinks
- Request method:
GET
- Request header must contain:
Authorization: Bearer {your API Token}
The right area provides an example of a cURL request for your reference.
If you need more detailed operation instructions, you can read the Get Embedded Links List operation guide in the "API Guide".
path Parameters
spaceId required | string Example: spcjXzqVrjaP3 Space ID |
nodeId required | string Example: dstS94qPZFXjC1LKns Datasheet ID |
Responses
Request samples
- cURL
- JavaScript SDK
- Python SDK
curl -X GET 'https://api.apitable.com/fusion/v1/spaces/spcjXzqVrjaP3/nodes/dstWUHwzTHd2YQaXEE/embedlinks' \ -H 'Authorization: Bearer {Replace your API Token}'
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": [
- {
- "payload": {
- "primarySideBar": {
- "collapsed": true
}, - "viewControl": {
- "viewId": "string",
- "tabBar": true,
- "toolBar": {
- "basicTools": true,
- "shareBtn": true,
- "widgetBtn": true,
- "apiBtn": true,
- "formBtn": true,
- "historyBtn": true,
- "robotBtn": true,
- "addWidgetBtn": true,
- "fullScreenBtn": true
}, - "collapsed": true,
- "nodeInfoBar": true,
- "collaboratorStatusBar": true
}, - "bannerLogo": true,
- "permissionType": "string"
}, - "theme": "string",
- "linkId": "string",
- "url": "string"
}
]
}
Delete embedded link
Disable the specified embed link. After deactivation, the link cannot be accessed.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/nodes/{nodeId}/embedlinks/{linkId}
- Request method:
DELETE
- The request header must contain.
Authorization: Bearer {your API Token}
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
spaceId required | string Example: spcjXzqVrjaP3 Space ID |
nodeId required | string Example: dstS94qPZFXjC1LKns Datasheet ID |
linkId required | string Example: embb90a52cfc02a4f83 Embed Link ID |
Responses
Request samples
- cURL
- JavaScript SDK
- Python SDK
curl -X DELETE 'https://api.apitable.com/fusion/v1/spaces/spcjXzqVrjaP3/nodes/dstWUHwzTHd2YQaXEE/embedlinks/embb90a52cfc02a4f83' \ -H 'Authorization: Bearer {Replace your API Token}'
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS"
}
Upload attachment
This interface is used to upload an attachment and bind the attachment to a datasheet.
After uploading the attachment, the attachment data is not inserted directly into the datasheet, but needs to be inserted into a field of type "attachment" by calling the "Create records" or "Update records" interface.
Only one attachment can be uploaded per request.If you need to upload multiple files, you need to call this interface repeatedly.
- Request address: https://api.apitable.com/fusion/v1/datasheets/{datasheetId}/attachments
- Request method:
POST
- The request header must contain.
Authorization: Bearer {your API Token}
Content-Type: multipart/form-data
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
If you need more detailed operation guidance, you can read the Upload Attachments operation guidance in the "API Guide".
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
datasheetId required | string Example: dst0Yj5aNeoHldqvf6 APITable Datasheet ID |
Request Body schema: multipart/form-data
Request body structure
file required | string <binary> The local absolute path of the attachment to be uploaded. |
Responses
Request samples
- cURL
- JavaScript SDK
curl -X POST \ "https://api.apitable.com/fusion/v1/datasheets/{Replace with yours datasheetId}/attachments" \ -H "Authorization: Bearer {Replace your API Token}" \ -H "Content-Type: multipart/form-data" \ -F "file=@{Replace with your local file path}"
Response samples
- 201
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "token": "space/2020/07/28/6fdc652231a8480398e302606ae28213",
- "name": "9d4911932181f254433a86b05797f9a6.jpeg",
- "size": 7194,
- "width": 479,
- "height": 478,
- "mimeType": "image/jpeg",
- "preview": "***",
- "url": "***"
}
}
At the moment the APITable only opens the interface to get the list of space stations.
The data structure of space stations is as follows.
Attribute | Type | Description | Example Value |
---|---|---|---|
id | string* |
space ID | spcX9P2xUcKst |
name | string* |
space station name | test space station |
isAdmin | boolean | whether the current requesting user is the main administrator of this station | true |
Get the list of spaces
This interface is used to get all space stations created or invited to by the current requesting user.
- Request address: https://api.apitable.com/fusion/v1/spaces
- Request method:
GET
- Request header must contain:
Authorization: Bearer {your API Token}
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
If you need more detailed operation instructions, you can read the Get List of Spaces operation guide in the "API Guide".
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
Responses
Request samples
- cURL
- JavaScript SDK
curl -X GET \ "https://api.apitable.com/fusion/v1/spaces" \ -H "Authorization: Bearer {Replace your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "spaces": [
- {
- "id": "spczdmQDfBAn5",
- "name": "APITable No.1",
- "isAdmin": true
}
]
}
}
Get file list
This interface is used to get a list of the outermost files in the working directory of a given space station.
Possible file types to be fetched include datasheets, folders, forms, dashboards, etc.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/nodes
- Request method:
GET
- Request header must contain:
Authorization: Bearer {your API Token}
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
If you need more detailed operation instructions, you can read the Get Node List operation guide of the "API Guide".
path Parameters
spaceId required | string Example: spczdmQDfBAn5 Space ID |
Responses
Request samples
- cURL
- JavaScript SDK
curl -X GET \ "https://api.apitable.com/fusion/v1/spaces/{Replace with yours spaceId}/nodes" \ -H "Authorization: Bearer {Replace your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "nodes": [
- {
- "id": "fodwrbgo8lDpbUjZzm",
- "name": "Procurement management",
- "type": "Folder",
- "icon": "🤠",
- "isFav": true
}
]
}
}
Get file details
This interface is used to get the details of the specified file in the working directory of the specified space station.
Possible file types to be fetched include datasheets, folders, forms, dashboards, etc.
If the specified file type is a folder, it will get the list of the outermost files under that folder and their details; if the specified file is of other types, it will get the details of that file.
- Request address: https://api.apitable.com/fusion/v1/spaces/{spaceId}/nodes/{nodeId}
- Request method:
GET
- Request header must contain:
Authorization: Bearer {your API Token}
Example requests for cURL, Javascript SDK are provided in the area on the right for your reference.
If you need more detailed operation guidance, you can read the Get Node Details operation guidance in the "API Guide".
If you have more complex interface requests, you can refer to the following parameters and combine them by yourself.
path Parameters
spaceId required | string Example: spczdmQDfBAn5 Space ID |
nodeId required | string Example: fodTXAYEmQ5rd File node ID, such as APITable Datasheet ID, folder ID, collection table ID or dashboard ID |
Responses
Request samples
- cURL
- JavaScript SDK
curl -X GET \ "https://api.apitable.com/fusion/v1/spaces/{Replace with yours spaceId}/nodes/{Replace with yours nodeId}" \ -H "Authorization: Bearer {Replace your API Token}"
Response samples
- 200
{- "success": true,
- "code": 200,
- "message": "SUCCESS",
- "data": {
- "id": "fodwrbgo8lDpbUjZzm",
- "name": "Procurement management",
- "type": "Folder",
- "icon": "🤠",
- "isFav": true,
- "children": [ ]
}
}