Method: tabledata.insertAll Stay organized with collections Save and categorize content based on your preferences.
Streams data into BigQuery one record at a time without needing to run a load job.
HTTP request
POST https://bigquery.googleapis.com/bigquery/v2/projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll
The URL usesgRPC Transcoding syntax.
Path parameters
| Parameters | |
|---|---|
projectId |
Required. Project ID of the destination. |
datasetId |
Required. Dataset ID of the destination. |
tableId |
Required. Table ID of the destination. |
Request body
The request body contains data with the following structure:
| JSON representation |
|---|
{"kind":string,"skipInvalidRows":boolean,"ignoreUnknownValues":boolean,"templateSuffix":string,"rows":[{"insertId":string,"json":{object}}],"traceId":string} |
| Fields | |
|---|---|
kind |
Optional. The resource type of the response. The value is not checked at the backend. Historically, it has been set to "bigquery#tableDataInsertAllRequest" but you are not required to set it. |
skipInvalidRows |
Optional. Insert all valid rows of a request, even if invalid rows exist. The default value is false, which causes the entire request to fail if any invalid rows exist. |
ignoreUnknownValues |
Optional. Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false, which treats unknown values as errors. |
templateSuffix |
Optional. If specified, treats the destination table as a base template, and inserts the rows into an instance table named "{destination}{templateSuffix}". BigQuery will manage creation of the instance table, using the schema of the base template table. Seehttps://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables for considerations when working with templates tables. |
rows[] |
|
rows[].insertId |
Insertion ID for best-effort deduplication. This feature is not recommended, and users seeking stronger insertion semantics are encouraged to use other mechanisms such as the BigQuery Write API. |
rows[].json |
Data for a single row. |
traceId |
Optional. Unique request trace id. Used for debugging purposes only. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is recommended. |
Response body
Describes the format of a streaming insert response.
If successful, the response body contains data with the following structure:
| JSON representation |
|---|
{"kind":string,"insertErrors":[{"index":integer,"errors":[{object ( |
| Fields | |
|---|---|
kind |
Returns "bigquery#tableDataInsertAllResponse". |
insertErrors[] |
Describes specific errors encountered while processing the request. |
insertErrors[].index |
The index of the row that error applies to. |
insertErrors[].errors[] |
Error information for the row indicated by the index property. |
Authorization scopes
Requires one of the following OAuth scopes:
https://www.googleapis.com/auth/bigqueryhttps://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/bigquery.insertdata
For more information, see theAuthentication Overview.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-07-02 UTC.