For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Add one or more rows to an existing Big Table.
Row IDs for the added rows are returned in the response in the same order as the input row data is passed in the request. Row data may be passed in JSON, CSV, or TSV format.
If a column is not included in the passed row data, it will be empty in the added row. If a column is passed that does not exist in the table schema, or with a value that does not match the column's type, the default behavior is for no rows to be added and the API call to [return an error](/docs/classic-api/general/errors#invalid-row-data). However, you can control this behavior with the `onSchemaError` query parameter.
## Examples
<AccordionGroup>
<Accordion title="Add Rows Inline">
If you want to add a small number of rows to a table, you can do so by providing the data inline (being sure that row object structure matches the table schema):
```json
[
{
"fullName": "Alex Bard",
"ageInYears": 30,
"hiredOn": "2021-07-03"
}, {
"fullName": "Alicia Hines",
"ageInYears": 34,
"hiredOn": "2023-01-015"
}
]
```
However, this is only appropriate for relatively small dataset (a few hundred rows or less, depending on schema complexity). If you need to work with a larger dataset you should utilize stashing.
</Accordion>
<Accordion title="Add Rows from Stash">
[Stashing](/docs/classic-api/stashing/introduction) is our process for handling the upload of large datasets. Break down your dataset into smaller, more manageable, pieces and [upload them to a single stash ID](/docs/classic-api/stashing/stash-data).
Then, to add all the row data in a stash to the table in a single atomic operation, use the `$stashID` reference in the `rows` field instead of providing the data inline:
```json
{
"$stashID": "20240215-job32"
}
```
</Accordion>
</AccordionGroup>
Authentication
AuthorizationBearer
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path parameters
tableIDstringRequired
Query parameters
onSchemaErrorenumOptional
The action to take when the passed data does not match the table schema:
- `abort`: Abort the entire operation and return an error.
- `dropColumns`: Ignore the data that caused the error, and do not import those columns in the affected rows.
- `updateSchema`: Update the schema as needed to add any missing columns or widen the data types of existing columns, and then import the data from them.
Allowed values:
Request
This endpoint expects a list of maps from strings to any or an object.
list of maps from strings to anyRequired
A collection of row objects conforming to the schema of the table where keys are the column IDs and values are the column values:
[
{
"fullName": "Alex Bard",
"invoiceDate": "2024-07-29T14:04:15.561Z",
"totalAmount": 34.50,
"amountPaid": 0
},
{
"fullName": "Alicia Hines",
"invoiceDate": "2023-06-15T10:30:00.000Z",
"totalAmount": 50.75,
"amountPaid": 20
}
]
OR
objectRequired
A single reference to a stash whose data should be used.
Response
dataobject
Errors
400
Bad Request Error
402
Payment Required Error
404
Not Found Error
422
Unprocessable Entity Error
Add one or more rows to an existing Big Table.
Row IDs for the added rows are returned in the response in the same order as the input row data is passed in the request. Row data may be passed in JSON, CSV, or TSV format.
If a column is not included in the passed row data, it will be empty in the added row. If a column is passed that does not exist in the table schema, or with a value that does not match the column’s type, the default behavior is for no rows to be added and the API call to return an error. However, you can control this behavior with the onSchemaError query parameter.
Examples
Add Rows Inline
If you want to add a small number of rows to a table, you can do so by providing the data inline (being sure that row object structure matches the table schema):
[
{
"fullName": "Alex Bard",
"ageInYears": 30,
"hiredOn": "2021-07-03"
}, {
"fullName": "Alicia Hines",
"ageInYears": 34,
"hiredOn": "2023-01-015"
}
]
However, this is only appropriate for relatively small dataset (a few hundred rows or less, depending on schema complexity). If you need to work with a larger dataset you should utilize stashing.
Add Rows from Stash
Stashing is our process for handling the upload of large datasets. Break down your dataset into smaller, more manageable, pieces and upload them to a single stash ID.
Then, to add all the row data in a stash to the table in a single atomic operation, use the $stashID reference in the rows field instead of providing the data inline:
{
"$stashID": "20240215-job32"
}
The action to take when the passed data does not match the table schema:
abort: Abort the entire operation and return an error.
dropColumns: Ignore the data that caused the error, and do not import those columns in the affected rows.
updateSchema: Update the schema as needed to add any missing columns or widen the data types of existing columns, and then import the data from them.