Google Cloud Tasks API

The Cloud Tasks API allows you to create and manage task queues, enqueue tasks for asynchronous processing, and configure retry and rate limiting policies. Tasks can target App Engine handlers or any HTTP endpoint.

OpenAPI Specification

openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Cloud Tasks API
  description: >-
    The Cloud Tasks API enables management of distributed task execution. It
    allows you to create queues, enqueue tasks, and configure retry and rate
    limiting behavior for tasks targeting App Engine or arbitrary HTTP endpoints.
  version: v2
  contact:
    name: Google Cloud
    url: https://cloud.google.com/tasks/docs
servers:
  - url: https://cloudtasks.googleapis.com
paths:
  /v2/projects/{project}/locations/{location}/queues:
    get:
      operationId: listQueues
      summary: Google Cloud Tasks List queues
      description: Lists queues in a project and location.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListQueuesResponse'
      tags:
        - Projects
    post:
      operationId: createQueue
      summary: Google Cloud Tasks Create a queue
      description: Creates a queue in the specified project and location.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Queue'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Queue'
      tags:
        - Projects
  /v2/projects/{project}/locations/{location}/queues/{queue}:
    get:
      operationId: getQueue
      summary: Google Cloud Tasks Get a queue
      description: Gets a queue configuration.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Queue'
      tags:
        - Projects
    patch:
      operationId: updateQueue
      summary: Google Cloud Tasks Update a queue
      description: Updates a queue configuration.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Queue'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Queue'
      tags:
        - Projects
    delete:
      operationId: deleteQueue
      summary: Google Cloud Tasks Delete a queue
      description: Deletes a queue and all of its tasks.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
      tags:
        - Projects
  /v2/projects/{project}/locations/{location}/queues/{queue}/tasks:
    get:
      operationId: listTasks
      summary: Google Cloud Tasks List tasks
      description: Lists the tasks in a queue.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTasksResponse'
      tags:
        - Projects
    post:
      operationId: createTask
      summary: Google Cloud Tasks Create a task
      description: Creates a task and adds it to a queue.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
      tags:
        - Projects
  /v2/projects/{project}/locations/{location}/queues/{queue}/tasks/{task}:
    get:
      operationId: getTask
      summary: Google Cloud Tasks Get a task
      description: Gets a specific task.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
        - name: task
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
      tags:
        - Projects
    delete:
      operationId: deleteTask
      summary: Google Cloud Tasks Delete a task
      description: Deletes a task from a queue.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
        - name: task
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
      tags:
        - Projects
  /v2/projects/{project}/locations/{location}/queues/{queue}/tasks/{task}:run:
    post:
      operationId: runTask
      summary: Google Cloud Tasks Run a task
      description: Forces a task to run now.
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
        - name: task
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
      tags:
        - Projects
components:
  schemas:
    Queue:
      type: object
      properties:
        name:
          type: string
          description: >-
            The queue name in the format
            projects/{project}/locations/{location}/queues/{queue}.
        rateLimits:
          $ref: '#/components/schemas/RateLimits'
        retryConfig:
          $ref: '#/components/schemas/RetryConfig'
        state:
          type: string
          enum:
            - STATE_UNSPECIFIED
            - RUNNING
            - PAUSED
            - DISABLED
    RateLimits:
      type: object
      properties:
        maxDispatchesPerSecond:
          type: number
        maxBurstSize:
          type: integer
        maxConcurrentDispatches:
          type: integer
    RetryConfig:
      type: object
      properties:
        maxAttempts:
          type: integer
        maxRetryDuration:
          type: string
        minBackoff:
          type: string
        maxBackoff:
          type: string
        maxDoublings:
          type: integer
    Task:
      type: object
      properties:
        name:
          type: string
        httpRequest:
          $ref: '#/components/schemas/HttpRequest'
        scheduleTime:
          type: string
          format: date-time
        createTime:
          type: string
          format: date-time
        dispatchCount:
          type: integer
        responseCount:
          type: integer
    HttpRequest:
      type: object
      properties:
        url:
          type: string
        httpMethod:
          type: string
          enum:
            - HTTP_METHOD_UNSPECIFIED
            - POST
            - GET
            - HEAD
            - PUT
            - DELETE
            - PATCH
            - OPTIONS
        headers:
          type: object
          additionalProperties:
            type: string
        body:
          type: string
          format: byte
    CreateTaskRequest:
      type: object
      properties:
        task:
          $ref: '#/components/schemas/Task'
        responseView:
          type: string
          enum:
            - VIEW_UNSPECIFIED
            - BASIC
            - FULL
    ListQueuesResponse:
      type: object
      properties:
        queues:
          type: array
          items:
            $ref: '#/components/schemas/Queue'
        nextPageToken:
          type: string
    ListTasksResponse:
      type: object
      properties:
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/Task'
        nextPageToken:
          type: string
tags:
  - name: Projects