Google BigQuery Jobs API

Operations for managing query and load jobs

OpenAPI Specification

google-bigquery-jobs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google BigQuery Datasets Jobs API
  description: The BigQuery API provides programmatic access to Google BigQuery for creating, managing, and querying datasets, tables, jobs, models, and routines. It enables developers to run SQL queries over petabytes of data, load and export data, manage access control, and orchestrate analytics workloads using serverless infrastructure.
  version: '2'
  contact:
    name: Google Cloud Support
    url: https://cloud.google.com/bigquery/docs/support
  termsOfService: https://cloud.google.com/terms
servers:
- url: https://bigquery.googleapis.com/bigquery/v2
  description: Production Server
security:
- oauth2: []
tags:
- name: Jobs
  description: Operations for managing query and load jobs
paths:
  /projects/{projectId}/jobs:
    get:
      operationId: listJobs
      summary: Google BigQuery List jobs
      description: Lists all jobs that you started in the specified project.
      tags:
      - Jobs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/maxResults'
      - $ref: '#/components/parameters/pageToken'
      - name: projection
        in: query
        description: Restricts information returned to a set of selected fields
        schema:
          type: string
          enum:
          - full
          - minimal
      - name: stateFilter
        in: query
        description: Filter for job state
        schema:
          type: array
          items:
            type: string
            enum:
            - done
            - pending
            - running
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobList'
        '401':
          description: Unauthorized
    post:
      operationId: insertJob
      summary: Google BigQuery Submit a job
      description: Starts a new asynchronous job such as a query, load, extract, or copy job.
      tags:
      - Jobs
      parameters:
      - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Job'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /projects/{projectId}/jobs/{jobId}:
    get:
      operationId: getJob
      summary: Google BigQuery Get job
      description: Returns information about a specific job.
      tags:
      - Jobs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          description: Unauthorized
        '404':
          description: Job not found
    delete:
      operationId: deleteJob
      summary: Google BigQuery Delete job
      description: Requests the deletion of the metadata of a job.
      tags:
      - Jobs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/jobId'
      responses:
        '204':
          description: Successfully deleted
        '401':
          description: Unauthorized
        '404':
          description: Job not found
  /projects/{projectId}/jobs/{jobId}/cancel:
    post:
      operationId: cancelJob
      summary: Google BigQuery Cancel job
      description: 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.
      tags:
      - Jobs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCancelResponse'
        '401':
          description: Unauthorized
        '404':
          description: Job not found
  /projects/{projectId}/queries:
    post:
      operationId: queryJobs
      summary: Google BigQuery Execute query
      description: Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.
      tags:
      - Jobs
      parameters:
      - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /projects/{projectId}/queries/{jobId}:
    get:
      operationId: getQueryResults
      summary: Google BigQuery Get query results
      description: Retrieves the results of a query job.
      tags:
      - Jobs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/jobId'
      - $ref: '#/components/parameters/maxResults'
      - $ref: '#/components/parameters/pageToken'
      - name: startIndex
        in: query
        description: Zero-based index of the starting row
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryResponse'
        '401':
          description: Unauthorized
        '404':
          description: Job not found
