---
title: "List the tenant's installed indexers and their run health"
method: GET
path: "/v1/admin/indexers"
tags: ["Indexer operations"]
---

# List the tenant's installed indexers and their run health

`GET /v1/admin/indexers`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/admin/indexers`
- Auth: HTTP bearer

One row per pack that declared an `indexer` descriptor (a pack without one rides the union pass and has no run ledger of its own, so it is absent): execution mode, pack id + installed version, the last run, and run/candidate tallies over a bounded recent window. For `external` packs it also reports publisher liveness — unclaimed backlog and the newest claim, the ledger-derived proxy for "is the publisher still polling". Read-only. Answers `404` until `INDEXER_OPERATOR_VIEW_ENABLED=1`. Source: src/documents/indexer-admin.controller.ts.

Required scope: `brain:admin`.

## Query parameters

- `tenant` string
- `days` integer
- `runCap` integer

## Response `200`

Installed indexers and run health.

- IndexerOverviewListResponse
  - `indexers` IndexerOverview[], required
    - `candidates` IndexerCandidateTotals, required
      - `committed` integer, required
      - `duplicate` integer, required
      - `expired` integer, required
      - `merged` integer, required
      - `pending` integer, required
      - `rejected` integer, required
      - `submitted` integer, required
    - `description` string, required
    - `external` IndexerExternalHealth, required
      - `lastClaimAt` string, nullable, required
      - `oldestPendingAt` string, nullable, required
      - `pendingWork` integer, required
      - `polledRecently` boolean, required
      - `polledWithinHours` integer, required
      - `publisher` string, nullable, required
    - `installedAt` string, nullable, required
    - `lastRun` IndexerRunSummary, required
      - `candidates` IndexerCandidateTotals, required
        - `committed` integer, required
        - `duplicate` integer, required
        - `expired` integer, required
        - `merged` integer, required
        - `pending` integer, required
        - `rejected` integer, required
        - `submitted` integer, required
      - `documentId` string, required
      - `error` string, nullable, required
      - `external` boolean, required
      - `finishedAt` string, nullable, required
      - `packVersion` string, required
      - `runId` string, required
      - `startedAt` string, required
      - `stats` IndexerRunStats, required
        - `chunks` integer, required
        - `durationMs` integer, required
        - `entities` integer, required
        - `facts` integer, required
        - `relations` integer, required
      - `status` string, required
    - `mode` 'virtual' | 'dedicated' | 'external', required
    - `packId` string, required
    - `packVersion` string, required
    - `runs` IndexerRunTotals, required
      - `failed` integer, required
      - `pending` integer, required
      - `running` integer, required
      - `skipped` integer, required
      - `succeeded` integer, required
      - `total` integer, required
    - `source` 'builtin' | 'installed', required
    - `truncated` boolean, required
  - `tenant` string, required
  - `window` IndexerWindow, required
    - `days` integer, required
    - `runCap` integer, required
    - `since` string, required

## Other responses

- `401`: Missing or unknown bearer key.
- `403`: The key lacks the required scope.
- `404`: No such resource in this tenant.

---

[API](https://skmtc.dev/inite/apis/inite-brain-platform-api.md) · [All operations](https://skmtc.dev/inite/apis/inite-brain-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inite/apis/inite-brain-platform-api/revisions/c7c3eb5e304b?raw)
