# Data tables
Refer to the following sections to programmatically manage data tables and their records using APIs:
# Rate limits
Data table resources have the following rate limits:
| Type | Resource | Limit |
|---|---|---|
| All | All Data tables endpoints | 60 requests per minute |
# Table management APIs
You can use the following endpoints to manage and structure data tables:
Base URL: https://www.workato.com
# Quick reference
| Type | Resource | Description |
|---|---|---|
| GET | /api/data_tables | List all data tables. |
| GET | /api/data_tables/:data_table_id | Get data table by ID. |
| POST | /api/data_tables | Creates a data table. |
| PUT | /api/data_tables/:data_table_id | Updates a data table. |
| DELETE | /api/data_tables/:data_table_id | Deletes a data table. |
| POST | /api/data_tables/:data_table_id/truncate | Truncates a data table. |
# List data tables
Returns a list of all data tables in your workspace.
GET /api/data_tables
# URL parameters
| Name | Type | Description |
|---|---|---|
| page | integer optional | Page number of the data tables to fetch. Defaults to 1. |
| per page | integer optional | Page size. Defaults to 100. Maximum is 100. |
# Sample request
curl -X GET 'https://www.workato.com/api/data_tables'
-H 'Authorization: Bearer <api_token>'
# Response
{
"data": [
{
"id": "f4d2e85d-c7f4-4877-8f16-6643a4b3fb23",
"name": "Resume screening",
"schema": [
{
"type": "string",
"name": "application_id",
"optional": true,
"field_id": "8f4a57d6-f524-47f2-ae59-be1a80dc2dd5",
"hint": "Greenhouse application ID",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "candidate_id",
"optional": true,
"field_id": "b3f6f50a-6431-4cd4-af2c-f88a7b291bce",
"hint": "Greenhouse candidate ID",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "job_id",
"optional": true,
"field_id": "cdf319f0-2bde-4048-bde6-4c862e7737bd",
"hint": "Greenhouse job ID",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "department",
"optional": true,
"field_id": "25256ad2-5297-46e3-960b-f340af9d292f",
"hint": "Hiring department",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "recruiter",
"optional": true,
"field_id": "38a85051-a12c-4f0b-a308-7e8cd5c68e78",
"hint": "Recruiter name",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "task_name",
"optional": true,
"field_id": "a305f5b1-df86-4f3f-a434-db142c9f5b95",
"hint": "Workflow stage",
"metadata": {},
"multivalue": false
}
],
"folder_id": 24468824,
"created_at": "2025-04-04T11:35:04.544-07:00",
"updated_at": "2025-04-04T11:55:50.473-07:00"
},
{
"id": "fb0b03f3-2e5a-4a05-a483-4ee3092805c5",
"name": "Intake form",
"schema": [
{
"type": "string",
"name": "Description",
"optional": true,
"field_id": "b3545fa7-600c-4ed0-ab04-6e4a866db158",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "Review comments",
"optional": true,
"field_id": "9db1ae98-01f2-4da5-9003-058d8ce80475",
"metadata": {},
"multivalue": false
},
{
"type": "number",
"name": "Rate",
"optional": true,
"field_id": "7b98b819-f8bc-4376-9eb1-ef18c5ca9ae1",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "Notes",
"optional": true,
"field_id": "35885b91-ee7e-453e-a4f9-d41c88e74521",
"metadata": {},
"multivalue": false
},
{
"type": "boolean",
"name": "pass",
"optional": true,
"field_id": "4b0f3ac7-0dad-4628-85a8-85583c9a09d9",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "Reviewer",
"optional": true,
"field_id": "a1913ee5-6342-4176-8e25-8c4787286fee",
"metadata": {},
"multivalue": false
},
{
"type": "file",
"name": "Resume",
"optional": true,
"field_id": "8853cfa6-9e69-4b57-98cb-5264497b1dac",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "Email",
"optional": true,
"field_id": "fea109b6-95c2-41a9-9075-000aa4e54b6a",
"metadata": {},
"multivalue": false
}
],
"folder_id": 21138015,
"created_at": "2024-10-04T08:40:24.349-07:00",
"updated_at": "2025-04-03T10:02:37.905-07:00"
},
{
"id": "d263710a-e7cc-418f-bbc5-aacf76667418",
"name": "PTO requests",
"schema": [
{
"type": "string",
"name": "Name",
"optional": false,
"field_id": "4cd59a12-ae0c-40fa-8896-fd259b271fd9",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "Description",
"optional": true,
"field_id": "06e65f37-81eb-4093-8219-f8b14b2b23e8",
"metadata": {},
"multivalue": false
},
{
"type": "string",
"name": "Review comments",
"optional": true,
"field_id": "cb1589c6-2537-43f8-bd5d-6776b310d080",
"metadata": {},
"multivalue": false
}
],
"folder_id": 17415752,
"created_at": "2024-09-26T20:49:04.147-07:00",
"updated_at": "2024-09-26T20:49:04.222-07:00"
}
]
}
# Get data table by ID
Returns the data table associated with the ID you specify.
GET /api/data_tables/:data_table_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | integer required | Provide the ID of a specific data table. |
# Sample request
curl -X GET 'https://www.workato.com/api/data_tables/db4b8544-8de8-4c6d-83bd-e487f6616ccc'
-H 'Authorization: Bearer <api_token>'
# Response
{
"data": {
"id": "db4b8544-8de8-4c6d-83bd-e487f6616ccc",
"name": "Expense reports",
"schema": [
{
"type": "string",
"name": "Expense type",
"optional": false,
"field_id": "1ec0c3c7-abcd-4bca-bab5-efa51da56635",
"metadata": {},
"multivalue": false
},
{
"type": "number",
"name": "Cost",
"optional": true,
"field_id": "b3545fa7-600c-4ed0-ab04-6e4a866db158",
"metadata": {},
"multivalue": false
},
{
"type": "date",
"name": "Date of purchase",
"optional": true,
"field_id": "9db1ae98-01f2-4da5-9003-058d8ce80475",
"metadata": {},
"multivalue": false
},
{
"type": "integer",
"name": "Priority",
"optional": true,
"field_id": "7b98b819-f8bc-4376-9eb1-ef18c5ca9ae1",
"metadata": {},
"multivalue": false
},
],
"folder_id": 1124996,
"created_at": "2025-05-16T13:30:09.835+08:00",
"updated_at": "2025-05-16T13:30:09.835+08:00"
}
}
# Create data table
Creates a data table in a folder you specify.
POST /api/data_tables
# Payload
| Name | Type | Description |
|---|---|---|
| name | string required | The name of the data table to create. |
| folder_id | integer required | Provide the ID of the folder where you plan to create the data table. |
| schema | array required | Supply an array of nested elements to define your table structure. You must supply the column name, data type, and whether the column is required. |
| schema[type] | boolean, date, date_time, integer, number, string, file, relation required | The data type of the column you plan to create. |
| schema[name] | string required | The name of the column you plan to create. |
| schema[optional] | integer, boolean required | Indicates if the column is required or optional. Must be either true, false, 1, or 0. |
| schema[field_id] | Must match regular expression: /\h{8}-\h{4}-\h{4}-\h{4}-\h{12}/optional | Unique Universal Identifier (UUID) of the column. Must follow this format: f47ac10b-58cc-4372-a567-0e02b2c3d479. |
| schema[hint] | string optional | Provide a hint to help your end users populate entries in a data column. The hint displays as a tooltip when you hover over the column in the user interface. |
| schema[default_value] | variable optional | The default value of the column. Must match the data type of the column specified in the request. |
| schema[metadata] | hash optional | Data table metadata. |
| schema[relation] | hash optional | Indicates that this table links to another data table. |
| schema[relation][table_id] | string optional | The ID of the data table linked to this table. |
| schema[relation][field_id] | string required | The column ID of a linked data table. |
| schema[multivalue] | boolean optional | Indicates whether the column accepts multi-value input. |
# Sample request
curl -X POST 'https://www.workato.com/api/data_tables' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
-d '{
"name": "Expense reports 4",
"folder_id": 75509,
"schema": [
{
"type": "string",
"name": "Expense type",
"optional": false,
"multivalue": true
},
{
"type": "date",
"name": "Date",
"optional": true
},
{
"type": "boolean",
"name": "Status",
"optional": true
},
{
"type": "date_time",
"name": "Check-in",
"optional": true
},
{
"type": "file",
"name": "Reciept",
"optional": true
},
{
"type": "integer",
"name": "Days at hotel",
"optional": true
},
{
"type": "number",
"name": "Cost",
"optional": true
},
{
"type": "relation",
"name": "Budget",
"optional": true,
"relation": {
"table_id": "2507a39a-6847-4857-88ed-c3b9c8302e02",
"field_id": "900454f4-5b3d-4670-bc3c-d640915156f2"
}
}
]
}
# Response
{
"data": {
"id": "52d97443-1dbd-4ae0-9cd9-99ac2d020977",
"name": "Expense reports 4",
"schema": [
{
"type": "string",
"name": "Expense type",
"optional": false,
"field_id": "76ddbd6f-35ea-4884-bb97-cecac5d4abc7",
"default_value": [],
"metadata": {},
"multivalue": true
},
{
"type": "date",
"name": "Date",
"optional": true,
"field_id": "c6e0ee37-827c-4d41-9e1a-7cac79e07678",
"metadata": {},
"multivalue": false
},
{
"type": "boolean",
"name": "Status",
"optional": true,
"field_id": "e170b117-d744-44ba-9f65-0a616646056a",
"metadata": {},
"multivalue": false
},
{
"type": "date_time",
"name": "Check-in",
"optional": true,
"field_id": "f289a693-a97f-41bb-b0e0-96dc532ccd0c",
"metadata": {},
"multivalue": false
},
{
"type": "file",
"name": "Reciept",
"optional": true,
"field_id": "b92fa6c1-f6ed-4ff2-98dd-a774cf560ec0",
"metadata": {},
"multivalue": false
},
{
"type": "integer",
"name": "Days at hotel",
"optional": true,
"field_id": "bf3ec7b5-0b41-453f-810a-5d53b1582b65",
"metadata": {},
"multivalue": false
},
{
"type": "number",
"name": "Cost",
"optional": true,
"field_id": "566307b9-bfda-4f77-af55-3c258359f656",
"metadata": {},
"multivalue": false
},
{
"type": "relation",
"name": "Budget",
"optional": true,
"field_id": "d7f4d5dd-2cb6-45d5-95c1-8d14339a50ba",
"metadata": {},
"relation": {
"table_id": "2507a39a-6847-4857-88ed-c3b9c8302e02",
"field_id": "900454f4-5b3d-4670-bc3c-d640915156f2"
},
"multivalue": false
}
],
"folder_id": 75509,
"created_at": "2025-05-21T14:56:49.173-07:00",
"updated_at": "2025-05-21T14:56:49.173-07:00"
}
}
# Update data table
Updates a data table you specify.
PUT /api/data_tables/:data_table_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string | The ID of the data table you plan to update. You can use the List data tables endpoint to retrieve data table IDs. |
# Payload
| Name | Type | Description |
|---|---|---|
| name | string required | The name of the data table to create. |
| folder_id | string optional | Provide the ID of the folder where you plan to create the data table. |
| schema | array required | Supply an array of nested elements to define your table structure. You must supply the column name, data type, and whether the column is required. |
| schema[type] | boolean, date, date_time, integer, number, string, file, relation required | The data type of the column you plan to create. |
| schema[name] | string required | The name of the column you plan to create. |
| schema[optional] | integer, boolean required | Indicates if the column is required or optional. Must be either true, false, 1, or 0. |
| schema[field_id] | Must match regular expression: /\h{8}-\h{4}-\h{4}-\h{4}-\h{12}/optional | Unique Universal Identifier (UUID) of the column. Must follow this format: f47ac10b-58cc-4372-a567-0e02b2c3d479. |
| schema[hint] | string optional | Provide a hint to help your end users populate entries in a data column. The hint displays as a tooltip when you hover over the column in the user interface. |
| schema[default_value] | variable optional | The default value of the column. Must match the data type of the column specified in the request. |
| schema[metadata] | hash optional | Data table metadata. |
| schema[relation] | hash optional | Indicates that this table links to another data table. |
| schema[relation][table_id] | string optional | The ID of the data table linked to this table. |
| schema[relation][field_id] | string required | The column ID of a linked data table. |
| schema[multivalue] | boolean optional | Indicates whether the column accepts multi-value input. |
# Sample request
curl -X POST 'https://www.workato.com/api/data_tables' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
-d '{
"name": "Expense reports updated",
"folder_id": 75509,
"schema": [
{
"type": "string",
"name": "Expense type",
"optional": false,
"multivalue": true
},
{
"type": "date",
"name": "Date",
"optional": true
},
{
"type": "boolean",
"name": "Status",
"optional": true
},
{
"type": "date_time",
"name": "Check-in",
"optional": true
},
{
"type": "file",
"name": "Reciept",
"optional": true
},
{
"type": "integer",
"name": "Length of stay in days",
"optional": true
},
{
"type": "number",
"name": "Cost",
"optional": true
},
{
"type": "relation",
"name": "Budget",
"optional": true,
"relation": {
"table_id": "2507a39a-6847-4857-88ed-c3b9c8302e02",
"field_id": "900454f4-5b3d-4670-bc3c-d640915156f2"
}
}
]
}
# Response
{
"data": {
"id": "52d97443-1dbd-4ae0-9cd9-99ac2d020977",
"name": "Expense reports updated",
"schema": [
{
"type": "string",
"name": "Expense type",
"optional": false,
"field_id": "318b18ca-bb5f-426c-adb1-74eb2fc06641",
"default_value": [],
"metadata": {},
"multivalue": true
},
{
"type": "date",
"name": "Date",
"optional": true,
"field_id": "97a960ee-022b-4a69-bcdb-74bb4c3d524d",
"metadata": {},
"multivalue": false
},
{
"type": "boolean",
"name": "Status",
"optional": true,
"field_id": "66b7f251-b874-4d87-a974-c18260a6a8fb",
"metadata": {},
"multivalue": false
},
{
"type": "date_time",
"name": "Check-in",
"optional": true,
"field_id": "6c119dad-3d08-427d-bac2-27536aedebad",
"metadata": {},
"multivalue": false
},
{
"type": "file",
"name": "Reciept",
"optional": true,
"field_id": "a6e5360f-5b5e-4261-9967-4160bd80e1a0",
"metadata": {},
"multivalue": false
},
{
"type": "integer",
"name": "Length of stay in days",
"optional": true,
"field_id": "bea282f0-fc78-4847-b7c8-a93587835faa",
"metadata": {},
"multivalue": false
},
{
"type": "number",
"name": "Cost",
"optional": true,
"field_id": "7d438888-5e04-4b70-b7b1-e54cdc42e877",
"metadata": {},
"multivalue": false
},
{
"type": "relation",
"name": "Budget",
"optional": true,
"field_id": "ebe23be4-d388-42fd-922b-0fb4e57abc08",
"metadata": {},
"relation": {
"table_id": "2507a39a-6847-4857-88ed-c3b9c8302e02",
"field_id": "900454f4-5b3d-4670-bc3c-d640915156f2"
},
"multivalue": false
}
],
"folder_id": 75509,
"created_at": "2025-05-21T14:56:49.173-07:00",
"updated_at": "2025-05-21T15:36:23.701-07:00"
}
}
# Delete data table
Deletes a data table you specify.
DELETE /api/data_tables/:data_table_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | integer required | Data table ID. |
# Sample request
curl -X DELETE 'https://www.workato.com/api/data_tables/e9498300-1ea3-4bf0-bdea-ffe58c101bcf'
-H 'Authorization: Bearer <api_token>'
# Response
{
"data": {
"status": "success"
}
}
# Truncate data table
Truncates a data table you specify. Truncating a data table deletes all data from a data table, but doesn't effect the table structure.
POST /api/data_tables/:data_table_id/truncate
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | integer required | Data table ID. |
# Sample request
curl -X POST 'https://www.workato.com/api/data_tables/58408ccc-e209-491b-9873-4549b5fa48df/truncate'
-H 'Authorization: Bearer <api_token>'
# Response
{
"data": {
"status": "success"
}
}
# Record manipulation APIs
You can use the following endpoints to create, delete, and update data table records. Refer to the OpenAPI Specification (opens new window) for additional information.
Each data center (DC) has a dedicated base URL. Use the base URL that matches your workspace region:
| Data center | Base URL |
|---|---|
| US | https://data-tables.workato.com |
| EU | https://data-tables.eu.workato.com |
| JP | https://data-tables.jp.workato.com |
| SG | https://data-tables.sg.workato.com |
| AU | https://data-tables.au.workato.com |
| IL | https://data-tables.il.workato.com |
| Trial | https://data-tables.trial.workato.com |
Workato returns a 403 Forbidden error if you call an endpoint that doesn't match your workspace data center.
# Quick reference
| Type | Resource | Description |
|---|---|---|
| POST | /api/v1/tables/:data_table_id/query | Queries records using filters you specify. |
| POST | /api/v1/tables/:data_table_id/records | Creates a new record. |
| PUT | /api/v1/tables/:data_table_id/records/:record_id | Updates an existing record. |
| DELETE | /api/v1/tables/:data_table_id/records/:record_id | Deletes a record you specify. |
| POST | /api/v1/tables/:data_table_id/fields/:field_id/file | Generates a link to upload a file. |
| GET | /api/v1/tables/:data_table_id/records/:record_id/fields/:field_id/file | Generates a link to download a file. |
# Query records (v1)
Queries records in a data table based on filters you specify.
POST /api/v1/tables/:data_table_id/query
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string | The ID of the data table you plan to update. You can use the List data tables endpoint to retrieve data table IDs. |
# Payload
| Name | Type | Description |
|---|---|---|
| select | array optional | Provide the list of columns to be retrieved from the data table. |
| where | hash optional | Set of conditions to filter the records with. Refer to the where clause section for more information. |
| order | string or hash optional | The column to order the results with. Provide either a string, or a hash for more advanced ordering configuration. Detailed breakdown of the hash structure can be found below. |
| timezone_offset_secs | integer optional | The time zone offset for query. Required if the query includes comparison of a date-time field to a date value. |
| limit | integer optional | Limits the number of records to return per page. The maximum is 200. |
| continuation_token | string optional | Provide the next page token from previous page's request to fetch the next set of results of the same query. |
NOTE
The following meta-fields can be used in order parameters with the fields you created: $record_id, $created_at, and $updated_at.
# where field structure
A basic where clause uses the following format:
{ <field>: { <operator>: <value> } }
You can set the <value> to a primitive value or an object.
The following table lists available operator values:
| Operator | Description | Example |
|---|---|---|
$eq | Equal | { "name": { "$eq": "Josh" } } |
$ne | Not equal | { "status": { "$ne": "inactive" } } |
$gte | Greater than or equal to | { "score": { "$gte": 75 } } |
$gt | Greater than | { "score": { "$gt": 90 } } |
$lte | Less than or equal to | { "amount": { "$lte": 13 } } |
$lt | Less than | { "amount": { "$lt": 10 } } |
$in | In (returns records where value matches any of the items in the <value>) | { "name": { "$in": ["Josh", "Bob", "Alice"] } } |
$starts_with | Starts with | { "email": { "$starts_with": "admin@" } } |
# Compound conditions
You can combine multiple conditions with $and compound operator using the format { "$and": [ <condition1>, <condition2>, ... ] }. For example:
{
"$and": [
{
"name": "Josh"
},
{
"id": {
"$lte": 13
}
}
]
}
Alternatively, you can use the equivalent short-hand notation for the $and operator. For example:
{
"name": "Josh",
"id": { "$lte": 13 }
}
# order field hash structure
You must use the following structure when you provide a hash for the order field:
{
"by": <field>,
"order": "asc" | "desc",
"case_sensitive": true | false
}
# Sample request
curl -X POST 'https://data-tables.workato.com/api/v1/tables/58408ccc-e209-491b-9873-4549b5fa48df/query' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
-d '{
"select": ["Name","Address"],
"where":
{
"Age": { "$gt": 30 },
"Country": "USA",
},
"order": "$created_at",
"limit": 10,
"timezone_offset_secs": 0
}'
# Response
{
"schema": [
[ // Metafields
{ "name": "$record_id" },
{ "name": "$created_at" },
{ "name": "$updated_at" }
],
[ // Fields
{ "name": "Name", "id": "2507a39a-6847-4857-88ed-c3b9c8302e02" },
{ "name": "Address", "id": "4705a22b-9139-6482-332a-ca2dd2d03sd3" },
...
]
],
"data": [
[ // Record 1
[ // Metafields
"e9498300-1ea3-4bf0-bdea-ffe58c101bcf",
"2025-08-19T17:53:48.073+00:00",
"2025-08-19T17:53:48.073+00:00"
],
[ // Fields
"Ann-Marie Tan",
"5 Pennsylvania Ave. S320123"
]
],
[ // Record 2
[ // Metafields
"900454f4-5b3d-4670-bc3c-d640915156f2",
"2025-08-19T17:53:48.073+00:00",
"2025-08-19T17:53:48.073+00:00"
],
[ // Fields
"John Paul Lim",
"8 Somapah Road S210492"
]
],
...
],
"count": 2,
"limit": 10
}
# Create record (v1)
Creates a record in a specified data table.
POST /api/v1/tables/:data_table_id/records
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string | The ID of the data table where you plan to create the record. You can use the List data tables endpoint to retrieve data table IDs. |
# Payload
The structure of the request payload is a key-value pair of each field. You can specify fields by their UUIDs (dollar-escaped) or names. Fields not listed in the schema are replaced with default values. Extra fields that aren't included in the schema are ignored.
# Sample request
curl -X POST 'https://data-tables.workato.com/api/v1/tables/58408ccc-e209-491b-9873-4549b5fa48df/records' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
-d '{
"document":
{
"name": "Josh",
"multivalue": [1,2,3],
"$28c00d59-7dbe-4134-85be-937513500500": 13,
"date": "2022-02-01",
"relation":
{
"record_id": "7a13304c-14cf-4e98-be31-331ccdb2b253"
},
"file":
{
"filename": "birth_certificate.txt",
"upload_id": "2b90f1d2-53d5-45f5-9366-d37ce4976717"
}
}
}'
# Response
{
"data": {
"record_id": "ab0189ca-fadf-4382-a48b-e157d966078f",
"created_at": "2025-07-10T15:55:02.661+00:00",
"updated_at": "2025-07-10T15:55:02.661+00:00",
"document": [
{
"field_id": "42d62e3b-895d-43db-b8f7-cbb62dac71dd",
"field_name": "name",
"value": "Josh"
},
{
"field_id": "2dca773b-eb67-4201-924d-4ccb9d577e99",
"field_name": "multivalue",
"value": [1,2,3]
},
{
"field_id": "28c00d59-7dbe-4134-85be-937513500500",
"field_name": "age",
"value": 13
},
{
"field_id": "0489bb65-7072-404f-9bba-e3e94a2a527b",
"field_name": "date",
"value": "2022-02-01"
},
{
"field_id": "d6f103d9-575f-41b9-9ef0-b70e8fe38cc8",
"field_name": "relation",
"value": {
"record_id": "7a13304c-14cf-4e98-be31-331ccdb2b253",
"value": "Parent"
},
},
{
"field_id": "f71f1f67-0de5-422c-be73-b27b12f442c4",
"field_name": "file",
"value": {
"file": {"filename": "birth_certificate.txt"}
},
}
]
}
}
# Update record (v1)
Updates a record in a specified data table.
PUT /api/v1/tables/:data_table_id/records/:record_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string | The ID of the data table where the record resides. You can use the List data tables endpoint to retrieve data table IDs. |
| record_id | string | The ID of the record to be updated. |
# Payload
The structure of the request payload is a key-value pair of each field. You can specify fields by their UUIDs (dollar-escaped) or names. Fields not listed in the schema aren't updated. Extra fields that aren't included in the schema are ignored.
# Sample request
curl -X PUT 'https://data-tables.workato.com/api/v1/tables/58408ccc-e209-491b-9873-4549b5fa48df/records/ab0189ca-fadf-4382-a48b-e157d966078f' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json' \
-d '{
"document":
{
"name": "Josh",
"multivalue": [1,2,3],
"$28c00d59-7dbe-4134-85be-937513500500": 13,
"date": "2022-02-01",
"relation":
{
"record_id": "7a13304c-14cf-4e98-be31-331ccdb2b253"
},
"file":
{
"filename": "birth_certificate.txt",
"upload_id": "2b90f1d2-53d5-45f5-9366-d37ce4976717"
}
}
}'
# Response
{
"data": {
"record_id": "ab0189ca-fadf-4382-a48b-e157d966078f",
"created_at": "2025-07-10T15:55:02.661+00:00",
"updated_at": "2025-07-10T15:55:02.661+00:00",
"document": [
{
"field_id": "42d62e3b-895d-43db-b8f7-cbb62dac71dd",
"field_name": "name",
"value": "Josh"
},
{
"field_id": "2dca773b-eb67-4201-924d-4ccb9d577e99",
"field_name": "multivalue",
"value": [1,2,3]
},
{
"field_id": "28c00d59-7dbe-4134-85be-937513500500",
"field_name": "age",
"value": 13
},
{
"field_id": "0489bb65-7072-404f-9bba-e3e94a2a527b",
"field_name": "date",
"value": "2022-02-01"
},
{
"field_id": "d6f103d9-575f-41b9-9ef0-b70e8fe38cc8",
"field_name": "relation",
"value": {
"record_id": "7a13304c-14cf-4e98-be31-331ccdb2b253",
"value": "Parent"
},
},
{
"field_id": "f71f1f67-0de5-422c-be73-b27b12f442c4",
"field_name": "file",
"value": {
"file": {"filename": "birth_certificate.txt"}
},
}
]
}
}
# Delete record (v1)
Deletes a record in a specified data table.
DELETE /api/v1/tables/:data_table_id/records/:record_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string | The ID of the data table where the record resides. You can use the List data tables endpoint to retrieve data table IDs. |
| record_id | string | The ID of the record to be updated. |
# Sample request
curl -X DELETE 'https://data-tables.workato.com/api/v1/tables/58408ccc-e209-491b-9873-4549b5fa48df/records/ab0189ca-fadf-4382-a48b-e157d966078f'
-H 'Authorization: Bearer <api_token>'
# Response
Workato returns status code 200 without a response payload if the deletion is successful.
# Generate link to upload file (v1)
Generates a link to upload a file for file-type columns. Use the resulting upload_id when you create or update a record.
POST /api/v1/tables/:data_table_id/fields/:field_id/file
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string | The ID of the data table where the record resides. You can use the List data tables endpoint to retrieve data table IDs. |
| field_id | string | The ID of the file column for the file to be uploaded. |
# Sample request
curl -X POST 'https://data-tables.workato.com/api/v1/tables/58408ccc-e209-491b-9873-4549b5fa48df/fields/f71f1f67-0de5-422c-be73-b27b12f442c4/file' \
-H 'Authorization: Bearer <api_token>' \
-H 'Content-Type: application/json'
# Response
{
"data" : {
"upload_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"url": "https://file-storage.workato.com/sharing/files?sign=eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJXb3JrYXRvRmlsZXMiLCJhdWQiOiJ3b3JrYXRvX2ZpbGVzIiwiZXhwIjoxNzUzOTUzNTUzLCJuYmYiOjE3NTM5NTI2NTMsInN1YiI6IjY5MjY1OCIsImp0aSI6IjBmMzY4N2EyLTUzNGUtNGIxMC1iODQzLTk4NmU1MWI2YTI1MCIsIm9iaiI6eyJtZXRob2QiOiJHRVQiLCJyZXNvdXJjZSI6ImY0YWE3OWU0MjlhZjNjNGRhNTcwMGU0NTYxMTY3MzM2ZjMzOTJmNzNkZDQ0ZjhjMGExMTk4MDI5MmViNzE2NjMiLCJjb25zdHJhaW50cyI6eyJmaWxlX21heF9ieXRlcyI6bnVsbCwiZmlsZV9wYXRoIjoiL1Rlc3RpbmcvMi1zdGVwLWxvZ2luLWVucm9sbG1lbnQyMDI1LTA2LTI3VDAyMzE0Ni5odG1sIiwiZmlsZV90dGwiOm51bGwsIm5hbWVzcGFjZSI6ImFkYXB0ZXIiLCJzaGFyaW5nX2FwaV9raW5kIjoicHVibGljIiwidXNlcl9pZCI6NjkyNjU4fX19.0p-NuNaQxCs_VaTaWsQGg5aS3BwCGSrHSQOVh5xb-jXQAaHAv_RSnUs6ymV9IHMVZM2P1ikodSDGtyn7pqZItw"
}
}
# Download file from the record (v1)
Generates a link to download the file in the file-type column of a record.
GET /api/v1/tables/:data_table_id/records/:record_id/fields/:field_id/file
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string | The ID of the data table where the record resides. You can use the List data tables endpoint to retrieve data table IDs. |
| record_id | string | The ID of the record linked to the file. |
| field_id | string | The ID of the file column of the file to be downloaded. |
# Sample request
curl -X GET 'https://data-tables.workato.com/api/v1/tables/58408ccc-e209-491b-9873-4549b5fa48df/fields/f71f1f67-0de5-422c-be73-b27b12f442c4/file'
-H 'Authorization: Bearer <api_token>'
# Response
Workato returns a 303 status code with the download URL inside the LOCATION header if the request is successful.
Last updated: 2/25/2026, 5:35:53 PM