> ## 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.

# List the caller's readable repositories (placement index)



## OpenAPI

````yaml https://us.console.entire.io/api/v1/openapi.json get /repos
openapi: 3.1.0
info:
  description: >-
    Entire control plane: identity, orgs, projects, repos, mirrors, service
    accounts.
  title: Entire Core API
  version: 1.0.0
servers:
  - url: https://us.console.entire.io/api/v1
security: []
tags:
  - name: identity
    x-group: Account
  - name: orgs
    x-group: Organizations
  - name: projects
    x-group: Projects
  - name: repos
    x-group: Repositories
  - name: clusters
    x-group: Clusters
paths:
  /repos:
    get:
      tags:
        - repos
      summary: List the caller's readable repositories (placement index)
      operationId: listRepos
      parameters:
        - description: Maximum entries to return; server may cap further.
          explode: false
          in: query
          name: pageSize
          schema:
            description: Maximum entries to return; server may cap further.
            format: int32
            maximum: 500
            minimum: 0
            type: integer
        - description: Opaque cursor from a previous response's nextPageToken.
          explode: false
          in: query
          name: pageToken
          schema:
            description: Opaque cursor from a previous response's nextPageToken.
            type: string
        - description: >-
            onboarded (default): repos in Entire; all: also include onboardable
            GitHub candidates.
          explode: false
          in: query
          name: scope
          schema:
            default: onboarded
            description: >-
              onboarded (default): repos in Entire; all: also include
              onboardable GitHub candidates.
            enum:
              - onboarded
              - all
            type: string
        - description: >-
            Optional: up to 100 comma-separated names: gh/owner/repo (GitHub
            only), et/project/repo (Entire-native only), or legacy owner/repo
            (both namespaces). Exact matching is case-insensitive; deduplication
            includes the forge. Unknown prefixes or malformed names return 400.
            Returns authorized onboarded repos with consolidated placements.
            Missing repos are omitted. Pagination, scope, and sorting are
            ignored; fact filters and projectId still apply. A single name
            remains supported.
          explode: false
          in: query
          name: filter
          schema:
            description: >-
              Optional: up to 100 comma-separated names: gh/owner/repo (GitHub
              only), et/project/repo (Entire-native only), or legacy owner/repo
              (both namespaces). Exact matching is case-insensitive;
              deduplication includes the forge. Unknown prefixes or malformed
              names return 400. Returns authorized onboarded repos with
              consolidated placements. Missing repos are omitted. Pagination,
              scope, and sorting are ignored; fact filters and projectId still
              apply. A single name remains supported.
            type: string
        - description: >-
            Optional: opaque commit token from a create, to read a snapshot that
            contains that write. Requires a single filter name. A non-empty
            token with multiple supplied names returns 400, including duplicate
            names.
          explode: false
          in: query
          name: commitToken
          schema:
            description: >-
              Optional: opaque commit token from a create, to read a snapshot
              that contains that write. Requires a single filter name. A
              non-empty token with multiple supplied names returns 400,
              including duplicate names.
            pattern: ^$|^[A-Za-z0-9_-]{60,512}$
            type: string
        - description: >-
            Multi-key sort spec, e.g. org:asc,stars:desc. Keys:
            name,org,language,candidacy,stars,forks,pushed_at,last_activity_at,last_pushed_at,activity_hotness,checkpoint_count,open_pr_count.
            A single bare key uses the order param. Encoded into the cursor
            (authoritative on continuation).
          explode: false
          in: query
          name: sort
          schema:
            description: >-
              Multi-key sort spec, e.g. org:asc,stars:desc. Keys:
              name,org,language,candidacy,stars,forks,pushed_at,last_activity_at,last_pushed_at,activity_hotness,checkpoint_count,open_pr_count.
              A single bare key uses the order param. Encoded into the cursor
              (authoritative on continuation).
            type: string
        - description: >-
            Direction for a single bare sort key; defaults to asc. Ignored when
            sort carries per-key :asc/:desc suffixes. Encoded into the cursor
            (authoritative on continuation).
          explode: false
          in: query
          name: order
          schema:
            description: >-
              Direction for a single bare sort key; defaults to asc. Ignored
              when sort carries per-key :asc/:desc suffixes. Encoded into the
              cursor (authoritative on continuation).
            enum:
              - asc
              - desc
            type: string
        - description: >-
            Exact-match repo_facts.language. Also accepts
            language[eq]/language[ne] (bare is sugar for [eq]).
          explode: false
          in: query
          name: language
          schema:
            description: >-
              Exact-match repo_facts.language. Also accepts
              language[eq]/language[ne] (bare is sugar for [eq]).
            type: string
        - description: >-
            Filter on the observed repo_facts.private fact (public:
            private=false; private: private=true). Also accepts
            visibility[eq]/visibility[ne].
          explode: false
          in: query
          name: visibility
          schema:
            description: >-
              Filter on the observed repo_facts.private fact (public:
              private=false; private: private=true). Also accepts
              visibility[eq]/visibility[ne].
            enum:
              - public
              - private
            type: string
        - description: Filter on repo_facts.archived.
          explode: false
          in: query
          name: archived
          schema:
            description: Filter on repo_facts.archived.
            enum:
              - 'true'
              - 'false'
            type: string
        - description: >-
            true: repo_facts.checkpoint_count > 0; false: no checkpoints (0 or
            unobserved).
          explode: false
          in: query
          name: hasCheckpoints
          schema:
            description: >-
              true: repo_facts.checkpoint_count > 0; false: no checkpoints (0 or
              unobserved).
            enum:
              - 'true'
              - 'false'
            type: string
        - description: >-
            Exact-match owner/project org (case-insensitive). Also accepts
            org[eq]/org[ne].
          explode: false
          in: query
          name: org
          schema:
            description: >-
              Exact-match owner/project org (case-insensitive). Also accepts
              org[eq]/org[ne].
            type: string
        - description: >-
            Literal case-insensitive substring match on the full name
            (owner/repo).
          explode: false
          in: query
          name: q
          schema:
            description: >-
              Literal case-insensitive substring match on the full name
              (owner/repo).
            type: string
        - description: >-
            Exact-match owning project id (ULID). Also accepts projectId[eq];
            projectId[ne] is rejected.
          explode: false
          in: query
          name: projectId
          schema:
            description: >-
              Exact-match owning project id (ULID). Also accepts projectId[eq];
              projectId[ne] is rejected.
            pattern: ^$|^[0-9A-HJKMNP-TV-Z]{26}$
            type: string
        - description: >-
            Filter on placement/candidacy lifecycle. inactive requires
            scope=all. Also accepts status[eq]/status[ne].
          explode: false
          in: query
          name: status
          schema:
            description: >-
              Filter on placement/candidacy lifecycle. inactive requires
              scope=all. Also accepts status[eq]/status[ne].
            enum:
              - mirrored
              - processing
              - inactive
            type: string
        - description: >-
            Minimum caller access tier: read (all), write (write+admin), or
            admin. Also accepts permission[eq]; permission[ne] is rejected.
          explode: false
          in: query
          name: permission
          schema:
            description: >-
              Minimum caller access tier: read (all), write (write+admin), or
              admin. Also accepts permission[eq]; permission[ne] is rejected.
            enum:
              - read
              - write
              - admin
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReposOutputBody'
          description: OK
        '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
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Internal Server Error
      security:
        - oauth2: []
        - oidc: []
        - bearerAuth: []
        - sessionAuth: []
