> ## Documentation Index
> Fetch the complete documentation index at: https://developers.notion.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch manage agent

> Asynchronously apply multiple agent management operations.

Each operation is authorized and applied independently. Poll the returned `status_url` to retrieve the completed batch result.

### Completed batch result

When the task succeeds, `result` is an `agent_batch_result` with a `results` array. Each entry includes `index`, `action`, `agent_id`, and `outcome`; use `index` to match it to the request because an agent can appear more than once.

| Outcome                       | Additional fields                                |
| :---------------------------- | :----------------------------------------------- |
| `update_status` success       | `status`, `pause_reason`, and `last_edited_time` |
| `update_credit_limit` success | `credit_limit` and `last_edited_time`            |
| `delete` success              | `status` (`deleted`) and `deleted_at`            |
| Error                         | `error`, a standard API error object             |


## OpenAPI

````yaml post /v1/agents/batch
openapi: 3.1.0
info:
  title: Notion API
  version: 1.0.0
  termsOfService: >-
    https://notion.notion.site/Terms-and-Privacy-28ffdd083dc3473e9c2da6ec011b58ac
servers:
  - url: https://api.notion.com
security:
  - bearerAuth: []
tags:
  - name: Databases
    description: Database endpoints
  - name: Data sources
    description: Data source endpoints
  - name: Pages
    description: Page endpoints
  - name: Async tasks
    description: Async task endpoints
  - name: Blocks
    description: Block endpoints
  - name: Comments
    description: Comment endpoints
  - name: File uploads
    description: File upload endpoints
  - name: OAuth
    description: OAuth endpoints (basic authentication)
  - name: Users
    description: User endpoints
  - name: Search
    description: Search endpoints
  - name: Views
    description: View endpoints
  - name: Agents
    description: Agent endpoints
  - name: Sessions
    description: Session endpoints
  - name: Custom emojis
    description: Custom emoji endpoints
  - name: Meeting notes
    description: Meeting notes endpoints
paths:
  /v1/agents/batch:
    post:
      tags:
        - Agents
      summary: Apply many agent operations
      operationId: agent-batch
      parameters:
        - $ref: '#/components/parameters/notionVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                operations:
                  type: array
                  items:
                    oneOf:
                      - type: object
                        properties:
                          action:
                            type: string
                            const: update_status
                            description: >-
                              Enable or disable one agent, equivalent to `PATCH
                              /v1/agents/:agent_id/status`.
                          agent_id:
                            oneOf:
                              - $ref: '#/components/schemas/idRequest'
                              - type: string
                                enum:
                                  - notion_ai
                                  - 33333333-3333-3333-3333-333333333333
                                description: >-
                                  One of: `notion_ai`,
                                  `33333333-3333-3333-3333-333333333333`
                            description: >-
                              The agent ID (a UUID), or `notion_ai` for the
                              personal agent. Endpoint-specific restrictions
                              still apply.
                          fields:
                            type: object
                            properties:
                              status:
                                type: string
                                enum:
                                  - active
                                  - disabled
                                description: >-
                                  "active" to re-enable an agent disabled
                                  through this API, or "disabled" to turn it
                                  off.
                            additionalProperties: false
                            required:
                              - status
                            description: The status to apply to this agent.
                        additionalProperties: false
                        required:
                          - action
                          - agent_id
                          - fields
                      - type: object
                        properties:
                          action:
                            type: string
                            const: update_credit_limit
                            description: >-
                              Set or clear one agent's credit limit, equivalent
                              to `PATCH /v1/agents/:agent_id/credit_limit`.
                              Requires full access to the agent.
                          agent_id:
                            oneOf:
                              - $ref: '#/components/schemas/idRequest'
                              - type: string
                                enum:
                                  - notion_ai
                                  - 33333333-3333-3333-3333-333333333333
                                description: >-
                                  One of: `notion_ai`,
                                  `33333333-3333-3333-3333-333333333333`
                            description: >-
                              The agent ID (a UUID), or `notion_ai` for the
                              personal agent. Endpoint-specific restrictions
                              still apply.
                          fields:
                            type: object
                            properties:
                              credit_limit:
                                oneOf:
                                  - type: number
                                  - type: 'null'
                                description: >-
                                  The per-agent credit limit as a non-negative
                                  integer, or null to clear the limit.
                            additionalProperties: false
                            required:
                              - credit_limit
                            description: The credit limit to apply to this agent.
                        additionalProperties: false
                        required:
                          - action
                          - agent_id
                          - fields
                      - type: object
                        properties:
                          action:
                            type: string
                            const: delete
                            description: >-
                              Soft-delete one agent, equivalent to `DELETE
                              /v1/agents/:agent_id`.
                          agent_id:
                            oneOf:
                              - $ref: '#/components/schemas/idRequest'
                              - type: string
                                enum:
                                  - notion_ai
                                  - 33333333-3333-3333-3333-333333333333
                                description: >-
                                  One of: `notion_ai`,
                                  `33333333-3333-3333-3333-333333333333`
                            description: >-
                              The agent ID (a UUID), or `notion_ai` for the
                              personal agent. Endpoint-specific restrictions
                              still apply.
                        additionalProperties: false
                        required:
                          - action
                          - agent_id
                    description: >-
                      One action to apply to one agent. Each operation is
                      authorized and applied on its own.
                  maxItems: 100
                  minItems: 1
                  description: >-
                    The operations to apply, at least one and at most 100.
                    Operations are applied in the order given, and the batch is
                    not atomic: each operation succeeds or fails on its own, and
                    per-operation outcomes are reported in the async task's
                    result.
              additionalProperties: false
              required:
                - operations
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                required:
                  - object
                  - id
                  - status
                  - status_url
                  - created_time
                  - operation
                  - poll_after_seconds
                additionalProperties: false
                properties:
                  object:
                    type: string
                    const: async_task
                  id:
                    type: string
                    minLength: 1
                  status_url:
                    type: string
                    minLength: 1
                  created_time:
                    type: string
                    format: date-time
                  operation:
                    type: object
                    required:
                      - surface
                      - name
                    additionalProperties: false
                    properties:
                      surface:
                        type: string
                        enum:
                          - rest
                          - mcp
                      name:
                        type: string
                        minLength: 1
                  status:
                    type: string
                    enum:
                      - queued
                      - running
                      - retrying
                  poll_after_seconds:
                    type: integer
                    minimum: 0
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_400'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_401'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_403'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_404'
        '406':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_406'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_409'
        '429':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_429'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_500'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_503'
        '504':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_504'
        '529':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_api_529'
      x-codeSamples:
        - lang: javascript
          label: TypeScript SDK
          source: |-
            import { Client } from "@notionhq/client"

            const notion = new Client({ auth: process.env.NOTION_API_KEY })

            const response = await notion.agents.batch({
              operations: [
                {
                  action: "update_status",
                  agent_id: "1f0c7c06-781b-4987-9986-5c8dd3028013",
                  fields: { status: "disabled" }
                }
              ]
            })
