APIHub
Back to Explore

BigQuery API

A RESTful API for managing Google BigQuery resources, allowing you to list, create, retrieve, update, and delete projects, datasets, tables, models, routines, and jobs, as well as to insert table data, manage row‑access policies, and test IAM permissions.

Analytics
OAuth
HTTPS
CORS: Unknown
Description enriched
Visit official documentation

Latency

6433ms p95

Uptime

100.0% 30d

Playground

Verified

live

Endpoints

REST · JSON
GET

/projects

Lists all projects to which you have been granted any project role.

  • maxResults (query, limit) — Maximum number of results to return
  • pageToken (query) — Page token, returned by a previous call, to request the next page of results
GET

/projects/{projectId}/datasets

Lists all datasets in the specified project to which you have been granted the READER dataset role.

  • projectId (path, required) — Project ID of the datasets to be listed
  • all (query) — Whether to list all datasets, including hidden ones
  • filter (query) — An expression for filtering the results of the request by label. The syntax is "labels. [: ]". Multiple filters can be ANDed together by connecting with a space. Example: "labels.department:receiving labels.active". See Filtering datasets using labels for details.
  • maxResults (query, limit) — The maximum number of results to return
  • pageToken (query) — Page token, returned by a previous call, to request the next page of results
POST

/projects/{projectId}/datasets

Creates a new empty dataset.

  • projectId (path, required) — Project ID of the new dataset
DELETE

/projects/{projectId}/datasets/{datasetId}

Deletes the dataset specified by the datasetId value. Before you can delete a dataset, you must delete all its tables, either manually or by specifying deleteContents. Immediately after deletion, you can create another dataset with the same name.

  • projectId (path, required) — Project ID of the dataset being deleted
  • datasetId (path, required) — Dataset ID of dataset being deleted
  • deleteContents (query) — If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False
GET

/projects/{projectId}/datasets/{datasetId}

Returns the dataset specified by datasetID.

  • projectId (path, required) — Project ID of the requested dataset
  • datasetId (path, required) — Dataset ID of the requested dataset
PATCH

/projects/{projectId}/datasets/{datasetId}

Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports patch semantics.

  • projectId (path, required) — Project ID of the dataset being updated
  • datasetId (path, required) — Dataset ID of the dataset being updated
PUT

/projects/{projectId}/datasets/{datasetId}

Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource.

  • projectId (path, required) — Project ID of the dataset being updated
  • datasetId (path, required) — Dataset ID of the dataset being updated
GET

/projects/{projectId}/datasets/{datasetId}/models

Lists all models in the specified dataset. Requires the READER dataset role. After retrieving the list of models, you can get information about a particular model by calling the models.get method.

  • projectId (path, required) — Required. Project ID of the models to list.
  • datasetId (path, required) — Required. Dataset ID of the models to list.
  • maxResults (query, limit) — The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.
  • pageToken (query) — Page token, returned by a previous call to request the next page of results
DELETE

/projects/{projectId}/datasets/{datasetId}/models/{modelId}

Deletes the model specified by modelId from the dataset.

  • projectId (path, required) — Required. Project ID of the model to delete.
  • datasetId (path, required) — Required. Dataset ID of the model to delete.
  • modelId (path, required) — Required. Model ID of the model to delete.
GET

/projects/{projectId}/datasets/{datasetId}/models/{modelId}

Gets the specified model resource by model ID.

  • projectId (path, required) — Required. Project ID of the requested model.
  • datasetId (path, required) — Required. Dataset ID of the requested model.
  • modelId (path, required) — Required. Model ID of the requested model.
PATCH

/projects/{projectId}/datasets/{datasetId}/models/{modelId}

Patch specific fields in the specified model.

  • projectId (path, required) — Required. Project ID of the model to patch.
  • datasetId (path, required) — Required. Dataset ID of the model to patch.
  • modelId (path, required) — Required. Model ID of the model to patch.
GET

/projects/{projectId}/datasets/{datasetId}/routines

Lists all routines in the specified dataset. Requires the READER dataset role.

  • projectId (path, required) — Required. Project ID of the routines to list
  • datasetId (path, required) — Required. Dataset ID of the routines to list
  • filter (query) — If set, then only the Routines matching this filter are returned. The current supported form is either "routine_type:" or "routineType:", where is a RoutineType enum. Example: "routineType:SCALAR_FUNCTION".
  • maxResults (query, limit) — The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.
  • pageToken (query) — Page token, returned by a previous call, to request the next page of results
  • readMask (query) — If set, then only the Routine fields in the field mask, as well as project_id, dataset_id and routine_id, are returned in the response. If unset, then the following Routine fields are returned: etag, project_id, dataset_id, routine_id, routine_type, creation_time, last_modified_time, and language.
