loopholetape-com Free API

no payment

Operations 14

GET /v1/calibration Get the validation tables behind the calibrated probabilities #
GET /health Report feed health: lag behind the chain, last slot, counters #
GET /v1/market/regime Get the pump.fun market regime: launch rate, flow and rugs #
GET /v1/sample/launches Get a three-item sample of recent launches, 300 s delayed #
GET /v1/sample/rugs Get a three-item sample of recent rug flags, 300 s delayed #
GET /v1/sample/mint Get one full risk card for a mint older than 300 seconds #
GET /v1/datasets List the bulk dataset days with sizes, sha256 and links #
GET /v1/track-record Get the radar's daily scorecard against observed outcomes #
GET /v1/keys/balance Read the status and remaining credit of a prepaid key #
GET /v1/radar List new pump.fun memecoins ranked by rug and graduation odds #
GET /v1/rhc/regime Get the Robinhood Chain pons launch regime meter #
GET /v1/check/coverage Check coverage and freshness for one to five mints #
GET /v1/check/watch Poll a watchlist cursor for new risk or lifecycle events #
GET /v1/token_check/{mint} Check any Solana or pons token for rug risk, no payment needed #

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/loopholetape-com:loopholetape-com-free-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

loopholetape-com-free-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: loophole tape Free API
  description: 'Live rug checks for new pump.fun memecoins on Solana (calibrated rug probability and graduation odds, holders, creator record, rug flags) and Robinhood Chain pons launch and token risk cards, computed in real time from our own independent capture of every on-chain event (not resold third-party data). Pay per request in USDC on Solana or Base through x402 with no account: $0.001-$0.04 per data call, $5.00 per daily dataset file; prepaid keys ($0.10 trial, $2.00) serve clients without an x402 library. Responses report coverage, freshness and observed evidence.'
  version: 0.9.0
  x-guidance: 'Machine-payable pump.fun intelligence and Robinhood Chain (pons) launch structure. Call /v1/x402/resources or /llms.txt first. First step, no key and no payment: GET /v1/token_check/{mint} (any Solana mint or Robinhood Chain pons token, or its link) answers a verdict word, one reason and coverage. Paid GET routes return 402 with the x402 v2 PAYMENT-REQUIRED header (and the same JSON in the body); pay USDC on Solana mainnet (Coinbase CDP facilitator) or on Base (Coinbase CDP facilitator), exact scheme, and retry with PAYMENT-SIGNATURE. Without an x402 client, buy a prepaid key once (/v1/keys/trial $0.10 or /v1/keys/new $2.00 in a browser wallet, or GET /v1/keys/transfer to pay with a plain USDC transfer from any wallet or exchange) and send it as the X-API-Key header. Every response is {ok, schema_version, generated_at, coverage: full|thin, data, meta{feed_lag_s, is_stale, next}}. Compact checks cost $0.005 for one mint or $0.01 total for up to five; full coverage and feed lag <= 5 s required. Free: /v1/token_check/{mint}, /v1/radar, /v1/check/coverage, /v1/check/watch, /v1/market/regime, /v1/sample/*, /health, /v1/labels. MCP at /mcp.'
  contact:
    name: loophole tape
    url: https://api.loopholetape.com
    email: hello@loopholetape.com
  termsOfService: https://api.loopholetape.com/terms
servers:
- url: https://api.loopholetape.com
tags:
- name: free
  description: no payment