components:
  parameters:
    notionVersion:
      name: Notion-Version
      in: header
      required: true
      schema:
        enum:
          - '2026-03-11'
      description: >-
        The [API version](/reference/versioning) to use for this request. The
        latest version is `2026-03-11`.
  schemas:
    idRequest:
      type: string
    error_api_400:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - invalid_json
                - invalid_request_url
                - invalid_request
                - missing_version
                - invalid_beta
                - validation_error
                - invalid_credit_limit
            status:
              const: 400
          required:
            - code
            - status
          additionalProperties: false
    error_api_401:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - unauthorized
            status:
              const: 401
          required:
            - code
            - status
          additionalProperties: false
    error_api_403:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/publicApiCommonErrorResponse'
            - type: object
              properties:
                code:
                  enum:
                    - restricted_resource
                    - status_change_not_allowed
                status:
                  const: 403
              required:
                - code
                - status
              additionalProperties: false
        - allOf:
            - $ref: '#/components/schemas/publicApiCommonErrorResponse'
            - type: object
              properties:
                code:
                  const: workspace_credits_exhausted
                status:
                  const: 403
                additional_data:
                  type: object
                  properties:
                    tool_error_code:
                      const: workspace_credits_exhausted
                    tool_error_class:
                      const: entitlement_required
                    tool_error_retryable:
                      const: 'false'
                    recovery_kind:
                      enum:
                        - contact_workspace_owner
                        - open_workspace_credit_settings
                      description: The recovery action selected by Notion for the caller.
                    recovery_url:
                      type: string
                      format: uri
                      description: >-
                        Present when recovery_kind directs the caller to a
                        settings page.
                  required:
                    - tool_error_code
                    - tool_error_class
                    - tool_error_retryable
                    - recovery_kind
                  additionalProperties:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              required:
                - code
                - status
                - additional_data
        - allOf:
            - $ref: '#/components/schemas/publicApiCommonErrorResponse'
            - type: object
              properties:
                code:
                  const: agent_credit_limit_reached
                status:
                  const: 403
                additional_data:
                  type: object
                  properties:
                    tool_error_code:
                      const: agent_credit_limit_reached
                    tool_error_class:
                      const: entitlement_required
                    tool_error_retryable:
                      const: 'false'
                    recovery_kind:
                      enum:
                        - contact_workspace_owner
                        - none
                        - open_agent_settings
                        - request_agent_limit_increase
                        - request_pending
                      description: The recovery action selected by Notion for the caller.
                    recovery_url:
                      type: string
                      format: uri
                      description: >-
                        Present when recovery_kind directs the caller to a
                        settings page.
                  required:
                    - tool_error_code
                    - tool_error_class
                    - tool_error_retryable
                    - recovery_kind
                  additionalProperties:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              required:
                - code
                - status
                - additional_data
    error_api_404:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - object_not_found
                - directory_not_found
            status:
              const: 404
          required:
            - code
            - status
          additionalProperties: false
    error_api_406:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - row_limit_exceeded
            status:
              const: 406
          required:
            - code
            - status
          additionalProperties: false
    error_api_409:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - conflict_error
                - idempotency_key_reused
                - agent_deleted
            status:
              const: 409
          required:
            - code
            - status
          additionalProperties: false
    error_api_429:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - rate_limited
            status:
              const: 429
          required:
            - code
            - status
          additionalProperties: false
    error_api_500:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - internal_server_error
            status:
              const: 500
          required:
            - code
            - status
          additionalProperties: false
    error_api_503:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - service_unavailable
            status:
              const: 503
          required:
            - code
            - status
          additionalProperties: false
    error_api_504:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - gateway_timeout
            status:
              const: 504
          required:
            - code
            - status
          additionalProperties: false
    error_api_529:
      allOf:
        - $ref: '#/components/schemas/publicApiCommonErrorResponse'
        - type: object
          properties:
            code:
              enum:
                - service_overload
            status:
              const: 529
          required:
            - code
            - status
          additionalProperties: false
    publicApiCommonErrorResponse:
      type: object
      properties:
        object:
          const: error
        message:
          type: string
        additional_data:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: array
                items:
                  type: string
      required:
        - object
        - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````