cabalspy-xyz Signals API

Live and historical cluster, entry and exit signals.

Operations 2

GET /signals Live signals #
GET /signals/history Signals history #

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-signals-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-signals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CabalSpy Signals 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: Signals
  description: Live and historical cluster, entry and exit signals.
paths:
  /signals:
    get:
      operationId: getSignals
      summary: Live signals
      description: Live trade signals derived from tracked wallet activity in a recent window. cluster mode surfaces tokens where several tracked wallets are buying at once; entry and exit return individual buy and sell events in the transactions feed shape (with holdings_after). The documented response schema describes cluster mode. Costs 10 credits per request.
      tags:
      - Signals
      externalDocs:
        url: https://docs.cabalspy.xyz/signals
      parameters:
      - name: blockchain
        in: query
        required: true
        description: Chain. One of solana, bnb, base, eth.
        schema:
          type: string
          enum:
          - solana
          - bnb
          - base
          - eth
          - rh
      - name: type
        in: query
        required: true
        description: Wallet category kol, smart or whale.
        schema:
          type: string
          enum:
          - kol
          - smart
          - whale
      - name: mode
        in: query
        required: true
        description: Signal mode. One of cluster, entry, exit.
        schema:
          type: string
          enum:
          - cluster
          - entry
          - exit
      - name: min_wallets
        in: query
        required: false
        description: cluster mode. Minimum number of wallets buying the same token to form a cluster.
        schema:
          type: integer
      - name: min_value
        in: query
        required: false
        description: Minimum trade value to consider (native).
        schema:
          type: number
      - name: hours
        in: query
        required: false
        description: Time window in hours to look back for signals.
        schema:
          type: number
      - name: limit
        in: query
        required: false
        description: Maximum number of signals to return.
        schema:
          type: integer
      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
                      wallet_types:
                        type: array
                        items: {}
                        description: The wallet types included.
                      currency:
                        type: string
                      filters:
                        type: object
                        additionalProperties: true
                        description: The applied filters (min_win_rate, include_wallets, exclude_wallets, min_token_age_hours, max_token_age_hours).
                      signals:
                        type: array
                        description: Signals. Item shape shown is for cluster mode.
                        items:
                          type: object
                          properties:
                            token:
                              type: object
                              additionalProperties: true
                              description: Token block (mint, token_name, blockchain, currency, token_supply, token_decimals).
                            signal_type:
                              type: string
                              description: cluster.
                            signal_strength:
                              type: string
                              description: strong or medium, based on how many wallets qualified.
                            currency:
                              type: string
                            gate:
                              type: object
                              additionalProperties: true
                              description: Whether the gate was met and the thresholds used.
                            window:
                              type: object
                              properties:
                                hours:
                                  type: number
                                wallet_count:
                                  type: integer
                                by_type:
                                  type: object
                                  additionalProperties: true
                                  description: Wallet counts split by type.
                                total_invested:
                                  type: number
                                total_invested_usd:
                                  type: number
                                first_buy_at:
                                  type: string
                                latest_buy_at:
                                  type: string
                                time_span_minutes:
                                  type: number
                              additionalProperties: true
                            token_stats:
                              type: object
                              additionalProperties: true
                              description: Whole history token stats (total_buyers, still_holding_count, active_count, total_volume, total_volume_usd, net_flow, holders_by_type, first_entry_time).
                            wallets:
                              type: array
                              items:
                                type: object
                                properties:
                                  profile:
                                    $ref: '#/components/schemas/Profile'
                                  wallet_type:
                                    type: string
                                  win_rate:
                                    type:
                                    - number
                                    - 'null'
                                    description: Lifetime win rate, only when min_win_rate was requested, otherwise null.
                                  window_invested:
                                    type: number
                                  window_invested_usd:
                                    type: number
                                  window_buy_txn:
                                    type: integer
                                  window_sell_txn:
                                    type: integer
                                  sold_in_window:
                                    type: boolean
                                  bought_at:
                                    type: string
                                  realized_pnl:
                                    type: number
                                  realized_pnl_usd:
                                    type: number
                                  realized_pnl_percentage:
                                    type: number
                                  bag_pct:
                                    type: number
                                  supply_pct:
                                    type: number
                                  still_holding:
                                    type: boolean
                                  is_active:
                                    type: boolean
                                    description: True when bag_pct is above 1 percent.
                                additionalProperties: true
                          additionalProperties: true
                      pagination:
                        $ref: '#/components/schemas/Pagination'
                    additionalProperties: true
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                  meta:
                    $ref: '#/components/schemas/Meta'
                additionalProperties: true
              example:
                success: true
                data:
                  blockchain: solana
                  wallet_types:
                  - kol
                  currency: SOL
                  filters:
                    min_win_rate: null
                    include_wallets: null
                    exclude_wallets: null
                    min_token_age_hours: null
                    max_token_age_hours: null
                  signals:
                  - token:
                      mint: 3Pkrq4MmLvDXyn1fa3sz5MekKRkZkc1iLDcz5AzWpump
                      token_name: invisibull
                      blockchain: solana
                      currency: SOL
                      token_supply: 1000000000
                      token_decimals: 6
                    signal_type: cluster
                    signal_strength: strong
                    currency: SOL
                    gate:
                      met: true
                      wallet_types:
                      - kol
                      thresholds:
                        kol: 3
                    window:
                      hours: 1
                      wallet_count: 5
                      by_type:
                        kol: 5
                      total_invested: 12.4
                      total_invested_usd: 1021.4
                      first_buy_at: '2026-07-06T10:20:00Z'
                      latest_buy_at: '2026-07-06T10:52:00Z'
                      time_span_minutes: 32.0
                    token_stats:
                      total_buyers: 12
                      still_holding_count: 8
                      active_count: 7
                      total_volume: 44.6
                      total_volume_usd: 3673.2
                      net_flow: 30.1
                      holders_by_type:
                        kol_count: 5
                        smart_count: 0
                        whale_count: 0
                      first_entry_time: '2026-07-06T09:58:00Z'
                    wallets:
                    - profile:
                        name: Maze
                        image_url: https://cabalspy.xyz/images/7j7AA3HZR2zEjwAQEKPFh2qucLY4fqZpB9iodf39w8xW.png
                        twitter: https://x.com/MazeCCC
                        telegram: ''
                        blockchain: solana
                        currency: SOL
                        type: kol
                      wallet_type: kol
                      win_rate: null
                      window_invested: 3.2
                      window_invested_usd: 263.6
                      window_buy_txn: 1
                      window_sell_txn: 0
                      sold_in_window: false
                      bought_at: '2026-07-06T10:20:00Z'
                      realized_pnl: 0.0
                      realized_pnl_usd: 0.0
                      realized_pnl_percentage: 0.0
                      bag_pct: 100.0
                      supply_pct: 0.32
                      still_holding: true
                      is_active: true
                pagination:
                  limit: 50
                  total: 1
                  has_more: false
                  next_cursor: null
                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'
  /signals/history:
    get:
      operationId: getSignalsHistory
      summary: Signals history
      description: Historical cluster signals that would have fired on past days, for backtesting a cluster strategy. Each entry carries the token, how many wallets clustered, how much they invested, the day and triggered_at. Costs 10 credits per request.
      tags:
      - Signals
      externalDocs:
        url: https://docs.cabalspy.xyz/signals-history
      parameters:
      - name: blockchain
        in: query
        required: true
        description: Chain. One of solana, bnb, base, eth.
        schema:
          type: string
          enum:
          - solana
          - bnb
          - base
          - eth
          - rh
      - name: type
        in: query
        required: true
        description: Wallet category kol, smart or whale.
        schema:
          type: string
          enum:
          - kol
          - smart
          - whale
      - name: days
        in: query
        required: false
        description: How many past days to include.
        schema:
          type: integer
      - name: limit
        in: query
        required: false
        description: Maximum number of signals to return.
        schema:
          type: integer
      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
                      wallet_types:
                        type: array
                        items: {}
                        description: The wallet types included.
                      days:
                        type: integer
                        description: The number of past days included.
                      filters:
                        type: object
                        additionalProperties: true
                        description: Applied filters (min_win_rate, include_wallets, exclude_wallets).
                      signals:
                        type: array
                        items:
                          type: object
                          properties:
                            mint:
                              type: string
                            token_name:
                              type: string
                            token_supply:
                              type: number
                            signal_type:
                              type: string
                              description: cluster.
                            signal_strength:
                              type: string
                              description: strong or medium.
                            wallet_count:
                              type: integer
                            by_type:
                              type: object
                              additionalProperties: true
                              description: Wallet counts split by type.
                            total_invested:
                              type: number
                            total_invested_usd:
                              type:
                              - number
                              - 'null'
                              description: Total invested in USD, or null if no price was available.
                            currency:
                              type: string
                            triggered_at:
                              type: string
                              description: When the first buy of the cluster happened.
                            day:
                              type: string
                              description: The day this signal belongs to.
                            window:
                              type: string
                              description: The aggregation window, 1d.
                            would_have_fired:
                              type: boolean
                              description: Whether the signal would have fired under the thresholds.
                          additionalProperties: true
                    additionalProperties: true
                  meta:
                    $ref: '#/components/schemas/Meta'
                additionalProperties: true
              example:
                success: true
                data:
                  blockchain: solana
                  wallet_types:
                  - kol
                  days: 7
                  filters:
                    min_win_rate: null
                    include_wallets: null
                    exclude_wallets: null
                  signals:
                  - mint: 3Pkrq4MmLvDXyn1fa3sz5MekKRkZkc1iLDcz5AzWpump
                    token_name: invisibull
                    token_supply: 1000000000
                    signal_type: cluster
                    signal_strength: strong
                    wallet_count: 5
                    by_type:
                      kol: 5
                    total_invested: 12.4
                    total_invested_usd: 1021.4
                    currency: SOL
                    triggered_at: '2026-07-04T16:25:34Z'
                    day: '2026-07-04'
                    window: 1d
                    would_have_fired: true
                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
    Pagination:
      type: object
      description: Standard pagination object. Depending on the endpoint it appears inside data or next to data at the top level of the response.
      properties:
        limit:
          type:
          - integer
          - 'null'
          description: Requested page size (null means all).
        total:
          type: integer
          description: Total number of items.
        has_more:
          type: boolean
          description: Whether more pages follow.
        next_cursor:
          type:
          - string
          - 'null'
          description: Cursor for the next page (null means end).
      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/