---
title: "POST /projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/insertAll"
method: POST
path: "/projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/insertAll"
tags: ["tabledata"]
---

# POST /projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/insertAll

`POST /projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/insertAll`

## Request

- Base URL: `https://bigquery.googleapis.com/bigquery/v2`
- URL: `https://bigquery.googleapis.com/bigquery/v2/projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/insertAll`
- Auth: one of:
  - OAuth 2 and OAuth 2
    - Implicit: `https://accounts.google.com/o/oauth2/auth`
    - Scopes: `https://www.googleapis.com/auth/bigquery`
    - Authorization code: `https://accounts.google.com/o/oauth2/auth`
    - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/bigquery`
  - OAuth 2 and OAuth 2
    - Implicit: `https://accounts.google.com/o/oauth2/auth`
    - Scopes: `https://www.googleapis.com/auth/bigquery.insertdata`
    - Authorization code: `https://accounts.google.com/o/oauth2/auth`
    - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/bigquery.insertdata`
  - OAuth 2 and OAuth 2
    - Implicit: `https://accounts.google.com/o/oauth2/auth`
    - Scopes: `https://www.googleapis.com/auth/cloud-platform`
    - Authorization code: `https://accounts.google.com/o/oauth2/auth`
    - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/cloud-platform`

Streams data into BigQuery one record at a time without needing to run a load job. # IAM Permissions Requires the following IAM permission(s) to use this method: - `bigquery.tables.updateData` on the table. - `bigquery.tables.get` on the table. - `bigquery.datasets.get` on the dataset.

## Path parameters

- `projectsId` string, required
- `datasetsId` string, required
- `tablesId` string, required

## Request body

- TableDataInsertAllRequest: Request for sending a single streaming insert.
  - `ignoreUnknownValues` boolean: 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.
  - `kind` string: 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.
  - `rows` object[]
    - `insertId` string: 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.
    - `json` JsonObject: Represents a single JSON object.
  - `skipInvalidRows` boolean: 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.
  - `templateSuffix` string: 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. See https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables for considerations when working with templates tables.
  - `traceId` string: 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 `200`

Successful response

- TableDataInsertAllResponse: Describes the format of a streaming insert response.
  - `insertErrors` object[]: Describes specific errors encountered while processing the request.
    - `errors` ErrorProto[]: Error information for the row indicated by the index property.
      - `debugInfo` string: Debugging information. This property is internal to Google and should not be used.
      - `location` string: Specifies where the error occurred, if present.
      - `message` string: A human-readable description of the error.
      - `reason` string: A short error code that summarizes the error.
    - `index` integer: The index of the row that error applies to.
  - `kind` string: Returns "bigquery#tableDataInsertAllResponse".

## Changes

- **2026-11-05** `33188b5cf151`: 4 info
  - the security scope `https://www.googleapis.com/auth/bigquery` was added to the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/bigquery` was added to the endpoint's security scheme `Oauth2c`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2c`
- **2026-10-29** `1c22958240fa`: 4 info
  - the security scope `https://www.googleapis.com/auth/bigquery` was added to the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/bigquery` was added to the endpoint's security scheme `Oauth2c`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/cloud-platform` was removed from the endpoint's security scheme `Oauth2c`

[Operation history](https://skmtc.dev/google/apis/bigquery/changes/projects/:projectsId/datasets/:datasetsId/tables/:tablesId/insertAll/post.md)

---

[API](https://skmtc.dev/google/apis/bigquery.md) - [All operations](https://skmtc.dev/google/apis/bigquery/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/bigquery/revisions/33188b5cf151?raw)