POST

/projects/{projectId}/datasets/{datasetId}/routines

Creates a new routine in the dataset.

  • projectId (path, required) — Required. Project ID of the new routine
  • datasetId (path, required) — Required. Dataset ID of the new routine
DELETE

/projects/{projectId}/datasets/{datasetId}/routines/{routineId}

Deletes the routine specified by routineId from the dataset.

  • projectId (path, required) — Required. Project ID of the routine to delete
  • datasetId (path, required) — Required. Dataset ID of the routine to delete
  • routineId (path, required) — Required. Routine ID of the routine to delete
GET

/projects/{projectId}/datasets/{datasetId}/routines/{routineId}

Gets the specified routine resource by routine ID.

  • projectId (path, required) — Required. Project ID of the requested routine
  • datasetId (path, required) — Required. Dataset ID of the requested routine
  • routineId (path, required) — Required. Routine ID of the requested routine
  • readMask (query) — If set, only the Routine fields in the field mask are returned in the response. If unset, all Routine fields are returned.
PUT

/projects/{projectId}/datasets/{datasetId}/routines/{routineId}

Updates information in an existing routine. The update method replaces the entire Routine resource.

  • projectId (path, required) — Required. Project ID of the routine to update
  • datasetId (path, required) — Required. Dataset ID of the routine to update
  • routineId (path, required) — Required. Routine ID of the routine to update
GET

/projects/{projectId}/datasets/{datasetId}/tables

Lists all tables in the specified dataset. Requires the READER dataset role.

  • projectId (path, required) — Project ID of the tables to list
  • datasetId (path, required) — Dataset ID of the tables to list
  • maxResults (query, limit) — Maximum number of results to return
  • pageToken (query) — Page token, returned by a previous call, to request the next page of results
POST

/projects/{projectId}/datasets/{datasetId}/tables

Creates a new, empty table in the dataset.

  • projectId (path, required) — Project ID of the new table
  • datasetId (path, required) — Dataset ID of the new table
DELETE

/projects/{projectId}/datasets/{datasetId}/tables/{tableId}

Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.

  • projectId (path, required) — Project ID of the table to delete
  • datasetId (path, required) — Dataset ID of the table to delete
  • tableId (path, required) — Table ID of the table to delete
GET

/projects/{projectId}/datasets/{datasetId}/tables/{tableId}

Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.

  • projectId (path, required) — Project ID of the requested table
  • datasetId (path, required) — Dataset ID of the requested table
  • tableId (path, required) — Table ID of the requested table
  • selectedFields (query) — List of fields to return (comma-separated). If unspecified, all fields are returned
  • view (query) — Specifies the view that determines which table information is returned. By default, basic table information and storage statistics (STORAGE_STATS) are returned.
PATCH

/projects/{projectId}/datasets/{datasetId}/tables/{tableId}

Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports patch semantics.

  • projectId (path, required) — Project ID of the table to update
  • datasetId (path, required) — Dataset ID of the table to update
  • tableId (path, required) — Table ID of the table to update
  • autodetect_schema (query) — When true will autodetect schema, else will keep original schema
PUT

/projects/{projectId}/datasets/{datasetId}/tables/{tableId}

Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource.

  • projectId (path, required) — Project ID of the table to update
  • datasetId (path, required) — Dataset ID of the table to update
  • tableId (path, required) — Table ID of the table to update
  • autodetect_schema (query) — When true will autodetect schema, else will keep original schema
GET

/projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data

Retrieves table data from a specified set of rows. Requires the READER dataset role.

  • projectId (path, required) — Project ID of the table to read
  • datasetId (path, required) — Dataset ID of the table to read
  • tableId (path, required) — Table ID of the table to read
  • maxResults (query, limit) — Maximum number of results to return
  • pageToken (query) — Page token, returned by a previous call, identifying the result set
  • selectedFields (query) — List of fields to return (comma-separated). If unspecified, all fields are returned
  • startIndex (query) — Zero-based index of the starting row to read
POST

/projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll

