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

# The index

> GET /api/index — every listing, every issuer, the totals and the rated set.

```
GET https://stonkpile.xyz/api/index
```

The whole thing: the totals for the category, every rated stock with its pillars, and the coins priced against them. This is the endpoint the site itself renders from and the one the MCP server reads.

> [!WARNING]
>
> The full response is roughly a megabyte. Use `slim=1` unless you need the per stock coin arrays, and `stock=` when you only care about one.

## Query parameters

**stock** `string`

Narrow to one stock, by symbol or underlying ticker. `AAPLx` and `AAPL` both work.

**limit** `integer` (default: 100)

Cap the coin list. Maximum 1000.

**slim** `boolean`

`slim=1` drops the per stock coin arrays. Much smaller, and usually what you want.

## Response shape

**generatedAt** `string`

ISO timestamp. Show it rather than implying the number is live to the second.

**marketSession** `object`

`isOpen`, plus `nextOpen` and `nextClose` as unix seconds.

**totals** `object`

The category in one object: `universe`, `tradeable`, `ratings` (counts per band plus `unrated`), `byIssuer`, `byIssuerDepth`, `universeVolume24h`, `universeHolders`, `with247Feed`, `withPerp`, and the quoted coin counts.

**stocks** `object[]`

One entry per stock with a market: `mint`, `symbol`, `name`, `issuer`, `underlying`, `holders`, `price`, `liquidity`, `volume24h`, `has247Feed`, `perpVenues`, `venues`, `pools`, `sharesPerToken`, and `rating`.

**coins** `object[]`

Tokens priced against a tokenized stock. Not stocks. Capped by `limit`.

**lookup** `object[]`

The search table: every ticker, name and mint, for building your own lookup.

```bash Totals only theme={null}
curl -s "https://stonkpile.xyz/api/index?slim=1" | jq '.totals'
```

```bash One stock theme={null}
curl -s "https://stonkpile.xyz/api/index?stock=NVDA&slim=1" | jq '.stocks[0]'
```

```js Top ten by liquidity theme={null}
const r = await fetch("https://stonkpile.xyz/api/index?slim=1");
const { stocks, generatedAt } = await r.json();
const top = [...stocks].sort((a, b) => b.liquidity - a.liquidity).slice(0, 10);
```

```json totals theme={null}
{
  "generatedAt": "2026-10-10T19:03:16.826Z",
  "totals": {
    "universe": 1856,
    "tradeable": 119,
    "ratings": {
      "prime": 16,
      "sound": 32,
      "thin": 45,
      "fragile": 26,
      "unrated": 1737
    },
    "byIssuerDepth": {
      "xStocks": {
        "listed": 1319,
        "withPool": 33,
        "liquidity": 27904358,
        "holders": 807465
      }
    },
    "with247Feed": 31,
    "withPerp": 64
  }
}
```

> [!NOTE]
>
> Figures above were read at 19:03 UTC on 10 October 2026 and will have moved. They are here to show the shape, not as values to hardcode.

## Caching

Five minutes at the edge, matching the rebuild. `Access-Control-Allow-Origin: *`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.