cabalspy-xyz Bundle API

KOL bundle detection on Solana tokens.

Operations 1

GET /bundle Bundle snapshot #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cabalspy-xyz:cabalspy-xyz-bundle-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cabalspy-xyz-bundle-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CabalSpy Bundle API
  version: 1.0.0
  description: 'REST API for CabalSpy on-chain labeled wallet data: tracked KOL, Smart Money and Whale wallets on Solana, BNB Chain, Base, Ethereum and Robinhood Chain (blockchain values: solana, bnb, base, eth, rh), with wallet profiles, leaderboards, PnL, token holders and transactions, bundle detection (Solana only), live signals and analytics.


    Wallet type availability per chain: Solana has kol, smart, whale. BNB, Base and Robinhood Chain have kol, smart. ETH has kol.


    Authentication: every request needs an API key, passed either as the api_key query parameter or as an Authorization Bearer header (the two are equivalent). Get a free key at https://apidashboard.cabalspy.xyz/.


    Credits: a REST request costs 10 credits on every plan. The free tier includes 10,000 credits per month; credits reset on the first of every month.


    Rate limits: requests per second by plan are 5 (Free), 20 (Starter), 50 (Pro) and 100 (Business). Exceeding the limit returns 429 rate_limited; wait and retry.


    Responses share an envelope: success, data, meta (request_id, cached, cache_age_seconds, version, timestamp) and, on some endpoints, pagination.


    Real-time data is available separately over WebSocket at wss://stream.cabalspy.xyz (not described by this document; 1 credit per event received).'
  termsOfService: https://www.cabalspy.xyz/terms/
  contact:
    name: CabalSpy
    email: contact@cabalspy.xyz
servers:
- url: https://api.cabalspy.xyz/v1
security:
- ApiKeyQuery: []
- BearerAuth: []
tags:
- name: Bundle
  description: KOL bundle detection on Solana tokens.
