ExchangeRebel Rail Probe API

The Rail Probe API from ExchangeRebel — 7 operation(s) for rail probe.

GitHub OpenAPI

Operations 7

GET /toll/rail-probe Rail Probe service catalog #
GET /toll/rail-probe/health Rail Probe service health #
GET /toll/rail-probe/criteria The published rail-probe criteria #
GET /toll/rail-probe/corpus The pinned public test corpus identity #
POST /toll/rail-probe/precheck Free headline pre-check of one endpoint URL #
POST /toll/rail-probe/probe Full signed rail-coverage and reject-shape probe report for one endpoint #
GET /toll/rail-probe/metrics Rail Probe aggregate counters #

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/exchangerebel-com:exchangerebel-com-rail-probe-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

exchangerebel-com-rail-probe-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ExchangeRebel — pay-per-call APIs for AI agents (x402 on…
  version: 1.0.0
  contact:
    name: 'ExchangeRebel (operator: Rebel Data)'
    url: https://exchangerebel.com
    email: sound.money.investing@gmail.com
  x-guidance: 'All paid operations use x402 on Solana: call without payment to get a 402 challenge (SOL recipient + USDC token account + fresh memo), pay with the memo attached via the Solana Memo program, then retry with header X-Payment-Tx: <signature> and ?toll_memo=<memo>. Challenges are dual-version: the PAYMENT-REQUIRED header carries the x402 v2 PaymentRequired object and the response body carries the same challenge in x402 v1 form for compatibility. Free operations (security: []) include each service''s /health catalog with full response shapes. Prices in x-payment-info are USD per call unless the summary says otherwise (RPC is per 1,000-request block; Telegram provisioning is per bot-month; transcription is per minute of audio).'
  description: '67 data and utility APIs behind x402 tolls, settled in SOL or USDC on Solana. Call a paid endpoint without payment to receive a 402 x402 challenge (recipient + fresh memo), pay with the memo attached via the Solana Memo program, then retry with the X-Payment-Tx header and toll_memo query parameter. Free catalog/health endpoints are marked without x-payment-info. Full catalogs: GET /toll/discovery and each service''s /health.'
servers:
- url: https://exchangerebel.com
tags:
- name: Rail Probe
paths:
  /toll/rail-probe:
    get:
      tags:
      - Rail Probe
      summary: Rail Probe service catalog
      responses:
        '200':
          description: 'Success. Returns the service catalog: what a rail-coverage probe report includes, the price ($0.02 per endpoint), the published criteria (payability/v1), the pinned test corpus, and the scope statement (the published 7-probe set run against the one named endpoint - rail coverage and reject shapes only, under the NO-FUNDS property: every probe payload is cryptographically invalid and no probe can move funds).'
      security: []
      operationId: getTollRailProbe
      x-operation-id-source: derived
  /toll/rail-probe/health:
    get:
      tags:
      - Rail Probe
      summary: Rail Probe service health
      responses:
        '200':
          description: Success. Returns service liveness and the report signer address.
      security: []
      operationId: getTollRailProbeHealth
      x-operation-id-source: derived
  /toll/rail-probe/criteria:
    get:
      tags:
      - Rail Probe
      summary: The published rail-probe criteria
      responses:
        '200':
          description: 'Success. Returns the full published criteria (payability/v1): the 7-probe set, the rail grade set (PRESENT-FAIL-CLOSED / PRESENT-FAIL-DIRTY / ABSENT), the method matrix, the exposure findings, the no-funds property, and the pinned public test corpus identity; every report is reproducible from them.'
      security: []
      operationId: getTollRailProbeCriteria
      x-operation-id-source: derived
  /toll/rail-probe/corpus:
    get:
      tags:
      - Rail Probe
      summary: The pinned public test corpus identity
      responses:
        '200':
          description: 'Success. Returns the public test corpus identity for the rail probe: corpus id rail-probe-corpus/v1 and its SHA-256 pin c9ffbe1b7ec012d1e093d9bdc28e4cc0299b207af9729c84b1c717cb797d340f (the SHA-256 of the corpus''s canonical serialization, verifiable with the published harness). The corpus is buyer-runnable before paying.'
      security: []
      operationId: getTollRailProbeCorpus
      x-operation-id-source: derived
  /toll/rail-probe/precheck:
    post:
      tags:
      - Rail Probe
      summary: Free headline pre-check of one endpoint URL
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                caller:
                  type: string
                  description: Solana base58 wallet of the operator; keys the free allowance (100/day per wallet).
                url:
                  type: string
                  description: The one endpoint URL the 7-probe set runs against after payment. Probe responses are processed in memory only and never stored.
              required:
              - caller
              - url
      responses:
        '200':
          description: 'Success. Returns assessability only: whether the URL is in-policy. The endpoint is NOT probed and no grade is returned. When the caller''s free allowance is exhausted, the response is the /toll/rail-probe/probe payment challenge instead.'
      security: []
      operationId: postTollRailProbePrecheck
      x-operation-id-source: derived
  /toll/rail-probe/probe:
    post:
      tags:
      - Rail Probe
      summary: Full signed rail-coverage and reject-shape probe report for one endpoint
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: The one endpoint URL the 7-probe set runs against after payment. Probe responses are processed in memory only and never stored.
              required:
              - url
      responses:
        '200':
          description: 'Success. Returns the full signed report: the 7-probe outcomes, a grade per rail (PRESENT-FAIL-CLOSED, PRESENT-FAIL-DIRTY, or ABSENT), the HEAD/GET/POST method matrix, every named exposure finding observed, and an as-of timestamp. Probe responses are processed in memory only and are never stored.'
        '402':
          description: 'Payment Required (x402). A per-item fee: $0.02 per endpoint - each endpoint URL you submit is charged at $0.02; the payment includes the full published 7-probe set run against that one endpoint after payment verification (baseline GET, HEAD, POST-unpaid, direct-rail garbage probe, facilitator-rail garbage probe, missing-memo probe, bogus-header probe), a grade per rail (PRESENT-FAIL-CLOSED, PRESENT-FAIL-DIRTY, or ABSENT — an ABSENT rail is reported as payment never evaluated, exactly as observed), the missing-memo and bogus-header outcomes graded by the same rules, the HEAD/GET/POST method matrix (which methods answer 402 vs 200-unpaid), every named exposure finding observed, and an as-of timestamp, in one signed report. NO-FUNDS PROPERTY: every probe payload is payment-shaped but cryptographically invalid by construction — no probe can move funds; the probes test fail-closed behaviour only. No composite score is computed. A free pre-check validates the submitted URL against the published target-URL policy only — it does not probe the endpoint and returns no grade. Probe responses are processed in memory only and are never stored; the payments ledger records only the payer, the time, the price, the two rail grades, the exposure count, and the verdict line. The response body carries the payment instructions in x402 v1 form: payTo (the operator''s Solana wallet), the amount (20000 USDC units = $0.02 per endpoint) and a fresh memo. Pay in USDC on Solana with the memo attached via the Solana Memo program, then resubmit the same request with the payment transaction in the X-Payment-Tx header and ?toll_memo=<memo>, re-sending the request body. The PAYMENT-REQUIRED response header carries the same object in x402 v2 form.'
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.02'
      security:
      - x402Payment: []
      operationId: postTollRailProbeProbe
      x-operation-id-source: derived
  /toll/rail-probe/metrics:
    get:
      tags:
      - Rail Probe
      summary: Rail Probe aggregate counters
      responses:
        '200':
          description: Success. Returns aggregate counters (paid probes, distinct payers, free pre-checks today). Aggregate only - no payer identities, no probed URL or probe content.
      security: []
      operationId: getTollRailProbeMetrics
      x-operation-id-source: derived
components:
  securitySchemes:
    x402Payment:
      type: apiKey
      in: header
      name: X-Payment-Tx
      description: 'x402 toll payment proof: the Solana transaction signature of a payment carrying the memo from the 402 challenge; send together with ?toll_memo=<memo>. Payment itself is made on-chain in SOL or USDC to the recipient named in the challenge.'