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

# Bulk index repositories

> Idempotently enables indexing for a batch of repositories and triggers indexing jobs.

## Permissions

Requires a service user with the `IndexOrgRepositories` permission at the organization level.

## Behavior

This endpoint is **idempotent** — calling it multiple times with the same repositories will not create duplicate indexing jobs. It enables indexing and triggers indexing jobs for each repository in the request.

You can optionally specify `branch_names` for each repository to index specific branches. If omitted, the default branch is used.


## OpenAPI

````yaml v3-openapi.yaml PUT /v3beta1/organizations/{org_id}/repositories/indexing
openapi: 3.1.0
info:
  description: Devin v3 API with Service User authentication and RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3beta1/organizations/{org_id}/repositories/indexing:
    put:
      tags:
        - repositories
      summary: Bulk index repositories
      description: >-
        Idempotently enables indexing for a batch of repositories and triggers
        indexing jobs.
      operationId: >-
        handle_bulk_index_repositories_v3beta1_organizations__org_id__repositories_indexing_put
      parameters:
        - description: 'Organization ID (prefix: org-)'
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkIndexRepositoriesRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/RepositoryIndexingResponse'
                title: >-
                  Response Handle Bulk Index Repositories V3Beta1 Organizations 
                  Org Id  Repositories Indexing Put
                type: array
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Unprocessable Content
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Too Many Requests
components:
  schemas:
    BulkIndexRepositoriesRequest:
      properties:
        repositories:
          items:
            $ref: '#/components/schemas/RepositoryIndexingItem'
          maxItems: 100
          minItems: 1
          title: Repositories
          type: array
      required:
        - repositories
      title: BulkIndexRepositoriesRequest
      type: object
    RepositoryIndexingResponse:
      properties:
        branches:
          items:
            type: string
          title: Branches
          type: array
        indexing_enabled:
          title: Indexing Enabled
          type: boolean
        indexing_status:
          anyOf:
            - $ref: '#/components/schemas/RepoIndexingStatusResponse'
            - type: 'null'
        repository_path:
          title: Repository Path
          type: string
      required:
        - repository_path
        - indexing_enabled
        - branches
      title: RepositoryIndexingResponse
      type: object
    ProblemDetail:
      description: >-
        RFC 9457 application/problem+json error body for the v3 API.


        detail is retained from the legacy {"detail": ...} body for back-compat;
        the

        other members are additive. errors carries field-level validation
        failures

        (422 only).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: A human-readable explanation specific to this occurrence.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Field-level validation errors (422 responses only).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: A URI reference (the request path) for this occurrence.
          title: Instance
        status:
          description: The HTTP status code.
          title: Status
          type: integer
        title:
          description: A short, human-readable summary of the problem type.
          title: Title
          type: string
        type:
          default: about:blank
          description: A URI reference identifying the problem type.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    RepositoryIndexingItem:
      properties:
        branch_names:
          items:
            type: string
          title: Branch Names
          type: array
        repository_path:
          description: e.g., 'org/repo-name'
          title: Repository Path
          type: string
      required:
        - repository_path
      title: RepositoryIndexingItem
      type: object
    RepoIndexingStatusResponse:
      properties:
        indexing_enabled:
          title: Indexing Enabled
          type: boolean
        latest_completed_search_index_job:
          anyOf:
            - $ref: '#/components/schemas/RepoIndexJobResponse'
            - type: 'null'
        latest_completed_wiki_index_job:
          anyOf:
            - $ref: '#/components/schemas/RepoIndexJobResponse'
            - type: 'null'
        latest_indexes:
          items:
            $ref: '#/components/schemas/RepoIndexJobResponse'
          title: Latest Indexes
          type: array
      required:
        - indexing_enabled
        - latest_indexes
        - latest_completed_search_index_job
        - latest_completed_wiki_index_job
      title: RepoIndexingStatusResponse
      type: object
    RepoIndexJobResponse:
      properties:
        branch_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Branch Name
        commit:
          title: Commit
          type: string
        created_at:
          title: Created At
          type: integer
        job_id:
          title: Job Id
          type: string
        status:
          enum:
            - failed
            - completed
            - in_progress
          title: Status
          type: string
      required:
        - job_id
        - status
        - commit
        - branch_name
        - created_at
      title: RepoIndexJobResponse
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Service User credential (prefix: cog_)'
      scheme: bearer
      type: http

````