<!-- source: https://secondlayer.tools/docs/api-reference#discover-index -->

## Index discovery

`GET /v1/index`

Lists every Index route with its accepted filters, plus the per-`event_type` column and filter vocabulary for `/v1/index/events`. Open: it runs before auth, so it never needs a token.

### Returns

One `IndexDiscovery` object.

### Responses

- `200` Index routes and filters

### Example

```bash
curl https://api.secondlayer.tools/v1/index \
  -H "Authorization: Bearer $SECONDLAYER_API_KEY"
```

```json
{
  "routes": [
    {
      "path": "/v1/index/ft-transfers",
      "method": "GET",
      "description": "Alias for /events?event_type=ft_transfer. Fungible token transfers, decoded + filterable.",
      "filters": [
        "limit",
        "cursor",
        "from_cursor",
        "from_height",
        "to_height",
        "order",
        "contract_id",
        "sender",
        "recipient",
        "asset_identifier",
        "fields"
      ]
    },
    {
      "path": "/v1/index/blocks",
      "method": "GET",
      "description": "Canonical blocks, cursor-paginated. Returns blocks[] ({block_height, block_hash, parent_hash, burn_block_height, burn_block_hash, block_time, canonical}), next_cursor, tip.",
      "filters": [
        "limit",
        "cursor",
        "from_cursor",
        "from_height",
        "to_height"
      ]
    }
  ],
  "cursor": {
    "format": "<block_height>:<event_index>",
    "semantics": "opaque resume token; pass back unchanged to continue. Equals last event's cursor (inclusive on output, exclusive on input). Under order=desc it carries a `desc:` prefix and resumes only under order=desc."
  }
}
```