paths:
  /bundle:
    get:
      operationId: getBundleSnapshot
      summary: Bundle snapshot
      description: 'Detect coordinated KOL bundles on a Solana token: the side wallets that bought alongside a KOL in the same block, with confidence score, on chain proof and a live position per wallet. Solana only. If no bundles are detected the response is a normal 200 with an empty bundles array. Costs 10 credits per request.'
      tags:
      - Bundle
      externalDocs:
        url: https://docs.cabalspy.xyz/bundle
      parameters:
      - name: blockchain
        in: query
        required: true
        description: Must be solana. Bundle detection is only available on Solana.
        schema:
          type: string
          enum:
          - solana
      - name: mint
        in: query
        required: true
        description: The token mint address to inspect for bundles.
        schema:
          type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: True on success.
                  data:
                    type: object
                    properties:
                      blockchain:
                        type: string
                        description: Always solana for this endpoint.
                      token:
                        type: object
                        properties:
                          mint:
                            type: string
                          symbol:
                            type: string
                          name:
                            type: string
                          supply:
                            type: number
                          market_cap:
                            type: number
                          market_cap_usd:
                            type: number
                          market_cap_currency:
                            type: string
                          price:
                            type: number
                          price_usd:
                            type: number
                          sol_price_usd:
                            type: number
                          pool:
                            type: string
                          on_curve:
                            type: boolean
                          bonding_curve_progress:
                            type: number
                        additionalProperties: true
                      bundles:
                        type: array
                        items:
                          type: object
                          properties:
                            bundle_id:
                              type: string
                            kol_wallet:
                              type: string
                              description: Address of the KOL at the center of the bundle.
                            kol_profile:
                              $ref: '#/components/schemas/Profile'
                            confidence:
                              type: number
                              description: Confidence score that this is a real coordinated bundle.
                            jito_confirmed:
                              type: boolean
                            proof_type:
                              type: string
                            slot:
                              type: integer
                            wallet_count:
                              type: integer
                            proof:
                              type: string
                            verify_hint:
                              type: string
                            detected_at:
                              type: string
                            bundle_wallets:
                              type: array
                              description: KOL first, then by invested.
                              items:
                                type: object
                                properties:
                                  address:
                                    type: string
                                  is_kol:
                                    type: boolean
                                    description: True for the KOL wallet, false for side wallets.
                                  transaction_type:
                                    type: string
                                  signature:
                                    type: string
                                  entry_source:
                                    type: string
                                  position_source:
                                    type: string
                                  profile:
                                    type: object
                                    additionalProperties: true
                                    description: Wallet profile. For side wallets this may be empty.
                                  fee_lamports:
                                    type: integer
                                    description: Side wallets only. Fee paid in lamports.
                                  block_index:
                                    type: integer
                                    description: Side wallets only. Index within the block.
                                  adjacent_to_kol:
                                    type: boolean
                                    description: Side wallets only. Whether the wallet traded directly next to the KOL.
                                  same_fee:
                                    type: boolean
                                    description: Side wallets only. Whether the wallet paid the same fee as the KOL.
                                  occurrences:
                                    type: integer
                                    description: Side wallets only. How often this wallet bundled with the KOL.
                                  position:
                                    type: object
                                    description: Live position, computed at request time.
                                    properties:
                                      held:
                                        type: number
                                      peak:
                                        type: number
                                      bought_tokens:
                                        type: number
                                      sold_tokens:
                                        type: number
                                      bag_pct:
                                        type: number
                                      supply_pct:
                                        type: number
                                      invested:
                                        type: number
                                      invested_usd:
                                        type: number
                                      max_single_buy:
                                        type: number
                                      buy_txn:
                                        type: integer
                                      sell_txn:
                                        type: integer
                                      sold_value:
                                        type: number
                                      sold_value_usd:
                                        type: number
                                      realized_pnl_sol:
                                        type: number
                                      realized_pnl_usd:
                                        type: number
                                      entry_market_cap:
                                        type:
                                        - number
                                        - 'null'
                                      entry_market_cap_usd:
                                        type:
                                        - number
                                        - 'null'
                                      unrealized_pnl_sol:
                                        type:
                                        - number
                                        - 'null'
                                        description: Unrealized PnL on the remaining bag (SOL). Null if market cap is missing.
                                      unrealized_pnl_usd:
                                        type:
                                        - number
                                        - 'null'
                                      unrealized_pnl_pct:
                                        type:
                                        - number
                                        - 'null'
                                      remaining_sol:
                                        type:
                                        - number
                                        - 'null'
                                      remaining_usd:
                                        type:
                                        - number
                                        - 'null'
                                      first_buy_at:
                                        type: string
                                      last_activity_at:
                                        type: string
                                    additionalProperties: true
                                additionalProperties: true
                          additionalProperties: true
                    additionalProperties: true
                  meta:
                    $ref: '#/components/schemas/Meta'
                additionalProperties: true
              example:
                success: true
                data:
                  blockchain: solana
                  token:
                    mint: 3Pkrq4MmLvDXyn1fa3sz5MekKRkZkc1iLDcz5AzWpump
                    symbol: invisibull
                    name: invisibull
                    supply: 1000000000
                    market_cap: 40.08
                    market_cap_usd: 3301.2
                    market_cap_currency: SOL
                    price: 4.008e-08
                    price_usd: 3.3e-06
                    sol_price_usd: 82.36
                    pool: pump
                    on_curve: true
                    bonding_curve_progress: 42.5
                  bundles:
                  - bundle_id: bnd_7f3a2c
                    kol_wallet: 7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW
                    kol_profile:
                      name: Maze
                      image_url: https://cabalspy.xyz/images/7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW.png
                      twitter: https://x.com/MazeCCC
                      telegram: ''
                      blockchain: solana
                      currency: SOL
                      type: kol
                    confidence: 0.92
                    jito_confirmed: true
                    proof_type: same_block
                    slot: 301948220
                    wallet_count: 3
                    proof: slot:301948220
                    verify_hint: check same slot buys on solscan
                    detected_at: '2026-07-04T16:25:34Z'
                    bundle_wallets:
                    - address: 7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW
                      is_kol: true
                      transaction_type: buy
                      signature: 5xr8abc...
                      entry_source: at_discovery
                      position_source: live
                      profile:
                        name: Maze
                        image_url: https://cabalspy.xyz/images/7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW.png
                        twitter: https://x.com/MazeCCC
                        telegram: ''
                        blockchain: solana
                        currency: SOL
                        type: kol
                      position:
                        held: 22113972.03
                        peak: 22113972.03
                        bought_tokens: 22113972.03
                        sold_tokens: 0.0
                        bag_pct: 100.0
                        supply_pct: 2.21
                        invested: 1.66
                        invested_usd: 137.44
                        max_single_buy: 1.66
                        buy_txn: 1
                        sell_txn: 0
                        sold_value: 0.0
                        sold_value_usd: 0.0
                        realized_pnl_sol: 0.0
                        realized_pnl_usd: 0.0
                        entry_market_cap: 44.6
                        entry_market_cap_usd: 3673.2
                        unrealized_pnl_sol: -0.099817
                        unrealized_pnl_usd: -8.22
                        unrealized_pnl_pct: -10.12
                        remaining_sol: 0.886537
                        remaining_usd: 73.02
                        first_buy_at: '2026-07-04T16:25:34Z'
                        last_activity_at: '2026-07-04T16:40:10Z'
                    - address: SideWa11etAbc123...
                      is_kol: false
                      transaction_type: buy
                      signature: 9kp2def...
                      entry_source: at_discovery
                      position_source: live
                      profile:
                        name: ''
                        image_url: ''
                        twitter: ''
                        telegram: ''
                        blockchain: solana
                        currency: SOL
                        type: null
                      fee_lamports: 5000
                      block_index: 4
                      adjacent_to_kol: true
                      same_fee: true
                      occurrences: 7
                      position:
                        held: 8000000.0
                        peak: 8000000.0
                        bought_tokens: 8000000.0
                        sold_tokens: 0.0
                        bag_pct: 100.0
                        supply_pct: 0.8
                        invested: 0.6
                        invested_usd: 49.4
                        max_single_buy: 0.6
                        buy_txn: 1
                        sell_txn: 0
                        sold_value: 0.0
                        sold_value_usd: 0.0
                        realized_pnl_sol: 0.0
                        realized_pnl_usd: 0.0
                        entry_market_cap: 44.6
                        entry_market_cap_usd: 3673.2
                        unrealized_pnl_sol: -0.036
                        unrealized_pnl_usd: -2.97
                        unrealized_pnl_pct: -10.12
                        remaining_sol: 0.32
                        remaining_usd: 26.4
                        first_buy_at: '2026-07-04T16:25:34Z'
                        last_activity_at: '2026-07-04T16:25:34Z'
                meta:
                  request_id: req_5162c7cf7f87
                  cached: false
                  cache_age_seconds: 0
                  version: 1.0.0
                  timestamp: '2026-07-06T11:01:57Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    BadRequest:
      description: Bad request. Code missing_parameter (a required parameter is missing) or invalid_parameter (a parameter is missing or has an invalid value, for example a chain and wallet type combination that does not exist such as eth with whale).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Code rate_limited. Rate limit exceeded (the plan's requests-per-second limit), wait and retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Code forbidden. API key invalid or credits exhausted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Code unauthorized. API key missing.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      description: Error response. The documentation specifies the HTTP status and an error code (missing_parameter, invalid_parameter, unauthorized, forbidden, not_found, rate_limited) but not the exact body layout, so no fields are asserted here.
      additionalProperties: true
    Profile:
      type: object
      description: Wallet profile.
      properties:
        name:
          type: string
          description: Display name (may be empty).
        image_url:
          type: string
          description: Avatar URL.
        twitter:
          type: string
          description: Twitter or X link.
        telegram:
          type: string
          description: Telegram link.
        blockchain:
          type: string
          description: Chain.
        currency:
          type: string
          description: Native currency.
        type:
          type:
          - string
          - 'null'
          description: Wallet type kol, smart or whale.
      additionalProperties: true
    Meta:
      type: object
      description: Request metadata returned with every response.
      properties:
        request_id:
          type: string
        cached:
          type: boolean
        cache_age_seconds:
          type: integer
        version:
          type: string
        timestamp:
          type: string
      additionalProperties: true
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: Your API key as the api_key query parameter.
    BearerAuth:
      type: http
      scheme: bearer
      description: Your API key as an Authorization Bearer header.
externalDocs:
  description: CabalSpy API documentation
  url: https://docs.cabalspy.xyz/