---
title: "POST /projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/insertAll"
method: POST
path: "/projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/insertAll"
tags: ["tabledata"]
---

# POST /projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/insertAll

`POST /projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/insertAll`

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

- `projectId` string, required
- `datasetId` string, required
- `tableId` 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.
  - `rows` object[]
    - `json` JsonObject — Represents a single JSON 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.
  - `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.
  - `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.
  - `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.
  - `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.

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/bigquery.md) · [All operations](https://skmtc.dev/google/apis/bigquery/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/bigquery/revisions/98f33ea9c8c9/schema)
