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

# Get commits by SHA in batch



## OpenAPI

````yaml https://aws-us-east-2.api.entire.io/api/v1/openapi.json?section=git post /git/repos/{repoId}/commits/batch
openapi: 3.1.0
info:
  title: Entire API
  version: 0.1.0
  description: >-
    Unified Entire API gateway. Aggregates the control plane and regional
    repository-operation services behind a single endpoint.
servers:
  - url: https://aws-us-east-2.api.entire.io/api/v1
security:
  - bearerAuth: []
tags:
  - name: search
    description: Operations under the /search surface.
  - name: semantic-search
    description: Operations under the /semantic-search surface.
  - name: brainstore
    description: Operations served by the brainstore service.
  - description: >-
      The authenticated caller's own cross-repo activity, commits, checkpoints,
      sessions, and recap.
    name: me
    x-group: Your activity
  - description: >-
      Residency-aware previews of the caller's surface, served under
      /experimental. Shapes may change without notice.
    name: experimental
  - description: >-
      Per-user settings: pinned and recent repos, diff view, and saved filter
      tabs.
    name: preferences
  - description: >-
      Repository discovery list, metadata, and headline rollups (summary,
      activity, contributors, agents).
    name: repos
  - description: >-
      Git browsing for a repo: commits, commit detail, branch compare, tree
      listings, raw file bytes, and branches.
    name: code
  - description: >-
      Checkpoint listing, resolution, LLM analysis, transcripts, and per-repo
      checkpoint status.
    name: checkpoints
    x-group: Checkpoints
  - description: >-
      Materialised sessions: listing, detail, transcripts, rename, and the
      public-share toggle.
    name: sessions
    x-group: Sessions
  - description: >-
      Repo dashboard aggregates under /overview: commit and checkpoint stats,
      contributor breakdowns, and session patterns.
    name: overview
  - description: Live ref-change stream for a repo (SSE).
    name: refs
    x-group: Ref events
  - description: >-
      Trails themselves: list, create, read, update, delete, plus per-repo
      counts, claimed branches, and the body-document ensure.
    name: trails
    x-group: Trails
  - description: >-
      What has happened on a trail: the merged timeline, the event stream, and
      who is watching (per trail, plus a repo-wide roll-up).
    name: trail-activity
    x-group: Activity
  - description: >-
      Conversation on a trail: discussions, their messages, and the live
      discussion-event stream.
    name: trail-discussions
    x-group: Discussions
  - description: >-
      Code review on a trail: review state, comments, diffs, reviewed files, and
      review re-runs.
    name: trail-reviews
    x-group: Reviews
  - description: >-
      Runner output on a trail: the latest result per configured runner, monitor
      results, and manual launches.
    name: trail-runs
  - description: >-
      Quality gates: repo gate definitions, gate settings, repo-authored monitor
      definitions, and a trail's gate evaluation.
    name: trail-gates
    x-group: Gates
  - description: >-
      Getting a trail landed: approval decisions, merge readiness, and the merge
      itself.
    name: trail-approvals
    x-group: Approvals
  - description: >-
      Trail attachment blobs: upload intent, completion, retrieval, and
      deletion.
    name: trail-attachments
  - description: Project-scoped Trails, and their owned repository Changes and discussions.
    name: projects
  - description: Agent-provenance ranking for a repo's code scopes.
    name: experts
    x-group: Experts
  - description: >-
      git-meta-compatible repo metadata read and write (git is the source of
      truth).
    name: git-meta
  - description: >-
      A project's versioned agents — what each runs (its own runner or an Entire
      preset), what it is called, the environment it runs in, the repositories
      it reviews and its trigger — and Entire's presets. Saving one runs
      nothing.
    name: agents
  - description: >-
      A project's saved, versioned Environments — where an agent runs: provider
      and sandbox lifetime — reusable across the project's repositories and
      agents. Configuration only: saving one provisions nothing.
    name: environments
  - description: >-
      Runs of a project's agents, each on one Change: starting one, the
      immutable snapshot each captured, status, output and results, retry and
      cancel.
    name: runs
  - description: >-
      Mutating repo configuration: runner, trail, public-sharing, and
      gate-enforcement settings (requires repo manage_settings for every forge).
    name: repo-settings
  - description: The caller's open pull requests across their repositories.
    name: pull-requests
  - description: 'Service-authed only: editor-document sync behind the trail body editor.'
    name: trails-internal
  - description: The runner OIDC issuer's discovery document and JWKS. Machine-consumed.
    name: runner-issuer
  - name: repositories
    x-group: Git