components:
  schemas:
    Job:
      type: object
      properties:
        kind:
          type: string
          description: The resource type, always bigquery#job
        id:
          type: string
          description: The fully-qualified unique name of the job
        jobReference:
          $ref: '#/components/schemas/JobReference'
        configuration:
          $ref: '#/components/schemas/JobConfiguration'
        status:
          $ref: '#/components/schemas/JobStatus'
        statistics:
          type: object
          description: Output only statistics about the job
    JobCancelResponse:
      type: object
      properties:
        kind:
          type: string
          description: The resource type
        job:
          $ref: '#/components/schemas/Job'
    JobReference:
      type: object
      properties:
        projectId:
          type: string
          description: The ID of the project containing the job
        jobId:
          type: string
          description: The ID of the job
        location:
          type: string
          description: The geographic location of the job
    TableFieldSchema:
      type: object
      required:
      - name
      - type
      properties:
        name:
          type: string
          description: The field name
        type:
          type: string
          description: The field data type
          enum:
          - STRING
          - BYTES
          - INTEGER
          - INT64
          - FLOAT
          - FLOAT64
          - NUMERIC
          - BIGNUMERIC
          - BOOLEAN
          - BOOL
          - TIMESTAMP
          - DATE
          - TIME
          - DATETIME
          - GEOGRAPHY
          - RECORD
          - STRUCT
          - JSON
        mode:
          type: string
          description: The field mode
          enum:
          - NULLABLE
          - REQUIRED
          - REPEATED
        description:
          type: string
          description: The field description
        fields:
          type: array
          items:
            $ref: '#/components/schemas/TableFieldSchema'
          description: Nested fields for RECORD type
    JobConfiguration:
      type: object
      properties:
        jobType:
          type: string
          description: The type of the job
        query:
          type: object
          description: Configuration for a query job
          properties:
            query:
              type: string
              description: SQL query text
            destinationTable:
              $ref: '#/components/schemas/TableReference'
            useLegacySql:
              type: boolean
              description: Whether to use legacy SQL dialect
        load:
          type: object
          description: Configuration for a load job
        extract:
          type: object
          description: Configuration for an extract job
        copy:
          type: object
          description: Configuration for a copy job
    QueryRequest:
      type: object
      required:
      - query
      properties:
        query:
          type: string
          description: A query string to execute using GoogleSQL or legacy SQL
        maxResults:
          type: integer
          description: The maximum number of rows of data to return per page
        defaultDataset:
          $ref: '#/components/schemas/DatasetReference'
        useLegacySql:
          type: boolean
          description: Whether to use legacy SQL dialect
        timeoutMs:
          type: integer
          description: Timeout in milliseconds for the query to complete
        dryRun:
          type: boolean
          description: If true, the query is not executed
    JobList:
      type: object
      properties:
        kind:
          type: string
          description: The resource type
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/Job'
          description: List of jobs
        nextPageToken:
          type: string
          description: A token to request the next page of results
    ErrorProto:
      type: object
      properties:
        reason:
          type: string
          description: A short error code that summarizes the error
        location:
          type: string
          description: Specifies where the error occurred
        message:
          type: string
          description: A human-readable description of the error
    TableSchema:
      type: object
      properties:
        fields:
          type: array
          items:
            $ref: '#/components/schemas/TableFieldSchema'
          description: Describes the fields in a table
    JobStatus:
      type: object
      properties:
        state:
          type: string
          description: Running state of the job
          enum:
          - PENDING
          - RUNNING
          - DONE
        errorResult:
          $ref: '#/components/schemas/ErrorProto'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorProto'
          description: The first errors encountered during the running of the job
    QueryResponse:
      type: object
      properties:
        kind:
          type: string
          description: The resource type
        schema:
          $ref: '#/components/schemas/TableSchema'
        rows:
          type: array
          items:
            type: object
          description: Result rows
        totalRows:
          type: string
          description: The total number of rows in the complete query result set
        pageToken:
          type: string
          description: A token to request the next page of results
        jobComplete:
          type: boolean
          description: Whether the query has completed
        jobReference:
          $ref: '#/components/schemas/JobReference'
        totalBytesProcessed:
          type: string
          description: The total number of bytes processed by the query
    DatasetReference:
      type: object
      properties:
        projectId:
          type: string
          description: The ID of the project containing the dataset
        datasetId:
          type: string
          description: The ID of the dataset
    TableReference:
      type: object
      properties:
        projectId:
          type: string
          description: The ID of the project containing the table
        datasetId:
          type: string
          description: The ID of the dataset containing the table
        tableId:
          type: string
          description: The ID of the table
  parameters:
    pageToken:
      name: pageToken
      in: query
      description: Page token for pagination
      schema:
        type: string
    projectId:
      name: projectId
      in: path
      required: true
      description: The ID of the project
      schema:
        type: string
    jobId:
      name: jobId
      in: path
      required: true
      description: The ID of the job
      schema:
        type: string
    maxResults:
      name: maxResults
      in: query
      description: Maximum number of results to return
      schema:
        type: integer
        format: int32
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/bigquery: Full access to BigQuery
            https://www.googleapis.com/auth/bigquery.readonly: Read-only access to BigQuery
externalDocs:
  description: BigQuery API Documentation
  url: https://cloud.google.com/bigquery/docs/reference/rest