Asana Batch API

Asana Batch API is a tool that allows users to perform multiple operations in Asana in a single request. This API enables users to efficiently manage and organize tasks, projects, and workflows by allowing them to make multiple updates or queries at once. By batching requests, users can streamline their workflow, reduce the number of API calls needed, and improve overall performance.

OpenAPI Specification

asana-batch-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Asana Batch API
  description: >-
    The Asana Batch API enables developers to perform multiple actions by making
    only a single HTTP request. The maximum number of actions allowed in a
    single batch request is 10. Actions are dispatched in parallel.
  version: '1.0'
  termsOfService: https://asana.com/terms
  contact:
    name: Asana Support
    url: https://asana.com/support
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://app.asana.com/api/1.0
    description: Main endpoint.
security:
  - personalAccessToken: []
  - oauth2: []
tags:
  - name: Batch API
    description: Perform multiple operations in a single HTTP request.
paths:
  /batch:
    post:
      summary: Asana Submit parallel requests
      description: >-
        Make multiple API requests in a single call. The maximum number of
        actions allowed in a single batch request is 10.
      operationId: createBatchRequest
      tags:
        - Batch API
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    actions:
                      type: array
                      items:
                        $ref: '#/components/schemas/BatchRequestAction'
              required:
                - data
      responses:
        '200':
          description: Successfully completed the batch request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BatchResponse'
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '429':
          description: Too many requests.
        '500':
          description: Internal server error.
components:
  securitySchemes:
    personalAccessToken:
      type: http
      scheme: bearer
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.asana.com/-/oauth_authorize
          tokenUrl: https://app.asana.com/-/oauth_token
          scopes:
            default: Provides access to all endpoints documented in the API reference.
  schemas:
    BatchRequestAction:
      type: object
      properties:
        relative_path:
          type: string
          description: The path of the desired endpoint relative to the API's base URL.
          example: /tasks/123
        method:
          type: string
          description: The HTTP method for the action.
          enum:
            - get
            - post
            - put
            - delete
            - patch
          example: get
        data:
          type: object
          description: For POST/PUT requests, an object containing the data for the action.
        options:
          type: object
          description: Pagination and other options for the action.
          properties:
            limit:
              type: integer
            offset:
              type: string
            fields:
              type: array
              items:
                type: string
      required:
        - relative_path
        - method
    BatchResponse:
      type: object
      properties:
        status_code:
          type: integer
          description: The HTTP status code for the individual action.
          example: 200
        headers:
          type: object
          description: HTTP headers for the individual action.
        body:
          type: object
          description: The body of the response for the individual action.