paths:
  /git/repos/{repoId}/commits/batch:
    post:
      tags:
        - repositories
        - git-read
      summary: Get commits by SHA in batch
      operationId: batchCommits
      parameters:
        - description: Repository ULID.
          in: path
          name: repoId
          required: true
          schema:
            description: Repository ULID.
            pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCommitsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: '#/components/schemas/Commit'
                type: object
          description: OK
          headers:
            X-Entire-Replicas:
              schema:
                description: >-
                  Comma-separated base URIs of the nodes currently hosting this
                  repository.
                type: string
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Bad Request
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Not Found
        '412':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Precondition Failed
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Unprocessable Entity
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Internal Server Error
      security:
        - bearerAuth:
            - pull
components:
  schemas:
    BatchCommitsRequest:
      additionalProperties: true
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - >-
              https://aws-us-east-2.entire.io/api/v1/schemas/BatchCommitsRequest.json
          format: uri
          readOnly: true
          type: string
        includeStats:
          default: false
          description: >-
            Include diff stats (additions, deletions, filesChanged) per commit,
            from its diff against its first parent. Stats that exceed the
            per-commit timeout are omitted (null).
          type: boolean
        parseTrailers:
          default: false
          description: Parse git trailers from each commit message into the trailers field.
          type: boolean
        shas:
          description: >-
            Commit SHAs (full hex) to fetch metadata for. Duplicates and case
            variants collapse to one entry.
          items:
            type: string
          maxItems: 200
          minItems: 1
          type:
            - array
            - 'null'
      required:
        - shas
      type: object
    Commit:
      additionalProperties: true
      properties:
        author:
          $ref: '#/components/schemas/Signature'
        committer:
          $ref: '#/components/schemas/Signature'
        extraHeaders:
          items:
            $ref: '#/components/schemas/ExtraHeader'
          type:
            - array
            - 'null'
        mergeTags:
          items:
            type: string
          type:
            - array
            - 'null'
        message:
          type: string
        parents:
          items:
            type: string
          type:
            - array
            - 'null'
        sha:
          pattern: ^[0-9a-f]{40}$|^[0-9a-f]{64}$
          type: string
        signature:
          type: string
        stats:
          allOf:
            - description: >-
                Diff stats vs first parent; present only when includeStats is
                true. Null if the diff timed out.
            - $ref: '#/components/schemas/CommitStats'
        trailers:
          description: Ordered git trailers; populated only when parseTrailers is true.
          items:
            $ref: '#/components/schemas/Trailer'
          type:
            - array
            - 'null'
      required:
        - sha
        - parents
        - message
        - author
        - committer
      type: object
    ErrorModel:
      additionalProperties: true
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://aws-us-east-2.entire.io/api/v1/schemas/ErrorModel.json
          format: uri
          readOnly: true
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    Signature:
      additionalProperties: true
      properties:
        date:
          format: date-time
          type: string
        email:
          type: string
        name:
          type: string
      required:
        - name
        - email
        - date
      type: object
    ExtraHeader:
      additionalProperties: true
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
      type: object
    CommitStats:
      additionalProperties: true
      properties:
        additions:
          format: int64
          minimum: 0
          type: integer
        deletions:
          format: int64
          minimum: 0
          type: integer
        filesChanged:
          format: int32
          minimum: 0
          type: integer
        truncated:
          type: boolean
      required:
        - additions
        - deletions
        - filesChanged
        - truncated
      type: object
    Trailer:
      additionalProperties: true
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
      type: object
    ErrorDetail:
      additionalProperties: true
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: >-
        Bearer token authorizing this operation's repository action. Each
        operation's security requirement names the resource action the token
        must be authorized for (pull or push).
      scheme: bearer
      type: http

````