# Data tables
Refer to the following sections to programmatically manage data tables and their records using APIs:
FEATURE AVAILABILITY
The Data Table APIs are currently accessible only to workspaces participating in Workato's Data Tables beta program. For more information, contact your customer success representative.
# Rate limits
Data table resources have the following rate limit:
| Type | Resource | Limit |
|---|---|---|
| All | All Data tables endpoints | 60 requests per minute |
# Table management APIs
Use the endpoints below to manage and structure data tables in customer workspaces.
Base URL: https://www.workato.com
# Quick reference
| Type | Resource | Description |
|---|---|---|
| GET | /api/v2/managed_users/:managed_user_id/data_tables | List all data tables. |
| GET | /api/v2/managed_users/:managed_user_id/data_tables /:data_table_id | Get data table by ID. |
| POST | /api/v2/managed_users/:managed_user_id/data_tables | Creates a data table. |
| PUT | /api/v2/managed_users/:managed_user_id/data_tables /:data_table_id | Updates a data table. |
| DELETE | /api/v2/managed_users/:managed_user_id/data_tables /:data_table_id | Deletes a data table. |
| POST | /api/v2/managed_users/:managed_user_id/data_tables /:data_table_id/truncate | Truncates a data table. |
# List data tables in a customer workspace
Returns a list of all data tables in a customer's workspace.
GET /api/v2/managed_users/:managed_user_id/data_tables
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
# Query 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/v2/managed_users/5759164/data_tables'
-H 'Authorization: Bearer <api_token>'
# Response
{
"data": [
{
"id": "cafd30b6-23e1-4a73-9fa6-68fc18356db4",
"name": "drtdr",
"schema": [],
"folder_id": 25178157,
"created_at": "2025-05-23T13:14:11.397-07:00",
"updated_at": "2025-05-23T13:14:11.397-07:00"
}
]
}
# Get data table by ID
Retrieves a data table in a customer workspace using the data table's ID.
GET /api/v2/managed_users/:managed_user_id/data_tables/:data_table_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string required | The ID of the data table you plan to retrieve. You can use the List data tables endpoint to retrieve data table IDs. |
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
# Sample request
curl -X GET 'https://www.workato.com/api/v2/managed_users/5759164/data_tables/cafd30b6-23e1-4a73-9fa6-68fc18356db4'
-H 'Authorization: Bearer <api_token>'
# Response
{
"data": {
"id": "cafd30b6-23e1-4a73-9fa6-68fc18356db4",
"name": "drtdr",
"schema": [],
"folder_id": 25178157,
"created_at": "2025-05-23T13:14:11.397-07:00",
"updated_at": "2025-05-23T13:14:11.397-07:00"
}
}
# Create data table
Creates a data table in a customer workspace.
POST /api/v2/managed_users/:managed_user_id/data_tables
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
# Payload
| Name | Type | Description |
|---|---|---|
| name | string required | The name of the data table to create. |
| folder_id | number 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/v2/managed_users/5759164/data_tables'
-H 'Authorization: Bearer <api_token>'
-H 'Content-Type: application/json' \
-d '{
"name": "Resume screening",
"folder_id": 25178157,
"schema": [
{
"type": "string",
"name": "Applicant name",
"optional": false,
"multivalue": true
},
{
"type": "date",
"name": "Application date",
"optional": true
},
{
"type": "boolean",
"name": "Review status",
"optional": true
},
{
"type": "date_time",
"name": "Interview time",
"optional": true
},
{
"type": "file",
"name": "Resume",
"optional": true
},
{
"type": "integer",
"name": "Years of experience",
"optional": true
},
{
"type": "number",
"name": "Salary expectation",
"optional": true
}
]
}'
# Response
{
"data": {
"id": "dcb981cf-3e5e-4b79-ab78-1fe0115bc5e8",
"name": "Resume screening",
"schema": [
{
"type": "string",
"name": "Applicant name",
"optional": false,
"field_id": "9b213e57-2ff9-4276-a65f-5afaa14789fd",
"default_value": [],
"metadata": {},
"multivalue": true
},
{
"type": "date",
"name": "Application date",
"optional": true,
"field_id": "3e1c6061-ff84-47e9-80ac-145aff0f6206",
"metadata": {},
"multivalue": false
},
{
"type": "boolean",
"name": "Review status",
"optional": true,
"field_id": "e3106d74-bd0b-47a6-a936-8b7a03fd9fee",
"metadata": {},
"multivalue": false
},
{
"type": "date_time",
"name": "Interview time",
"optional": true,
"field_id": "0adb665a-8579-4cc2-a46d-8f43be7fbdbb",
"metadata": {},
"multivalue": false
},
{
"type": "file",
"name": "Resume",
"optional": true,
"field_id": "e300122c-dbd8-45f3-91fd-1bb060c92b95",
"metadata": {},
"multivalue": false
},
{
"type": "integer",
"name": "Years of experience",
"optional": true,
"field_id": "4763bde7-c46b-48d7-bc5f-cbb0e3132646",
"metadata": {},
"multivalue": false
},
{
"type": "number",
"name": "Salary expectation",
"optional": true,
"field_id": "0778952c-ce6e-4f7b-9bd1-c265a9e98702",
"metadata": {},
"multivalue": false
}
],
"folder_id": 25178157,
"created_at": "2025-05-27T11:49:06.226-07:00",
"updated_at": "2025-05-27T11:49:06.226-07:00"
}
}
# Update data table
Updates a data table you specify.
PUT /api/v2/managed_users/:managed_user_id/data_tables/:data_table_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string required | The ID of the data table you plan to update. You can use the List data tables endpoint to retrieve data table IDs. |
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
# Payload
| Name | Type | Description |
|---|---|---|
| name | string required | The updated name of the data table. |
| folder_id | number optional | Provide the ID of the folder where you plan to move the data table. |
| schema | array optional | Supply an array of nested elements to modify 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 update. |
| schema[name] | string required | The name of the column you plan to update. |
| 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 PUT 'https://www.workato.com/api/v2/managed_users/5759164/data_tables/dcb981cf-3e5e-4b79-ab78-1fe0115bc5e8'
-H 'Authorization: Bearer <api_token>'
-H 'Content-Type: application/json' \
-d '{
"name": "Resume screening",
"folder_id": 25178157,
"schema": [
{
"type": "string",
"name": "Applicant name",
"optional": false,
"multivalue": true
},
{
"type": "date",
"name": "Potential start date",
"optional": true
},
{
"type": "boolean",
"name": "Remote worker",
"optional": true
},
{
"type": "date_time",
"name": "Interview time",
"optional": true
},
{
"type": "file",
"name": "Resume",
"optional": true
},
{
"type": "integer",
"name": "Miles from office",
"optional": true
},
{
"type": "number",
"name": "Interviews completed",
"optional": true
}
]
}'
# Response
{
"data": {
"id": "dcb981cf-3e5e-4b79-ab78-1fe0115bc5e8",
"name": "Resume screening",
"schema": [
{
"type": "string",
"name": "Applicant name",
"optional": false,
"field_id": "c0eee384-9967-47da-b8b3-b5faa4654df8",
"default_value": [],
"metadata": {},
"multivalue": true
},
{
"type": "date",
"name": "Potential start date",
"optional": true,
"field_id": "2c623992-ac87-4560-931e-0b3b58b3016f",
"metadata": {},
"multivalue": false
},
{
"type": "boolean",
"name": "Remote worker",
"optional": true,
"field_id": "ac4e7e53-a157-42b8-85f7-e4a2042b42c2",
"metadata": {},
"multivalue": false
},
{
"type": "date_time",
"name": "Interview time",
"optional": true,
"field_id": "749eaef4-a714-4c6a-b65e-641bf88dc11b",
"metadata": {},
"multivalue": false
},
{
"type": "file",
"name": "Resume",
"optional": true,
"field_id": "0e36fa59-1d80-475c-a83f-4f47562a641d",
"metadata": {},
"multivalue": false
},
{
"type": "integer",
"name": "Miles from office",
"optional": true,
"field_id": "e098f6ca-5165-4c54-9ff1-02d72fe91d13",
"metadata": {},
"multivalue": false
},
{
"type": "number",
"name": "Interviews completed",
"optional": true,
"field_id": "f9e5af87-57c9-4611-befb-4f43fface977",
"metadata": {},
"multivalue": false
}
],
"folder_id": 25178157,
"created_at": "2025-05-27T11:49:06.226-07:00",
"updated_at": "2025-05-27T11:49:06.226-07:00"
}
}
# Delete data table
Deletes a data table in a customer workspace.
DELETE /api/v2/managed_users/:managed_user_id/data_tables/:data_table_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string required | The ID of the data table you plan to delete. You can use the List data tables endpoint to retrieve data table IDs. |
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
# Sample request
curl -X DELETE 'https://www.workato.com/api/v2/managed_users/5759164/data_tables/cafd30b6-23e1-4a73-9fa6-68fc18356db4'
-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 affect the table structure.
POST /api/v2/managed_users/:managed_user_id/data_tables/:data_table_id/truncate
# URL parameters
| Name | Type | Description |
|---|---|---|
| data_table_id | string required | The ID of the data table you plan to truncate. You can use the List data tables endpoint to retrieve data table IDs. |
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
# Sample request
curl -X POST 'https://www.workato.com/api/v2/managed_users/5759164/data_tables/cafd30b6-23e1-4a73-9fa6-68fc18356db4/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 in customer workspaces. Refer to the OpenAPI Specification (opens new window) for additional information.
Base URL: https://data-tables.workato.com
# Quick reference
| Type | Resource | Description |
|---|---|---|
| POST | /api/v1/managed_users/:managed_user_id/tables /:data_table_id/query | Queries records using filters you specify. |
| POST | /api/v1/managed_users/:managed_user_id/tables /:data_table_id/records | Creates a new record. |
| PUT | /api/v1/managed_users/:managed_user_id/tables /:data_table_id/records/:record_id | Updates an existing record. |
| DELETE | /api/v1/managed_users/:managed_user_id/tables /:data_table_id/records/:record_id | Deletes a record you specify. |
| POST | /api/v1/managed_users/:managed_user_id/tables /:data_table_id/fields/:field_id/file | Generates a link to upload a file. |
| GET | /api/v1/managed_users/:managed_user_id/tables /:data_table_id/records/:record_id/fields/:field_id/file | Generates a link to download a file. |
# Query records
Queries records in a data table based on filters you specify.
POST /api/v1/managed_users/:managed_user_id/tables/:data_table_id/query
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
| data_table_id | string required | The ID of the data table you plan to query. 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/managed_users/5759164/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
Creates a record in a specified data table.
POST /api/v1/managed_users/:managed_user_id/tables/:data_table_id/records
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
| data_table_id | string required | 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/managed_users/5759164/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
Updates a record in a specified data table.
PUT /api/v1/managed_users/:managed_user_id/tables/:data_table_id/records/:record_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
| data_table_id | string required | 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 required | 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/managed_users/5759164/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
Deletes a record in a specified data table.
DELETE /api/v1/managed_users/:managed_user_id/tables/:data_table_id/records/:record_id
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
| data_table_id | string required | 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 required | The ID of the record to be deleted. |
# Sample request
curl -X DELETE 'https://data-tables.workato.com/api/v1/managed_users/5759164/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
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/managed_users/:managed_user_id/tables/:data_table_id/fields/:field_id/file
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
| data_table_id | string required | 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 required | The ID of the file column for the file to be uploaded. |
# Sample request
curl -X POST 'https://data-tables.workato.com/api/v1/managed_users/5759164/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
Generates a link to download the file in the file-type column of a record.
GET /api/v1/managed_users/:managed_user_id/tables/:data_table_id/records/:record_id/fields/:field_id/file
# URL parameters
| Name | Type | Description |
|---|---|---|
| managed_user_id | string required | Embedded customer Account ID or External ID. External IDs must have the prefix 'E' and be URL-encoded. For example, 'EA2300'. |
| data_table_id | string required | 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 required | The ID of the record linked to the file. |
| field_id | string required | The ID of the file column of the file to be downloaded. |
# Sample request
curl -X GET 'https://data-tables.workato.com/api/v1/managed_users/5759164/tables/58408ccc-e209-491b-9873-4549b5fa48df/records/ab0189ca-fadf-4382-a48b-e157d966078f/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: 11/10/2025, 5:06:34 PM