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

# Calls

> The curated CabalSpy calls from Discord (Gambles, Moderate Gamble, Good Token, Big Token, Whales) with trigger wallets and 24 hour performance.

Our curated calls, the same ones posted in the CabalSpy Discord, as an API. Each call carries the token, the market cap at the time of the call, the KOL and Smart Money wallets that triggered it, trading links, and its performance over the 24 hours after the call.

Calls are a finished product: we pick them with fixed rules per tier. If you want to define your own thresholds instead, use [Signals](https://docs.cabalspy.xyz/signals.md). For calls as they happen, subscribe to the [Call Stream](https://docs.cabalspy.xyz/call.md).

## Tiers

| tier | Label | Chains |
| - | - | - |
| gamble | Gambles | solana, bnb, eth, rh |
| moderate | Moderate Gamble | solana, bnb, eth, rh |
| good | Good Token | solana, bnb, eth, rh |
| big | Big Token | solana |
| whale | Whales Call | solana |

Calls are kept for 90 days.

## Query Parameters

**blockchain** `string`

Comma separated chains. Any of solana, bnb, eth, rh. Omit for all chains.

**tier** `string`

Comma separated tiers. Any of gamble, moderate, good, big, whale. Omit for all tiers.

**since** `string`

Only calls at or after this time. ISO 8601 or a Unix timestamp in seconds or milliseconds.

**until** `string`

Only calls at or before this time. Same formats as since.

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

Calls per page, 1 to 200. Newest first.

**cursor** `string`

The next\_cursor from the previous page.

**api\_key** `string` *required*

Your API key. Alternatively pass it as an Authorization Bearer header.

## Usage Example

```bash cURL theme={null}
curl "https://api.cabalspy.xyz/v1/calls?blockchain=solana&tier=good,moderate&limit=20&api_key=YOUR_KEY"
```

```python Python theme={null}
import requests

params = {"blockchain": "solana", "tier": "good,moderate", "limit": 20, "api_key": "YOUR_KEY"}
r = requests.get("https://api.cabalspy.xyz/v1/calls", params=params)

for c in r.json()["data"]:
    p = c["performance"]
    print(c["called_at"], c["tier_label"], c["token"]["symbol"], p["status"], p["peak_multiple"])
```

```javascript JavaScript theme={null}
const p = new URLSearchParams({
  blockchain: "solana", tier: "good,moderate", limit: "20", api_key: "YOUR_KEY",
});
const res = await fetch(`https://api.cabalspy.xyz/v1/calls?${p}`);
const { data, pagination } = await res.json();
data.forEach(c => console.log(c.called_at, c.tier_label, c.token.symbol, c.performance.peak_multiple));
// next page: add cursor=pagination.next_cursor
```

## Response

**success** `boolean`

True on success.

**data** `array`

**call**

**call\_id** `string`

Stable id of the call. The same id is used in the Call Stream.

**blockchain** `string`

solana, bnb, eth or rh.

**tier** `string`

gamble, moderate, good, big or whale.

**tier\_label** `string`

The tier as shown in Discord, for example Moderate Gamble.

**called\_at** `string`

When the call was made, ISO 8601 UTC.

**timestamp** `string`

Same as called\_at.

**token** `object`

mint, symbol, name and logo.

**market\_cap\_at\_call** `number`

Market cap in USD at the time of the call.

**trigger** `object`

**trigger**

**kol\_count** `integer`

KOL wallets behind the call.

**smart\_count** `integer`

Smart Money wallets behind the call.

**native\_symbol** `string`

SOL, BNB or ETH.

**total\_native** `number`

Total bought by these wallets in the native currency.

**wallets** `array`

Each wallet with address, type (kol or smart), name, amount\_native and bought\_at. Big Token calls carry counts only, without wallets.

**performance** `object`

**performance**

**status** `string`

pending (not measured yet), ok, no\_data (no price data after the call) or not\_evaluated (not measured, currently Big Token and Whales).

**peak\_multiple** `number`

Highest price within 24 hours after the call, divided by the price at the call.

**peak\_market\_cap** `number`

Market cap at that peak, in USD.

**minutes\_to\_peak** `integer`

Minutes from the call to the peak.

**close\_24h\_multiple** `number`

Price 24 hours after the call, divided by the price at the call.

**evaluated\_at** `string`

When the call was measured.

**links** `object`

Trading and chart links for the token, for example axiom, gmgn, dexscreener. Solana calls include terminal, the token page in the CabalSpy Terminal.

**pagination** `object`

limit, total (null when a tier filter or several chains are set), has\_more and next\_cursor.

> [!NOTE]
>
> Calls are measured once a day, so calls from the last one to two days show performance status pending.

```json Response theme={null}
{
  "success": true,
  "data": [
    {
      "call_id": "c_0123456789ab",
      "blockchain": "solana",
      "tier": "gamble",
      "tier_label": "Gambles",
      "called_at": "2026-10-01T12:00:00Z",
      "timestamp": "2026-10-01T12:00:00Z",
      "token": {
        "mint": "ExampLeTokenMint1111111111111111111111pump",
        "symbol": "EXAMPLE",
        "name": "Example Token",
        "logo": "https://example.com/token-logo.webp"
      },
      "market_cap_at_call": 25000.0,
      "trigger": {
        "kol_count": 3,
        "smart_count": 1,
        "native_symbol": "SOL",
        "total_native": 12.5,
        "wallets": [
          {
            "address": "ExampLeKoLWa11et111111111111111111111111111",
            "type": "kol",
            "name": "Example KOL",
            "amount_native": 6.0,
            "bought_at": "2026-10-01T11:59:40Z"
          }
        ]
      },
      "performance": {
        "status": "ok",
        "peak_multiple": 3.2,
        "peak_market_cap": 80000.0,
        "minutes_to_peak": 18,
        "close_24h_multiple": 1.4,
        "evaluated_at": "2026-10-03T00:20:00+00:00"
      },
      "links": {
        "axiom": "https://axiom.trade/t/ExampLeTokenMint1111111111111111111111pump/@cabalspy1",
        "gmgn": "https://gmgn.ai/sol/token/ExampLeTokenMint1111111111111111111111pump",
        "dexscreener": "https://dexscreener.com/solana/ExampLeTokenMint1111111111111111111111pump",
        "terminal": "https://app.cabalspy.xyz/token/ExampLeTokenMint1111111111111111111111pump"
      }
    }
  ],
  "pagination": {
    "limit": 1,
    "total": 1250,
    "has_more": true,
    "next_cursor": "MTc1OTMyMDAwMDAwMA=="
  },
  "meta": {
    "request_id": "req_5162c7cf7f87",
    "cached": false,
    "cache_age_seconds": 0,
    "version": "1.0.0",
    "timestamp": "2026-10-03T10:00:00Z"
  }
}
```

## Errors

| Status | Code | Meaning |
| - | - | - |
| 400 | invalid\_parameter | Unknown blockchain or tier, or an invalid since, until, limit or cursor. |
| 401 | unauthorized | API key missing. |
| 403 | forbidden | API key invalid or credits exhausted. |
| 429 | rate\_limited | Rate limit exceeded. |


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