Streams data into BigQuery one record at a time without needing to run a load job. Requires the WRITER dataset role.

  • projectId (path, required) — Project ID of the destination table.
  • datasetId (path, required) — Dataset ID of the destination table.
  • tableId (path, required) — Table ID of the destination table.
GET

/projects/{projectId}/datasets/{datasetId}/tables/{tableId}/rowAccessPolicies

Lists all row access policies on the specified table.

  • projectId (path, required) — Required. Project ID of the row access policies to list.
  • datasetId (path, required) — Required. Dataset ID of row access policies to list.
  • tableId (path, required) — Required. Table ID of the table to list row access policies.
  • pageSize (query, limit) — The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.
  • pageToken (query) — Page token, returned by a previous call, to request the next page of results.
POST

/{resource}:testIamPermissions

Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.

  • resource (path, required) — REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.
GET

/projects/{projectId}/jobs

Lists all jobs that you started in the specified project. Job information is available for a six month period after creation. The job list is sorted in reverse chronological order, by job creation time. Requires the Can View project role, or the Is Owner project role if you set the allUsers property.

  • projectId (path, required) — Project ID of the jobs to list
  • allUsers (query) — Whether to display jobs owned by all users in the project. Default false
  • maxCreationTime (query) — Max value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created before or at this timestamp are returned
  • maxResults (query, limit) — Maximum number of results to return
  • minCreationTime (query) — Min value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created after or at this timestamp are returned
  • pageToken (query) — Page token, returned by a previous call, to request the next page of results
  • parentJobId (query) — If set, retrieves only jobs whose parent is this job. Otherwise, retrieves only jobs which have no parent
  • projection (query) — Restrict information returned to a set of selected fields
  • stateFilter (query) — Filter for job state
POST

/projects/{projectId}/jobs

Starts a new asynchronous job. Requires the Can View project role.

  • projectId (path, required) — Project ID of the project that will be billed for the job
GET

/projects/{projectId}/jobs/{jobId}

Returns information about a specific job. Job information is available for a six month period after creation. Requires that you're the person who ran the job, or have the Is Owner project role.

  • projectId (path, required) — [Required] Project ID of the requested job
  • jobId (path, required) — [Required] Job ID of the requested job
  • location (query) — The geographic location of the job. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
POST

/projects/{projectId}/jobs/{jobId}/cancel

Requests that a job be cancelled. This call will return immediately, and the client will need to poll for the job status to see if the cancel completed successfully. Cancelled jobs may still incur costs.

  • projectId (path, required) — [Required] Project ID of the job to cancel
  • jobId (path, required) — [Required] Job ID of the job to cancel
  • location (query) — The geographic location of the job. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
DELETE

/projects/{projectId}/jobs/{jobId}/delete

Requests the deletion of the metadata of a job. This call returns when the job's metadata is deleted.

  • projectId (path, required) — Required. Project ID of the job for which metadata is to be deleted.
  • jobId (path, required) — Required. Job ID of the job for which metadata is to be deleted. If this is a parent job which has child jobs, the metadata from all child jobs will be deleted as well. Direct deletion of the metadata of child jobs is not allowed.
  • location (query) — The geographic location of the job. Required. See details at: https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
POST

/projects/{projectId}/queries

Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.

  • projectId (path, required) — Project ID of the project billed for the query
GET

/projects/{projectId}/queries/{jobId}

Retrieves the results of a query job.

  • projectId (path, required) — [Required] Project ID of the query job
  • jobId (path, required) — [Required] Job ID of the query job
  • location (query) — The geographic location where the job should run. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
  • maxResults (query, limit) — Maximum number of results to read
  • pageToken (query) — Page token, returned by a previous call, to request the next page of results
  • startIndex (query) — Zero-based index of the starting row
  • timeoutMs (query) — How long to wait for the query to complete, in milliseconds, before returning. Default is 10 seconds. If the timeout passes before the job completes, the 'jobComplete' field in the response will be false
GET

/projects/{projectId}/serviceAccount

Returns the email address of the service account for your project used for interactions with Google Cloud KMS.

  • projectId (path, required) — Project ID for which the service account is requested.
POST

/{resource}:getIamPolicy

Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.

  • resource (path, required) — REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.
POST

/{resource}:setIamPolicy

Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.

  • resource (path, required) — REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.

36 endpoints auto-detected

Authentication

This API requires authentication: OAuth.

curl -X GET \
  "https://bigquery.googleapis.com/bigquery/v2/projects"

bigquery.googleapis.com · HTTPS only