components:
  schemas:
    ListReposOutputBody:
      additionalProperties: true
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /api/v1/schemas/ListReposOutputBody.json
          format: uri
          readOnly: true
          type: string
        candidatesIncomplete:
          type: boolean
        nextPageToken:
          description: Pass back to fetch the next page; empty when no more entries.
          type: string
        repos:
          items:
            $ref: '#/components/schemas/RepoIndexEntry'
          type: array
        truncated:
          type: boolean
      required:
        - repos
        - truncated
        - candidatesIncomplete
      type: object
    ErrorModel:
      additionalProperties: true
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /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
        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
    RepoIndexEntry:
      additionalProperties: true
      properties:
        activityHotness:
          format: double
          type: number
        archived:
          type: boolean
        candidate:
          $ref: '#/components/schemas/RepoCandidate'
        cell:
          deprecated: true
          type: string
        checkpointCount:
          format: int64
          type: integer
        clusterSlug:
          deprecated: true
          type: string
        forks:
          format: int64
          type: integer
        full_name:
          type: string
        id:
          type: string
        jurisdiction:
          deprecated: true
          type: string
        language:
          type: string
        lastActivityAt:
          format: date-time
          type: string
        lastPushedAt:
          format: date-time
          type: string
        name:
          type: string
        openPrCount:
          format: int64
          type: integer
        org:
          type: string
        permission:
          enum:
            - read
            - write
            - admin
          type: string
        placements:
          items:
            $ref: '#/components/schemas/RepoPlacement'
          type: array
        primaries:
          $ref: '#/components/schemas/RepoPrimaries'
        provider:
          enum:
            - github
            - entire
          type: string
        pushedAt:
          format: date-time
          type: string
        repoGroupId:
          type: string
        stars:
          format: int64
          type: integer
        visibility:
          type: string
      required:
        - id
        - repoGroupId
        - jurisdiction
        - cell
        - clusterSlug
        - name
        - full_name
        - org
        - provider
        - visibility
        - placements
      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
    RepoCandidate:
      additionalProperties: true
      properties:
        access:
          enum:
            - read
            - write
            - admin
          type: string
        onboardable:
          type: boolean
      required:
        - access
        - onboardable
      type: object
    RepoPlacement:
      additionalProperties: true
      properties:
        apiBaseUrl:
          type: string
        cell:
          type: string
        clusterSlug:
          type: string
        id:
          type: string
        jurisdiction:
          type: string
        mirror:
          type: boolean
        status:
          enum:
            - processing
            - ready
            - failed
            - suspended
          type: string
      required:
        - id
        - jurisdiction
        - cell
        - clusterSlug
        - mirror
        - status
      type: object
    RepoPrimaries:
      additionalProperties: true
      properties:
        data_primary:
          $ref: '#/components/schemas/ForgeRepoIdentity'
        git_data:
          type: string
        processing:
          type: string
        processing_primary:
          $ref: '#/components/schemas/ForgeRepoIdentity'
      required:
        - git_data
        - processing
        - data_primary
      type: object
    ForgeRepoIdentity:
      additionalProperties: true
      properties:
        forge:
          type: string
        repo_id:
          type: string
      required:
        - forge
        - repo_id
      type: object
  securitySchemes:
    oauth2:
      description: >-
        Authorization code flow with PKCE-S256. RFC 8628 device flow is also
        supported.
      flows:
        authorizationCode:
          authorizationUrl: /authorize
          scopes:
            offline_access: Request a refresh token.
            openid: Authenticate using OpenID Connect.
          tokenUrl: /oauth/token
      type: oauth2
    oidc:
      description: OpenID Connect discovery for browser and RFC 8628 device authentication.
      openIdConnectUrl: /.well-known/openid-configuration
      type: openIdConnect
    bearerAuth:
      bearerFormat: JWT
      description: Bearer access token.
      scheme: bearer
      type: http
    sessionAuth:
      description: Console session cookie issued by the browser login flow.
      in: cookie
      name: entire_session
      type: apiKey

````