Skip to main content
GET
/
v2
/
extractions
/
{id}
/
tables
/
{tableKey}
/
download
curl -X GET https://api.tableflow.com/v2/extractions/uT2bJNWN75YPU95r/tables/line_items/download \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --output line_items.csv
{
  "error": "Cannot download extraction while in status processing"
}
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

id
string
required
The ID of the extraction.
tableKey
string
required
The key of the table to download.
filter
string
default:"all"
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
column_validations
string
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 -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:
  1. A header row with column names
  2. Data rows containing the table values
  3. All columns defined in the template
  4. 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
string
Error message describing what went wrong.
{
  "error": "Cannot download extraction while in status processing"
}