# List indexes

Return every index in the project, with its primary key and document count.

`GET /v1/indexes`

Indexes are sorted by name. Requires an admin key.

## Query parameters

<ParamField name="limit" type="integer" default="20">
  How many indexes to return, from 1 to 100.
</ParamField>
<ParamField name="offset" type="integer" default="0">
  How many indexes to skip.
</ParamField>

## Response

<ResponseField name="results" type="Index[]">
  The indexes on this page.
</ResponseField>
<ResponseField name="results[].uid" type="string">
  The name of the index.
</ResponseField>
<ResponseField name="results[].primaryKey" type="string">
  The field that identifies each document.
</ResponseField>
<ResponseField name="results[].numberOfDocuments" type="integer">
  How many documents the index holds.
</ResponseField>
<ResponseField name="total" type="integer">
  How many indexes the project has in total.
</ResponseField>

## Request

```bash
curl https://api.zeroindex.test/v1/indexes?limit=20 \
  -H "Authorization: Bearer $ZEROINDEX_KEY"
```

```js
const { results, total } = await client.getIndexes({ limit: 20 });
```

```python
page = client.get_indexes(limit=20)
```

## Response (200)

```json
{
  "results": [
    {
      "uid": "products",
      "primaryKey": "id",
      "numberOfDocuments": 18240,
      "createdAt": "2026-08-02T10:21:44Z",
      "updatedAt": "2026-10-12T08:03:10Z"
    },
    {
      "uid": "articles",
      "primaryKey": "slug",
      "numberOfDocuments": 912,
      "createdAt": "2026-09-14T16:40:02Z",
      "updatedAt": "2026-10-11T19:55:31Z"
    }
  ],
  "limit": 20,
  "offset": 0,
  "total": 2
}
```