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

# documents.bulk-edit

> Bulk edit documents. Supports dry-run preview (default) and execute modes. Preview returns matching documents with proposed changes and available merchants/categories for context.



## OpenAPI

````yaml https://developer.api.receiptor.ai/openapi.json post /capabilities/documents.bulk-edit
openapi: 3.0.0
info:
  title: Receiptor AI API
  description: >-
    API for Receiptor AI — automates financial document extraction,
    categorization, and integration with accounting systems. All capabilities
    are available via `POST /v1/capabilities/{slug}` with a JSON request body.
  version: 1.0.0
  contact:
    name: Receiptor AI
    url: https://receiptor.ai
    email: info@receiptor.ai
servers:
  - url: https://developer.api.receiptor.ai/v1
    description: Production
security: []
tags:
  - name: Capabilities
    description: Execute product capabilities
  - name: Discovery
    description: Discover available capabilities
  - name: OAuth2
    description: OAuth 2.0 authorization flow
paths:
  /capabilities/documents.bulk-edit:
    post:
      tags:
        - Capabilities
      summary: documents.bulk-edit
      description: >-
        Bulk edit documents. Supports dry-run preview (default) and execute
        modes. Preview returns matching documents with proposed changes and
        available merchants/categories for context.
      operationId: documents.bulk-edit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: Search query to find documents (optional)
                merchant:
                  type: string
                  description: Specific merchant to filter for editing
                category:
                  type: string
                  description: Specific category to filter for editing
                changes:
                  type: object
                  properties:
                    merchant:
                      type: string
                      description: New merchant name to apply
                    category:
                      type: string
                      description: New category to apply
                  additionalProperties: false
                  description: Changes to apply to matching documents
                dryRun:
                  type: boolean
                  default: true
                  description: >-
                    If true, shows preview without making changes. If false,
                    executes the bulk edit.
              required:
                - changes
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  code:
                    type: integer
                    example: 200
                  data:
                    type: object
                    properties:
                      result:
                        type: object
                        description: Capability-specific result
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - apiKey: []
components:
  responses:
    BadRequest:
      description: Invalid input
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              code:
                type: integer
                example: 400
              error:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 400
                  errorMessage:
                    type: string
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              code:
                type: integer
                example: 401
              error:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 401
                  errorMessage:
                    type: string
                    example: API key authentication required
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              code:
                type: integer
                example: 404
              error:
                type: object
                properties:
                  errorCode:
                    type: integer
                    example: 404
                  errorMessage:
                    type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key prefixed with `sk_`. Obtain from the Receiptor AI dashboard.

````