Downloads a specific table from an extraction as a CSV file. This endpoint returns the raw CSV data.
Usage Notes
The extraction must be in completed status to download table data
This endpoint returns raw CSV data, not a JSON response
The CSV is formatted with a header row containing column names from the template
Use the filter parameter to download only specific subsets of data
Use column_validations to download only rows with validation issues in specific columns
Large tables are downloaded in full with a limit of 500,000 rows
If you need paginated access to large tables, use the Get Extraction Table Rows endpoint instead
Request
The ID of the extraction.
The key of the table to download.
Filter rows to include in the CSV. Supports comma-separated values for multiple filters.
all - Include all rows (default)
valid - Rows that pass all validations
invalid - Rows that fail at least one validation
error - Rows with error-severity validations
warn - Rows with warning-severity validations
info - Rows with info-severity validations
Filter to only include rows that have validations in specific columns. Provide column keys as
comma-separated values (e.g., column_validations=unit_price,quantity).
cURL
cURL with Filter
Node.js
Python
curl -X GET https://api.tableflow.com/v2/extractions/uT2bJNWN75YPU95r/tables/line_items/download \
-H "Authorization: Bearer YOUR_API_KEY" \
--output line_items.csv
Response
The response is the raw CSV data with a Content-Type header of text/csv. The Content-Disposition header will include a filename based on the table key.
For example, if the table key is “line_items”, the response headers might look like:
Content-Type: text/csv
Content-Disposition: attachment; filename="line_items.csv"
The CSV file will include:
A header row with column names
Data rows containing the table values
All columns defined in the template
Only the rows that match the filter criteria (if a filter is applied)
Here’s an example of how the CSV content might look:
Description,Quantity,Unit Price,Amount
Widget A,5,10.00,50.00
Widget B,3,15.00,45.00
Widget C,2,25.00,50.00
Widget D,1,100.00,100.00
Widget E,10,5.00,50.00
Error Responses
Error message describing what went wrong.
400 Bad Request
400 Bad Request
{
"error" : "Cannot download extraction while in status processing"
}