paths:
  /v1/calibration:
    get:
      summary: Get the validation tables behind the calibrated probabilities
      description: Validation tables behind the calibrated probabilities inside compact checks (free).
      operationId: calibration_v1_calibration_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - free
      security: []
  /health:
    get:
      summary: 'Report feed health: lag behind the chain, last slot, counters'
      operationId: health_health_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: 'feed health: seconds behind the chain, last slot, mints tracked, counters'
      tags:
      - free
      security: []
  /v1/market/regime:
    get:
      summary: 'Get the pump.fun market regime: launch rate, flow and rugs'
      operationId: market_regime_v1_market_regime_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: 'market-wide regime meter: launch rate, mayhem share, buy/sell flow, fail share, migrations vs true graduations, rug flags (free)'
      tags:
      - free
      security: []
  /v1/sample/launches:
    get:
      summary: Get a three-item sample of recent launches, 300 s delayed
      operationId: sample_launches_v1_sample_launches_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: free 3-item sample of /v1/launches/recent, delayed >= 300 s
      tags:
      - free
      security: []
  /v1/sample/rugs:
    get:
      summary: Get a three-item sample of recent rug flags, 300 s delayed
      operationId: sample_rugs_v1_sample_rugs_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: free 3-item sample of /v1/rugs/recent, delayed >= 300 s
      tags:
      - free
      security: []
  /v1/sample/mint:
    get:
      summary: Get one full risk card for a mint older than 300 seconds
      operationId: sample_mint_v1_sample_mint_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: free full risk card of one mint aged >= 300 s (the exact paid shape)
      tags:
      - free
      security: []
  /v1/datasets:
    get:
      summary: List the bulk dataset days with sizes, sha256 and links
      operationId: datasets_index_v1_datasets_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: 'free index of the bulk datasets: days available, rows, bytes, sha256, sample and schema links, how to buy'
      tags:
      - free
      security: []
  /v1/track-record:
    get:
      summary: Get the radar's daily scorecard against observed outcomes
      description: 'Free: the radar''s calls scored against outcomes per complete UTC day (scorecard from chainstack/track_record.py).'
      operationId: track_record_view_v1_track_record_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - free
      security: []
  /v1/keys/balance:
    get:
      summary: Read the status and remaining credit of a prepaid key
      operationId: keys_balance_v1_keys_balance_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: 'free: status and credit remaining on a prepaid key (X-API-Key header); without a key: usage and how to buy one'
      tags:
      - free
      security: []
  /v1/radar:
    get:
      summary: List new pump.fun memecoins ranked by rug and graduation odds
      description: 'Free live radar: top rug risk (age < 30 s) and top graduation probability (age < 15 min), each row one click from the paid check.'
      operationId: radar_view_v1_radar_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 25
          minimum: 1
          default: 10
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - free
      security: []
  /v1/rhc/regime:
    get:
      summary: Get the Robinhood Chain pons launch regime meter
      operationId: rhc_regime_v1_rhc_regime_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      description: 'Robinhood Chain (pons) regime meter: launches/h, graduations/h and rate, median launch-to-graduation seconds, curve buys/sells per minute, unique buyers (free)'
      tags:
      - free
      security: []
  /v1/check/coverage:
    get:
      summary: Check coverage and freshness for one to five mints
      operationId: check_coverage_v1_check_coverage_get
      parameters:
      - name: mints
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 224
          - type: 'null'
          description: One to five comma-separated mint addresses; omitted = usage and mints covered right now
          title: Mints
        description: 'One to five comma-separated mint addresses; omitted = usage and mints covered right now A pasted link works too: pump.fun/coin/<mint>, gmgn.ai/sol/token/<mint>, solscan.io/token/<mint>, birdeye.so/token/<mint>, a Jupiter swap link or solana:<mint>; a DexScreener, Axiom or Photon link only when its id is a mint we know (a pair address is refused 400 pair_address_not_mint). The link is resolved before the 402, which names the resolved mint; an unreadable link is refused 400 url_not_recognised, unpaid.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      description: 'free coverage and freshness check for one to five mints; quotes single and batch prices; called without mints: usage and mints covered right now'
      tags:
      - free
      security: []
  /v1/check/watch:
    get:
      summary: Poll a watchlist cursor for new risk or lifecycle events
      operationId: watchlist_updates_v1_check_watch_get
      parameters:
      - name: mints
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 224
          - type: 'null'
          description: One to five comma-separated mint addresses; omitted = usage and mints covered right now
          title: Mints
        description: 'One to five comma-separated mint addresses; omitted = usage and mints covered right now A pasted link works too: pump.fun/coin/<mint>, gmgn.ai/sol/token/<mint>, solscan.io/token/<mint>, birdeye.so/token/<mint>, a Jupiter swap link or solana:<mint>; a DexScreener, Axiom or Photon link only when its id is a mint we know (a pair address is refused 400 pair_address_not_mint). The link is resolved before the 402, which names the resolved mint; an unreadable link is refused 400 url_not_recognised, unpaid.'
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1024
          - type: 'null'
          title: Cursor
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      description: 'free availability of new risk/lifecycle events for a watchlist; opaque cursor, no event details; called without mints: usage and a ready example'
      tags:
      - free
      security: []
  /v1/token_check/{mint}:
    get:
      summary: Check any Solana or pons token for rug risk, no payment needed
      operationId: token_check
      parameters:
      - name: mint
        in: path
        required: true
        schema:
          type: string
          description: A Solana mint (pump.fun or any other), a Robinhood Chain pons 0x curve or token address, or the token's pasted link.
          examples:
          - 73sfnFgqQzpSRZSimCC4sxpubqghRGYewYLmiUH2pump
          - https://pump.fun/coin/73sfnFgqQzpSRZSimCC4sxpubqghRGYewYLmiUH2pump
          - '0x1d63d24f2d6e726fa53c45cefcbee2c1b8ffa855'
          title: Mint
        description: 'A Solana mint (pump.fun or any other), a Robinhood Chain pons 0x curve or token address, or the token''s pasted link. A pasted link works too: pump.fun/coin/<mint>, gmgn.ai/sol/token/<mint>, solscan.io/token/<mint>, birdeye.so/token/<mint>, a Jupiter swap link or solana:<mint>, or for a Robinhood Chain token its pons link (www.ponsfamily.com/launchpad/<token>) or explorer link (robinhoodchain.blockscout.com/token/<token>). An unreadable link is refused 400 url_not_recognised.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: two different values, or a link no token could be read from (url_not_recognised, pair_address_not_mint)
        '404':
          description: 'not a token id: neither a Solana mint, a 0x address nor a link ({ok:false, error:not_a_token})'
        '429':
          description: the caller's hourly limit or the daily cap across all callers (Retry-After)
        '503':
          description: the pump.fun feed is stale or the checks are starting (feed_stale, checks_unavailable); the call is not counted
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      description: 'free, no key and no payment: the coarse pre-trade check of ONE token, the same answer as the MCP tool token_check. Give it a pump.fun mint, any other Solana mint (a thin answer read from the chain), a Robinhood Chain pons 0x curve or token address, or the token''s pasted link (pump.fun, GMGN, Solscan, Birdeye, Jupiter, pons, Blockscout): a verdict word (avoid | caution | no_flags_observed by the fixed public rule at /v1/labels), one reason, coverage (full | thin | not_covered) and age, with links to the paid detail; also GET /v1/token_check?mint=. 30 calls an hour per caller by default (429 over it) and a daily cap across all callers; no_flags_observed is not a safety verdict'
      tags:
      - free
      security: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
x-discovery:
  ownershipProofs:
  - '0x1c71f60523d95a3b2e350f882830b4413163f2d8b74dd450566c11270928d85f70ee5c55493ae7220554c52055e3ad8f4aac4ccd4ba9043060875bc513940e741b'
  - 59uLEUWTMbhHMLCxHBEkRtq19ASZ3V4m93j6HhRhuydjcbusnSonNhvSvFh2CwPTm9v1huc3Kpnjx1dQRYAeHhFK