ExchangeRebel Recoverability Probe API

The Recoverability Probe API from ExchangeRebel — 7 operation(s) for recoverability probe.

GitHub OpenAPI

Operations 7

GET /toll/recoverability-probe Recoverability Probe service catalog #
GET /toll/recoverability-probe/health Recoverability Probe service health #
GET /toll/recoverability-probe/criteria The published error-recoverability criteria #
GET /toll/recoverability-probe/corpus The pinned public test corpus identity #
POST /toll/recoverability-probe/precheck Free error-recoverability pre-check of one submission (validation and… #
POST /toll/recoverability-probe/probe Full signed error-recoverability report for one attested target (one battery… #
GET /toll/recoverability-probe/metrics Recoverability 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-recoverability-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-recoverability-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: Recoverability Probe
paths:
  /toll/recoverability-probe:
    get:
      tags:
      - Recoverability Probe
      summary: Recoverability Probe service catalog
      responses:
        '200':
          description: 'Success. Returns the service catalog: what an error-recoverability battery run includes, the price ($0.05 per battery run), the published criteria (error-recoverability/v1), the pinned test corpus, and the scope statement (the published 4-call battery - unknown tool, missing required parameter, wrong type, corrected retry - run only against the one target URL the submitting operator attested they own or are authorized to operate; each item is graded on channel used, whether the error names the offending parameter and the expected type/format, and whether the corrected retry succeeds; no composite score is computed; this is not third-party testing).'
      security: []
      operationId: getTollRecoverabilityProbe
      x-operation-id-source: derived
  /toll/recoverability-probe/health:
    get:
      tags:
      - Recoverability Probe
      summary: Recoverability Probe service health
      responses:
        '200':
          description: Success. Returns service liveness and the report signer address.
      security: []
      operationId: getTollRecoverabilityProbeHealth
      x-operation-id-source: derived
  /toll/recoverability-probe/criteria:
    get:
      tags:
      - Recoverability Probe
      summary: The published error-recoverability criteria
      responses:
        '200':
          description: 'Success. Returns the full published criteria (error-recoverability/v1): the input contract, the target-URL policy, the ownership attestation rule, the published battery (error-recoverability-battery/v1, exactly 4 calls), the per-item recoverability rubric, and the pinned public test corpus identity; every report is reproducible from them.'
      security: []
      operationId: getTollRecoverabilityProbeCriteria
      x-operation-id-source: derived
  /toll/recoverability-probe/corpus:
    get:
      tags:
      - Recoverability Probe
      summary: The pinned public test corpus identity
      responses:
        '200':
          description: 'Success. Returns the public test corpus identity for error-recoverability/v1: corpus id error-recoverability-corpus/v1 and its SHA-256 pin 08101caf7d5d32513db5c17acd51e448142c2e011ea1cf3e013bf3bbcd8199f4 (the SHA-256 of the corpus''s canonical serialization, verifiable with the published harness). The corpus is buyer-runnable before paying.'
      security: []
      operationId: getTollRecoverabilityProbeCorpus
      x-operation-id-source: derived
  /toll/recoverability-probe/precheck:
    post:
      tags:
      - Recoverability Probe
      summary: Free error-recoverability pre-check of one submission (validation and…
      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). Free pre-check only.
                target_url:
                  type: string
                  description: The one target URL of the operator's OWN MCP server (http/https, no embedded credentials; loopback/private/link-local targets are refused). The battery POSTs only to this URL, exactly as submitted.
                tool_name:
                  type: string
                  description: Name of one tool on the target server (1-128 characters).
                required_parameter:
                  type: string
                  description: One required parameter of the declared tool.
                expected_type:
                  type: string
                  description: 'The expected type of the required parameter: string, number, integer, boolean, object, or array.'
                valid_arguments:
                  type: object
                  description: The operator's own valid arguments for the declared tool; must contain the required parameter with a value of the expected type.
                attestation:
                  type: object
                  description: 'Ownership attestation: operator_wallet, the published attestation statement verbatim, target_url exactly equal to the submission''s target_url, battery_id error-recoverability-battery/v1, consent true, attested_at within the past 7 days.'
              required:
              - caller
              - target_url
              - tool_name
              - required_parameter
              - expected_type
              - valid_arguments
              - attestation
      responses:
        '200':
          description: 'Success. Returns assessability only: whether the submission is in-policy (URL policy, tool declaration, and ownership attestation all validated). NO probe runs, NO target call is made, and no report is returned. When the caller''s free allowance is exhausted, the response is the /toll/recoverability-probe/probe payment challenge instead.'
      security: []
      operationId: postTollRecoverabilityProbePrecheck
      x-operation-id-source: derived
  /toll/recoverability-probe/probe:
    post:
      tags:
      - Recoverability Probe
      summary: Full signed error-recoverability report for one attested target (one battery…
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                target_url:
                  type: string
                  description: The one target URL of the operator's OWN MCP server (http/https, no embedded credentials; loopback/private/link-local targets are refused). The battery POSTs only to this URL, exactly as submitted.
                tool_name:
                  type: string
                  description: Name of one tool on the target server (1-128 characters).
                required_parameter:
                  type: string
                  description: One required parameter of the declared tool.
                expected_type:
                  type: string
                  description: 'The expected type of the required parameter: string, number, integer, boolean, object, or array.'
                valid_arguments:
                  type: object
                  description: The operator's own valid arguments for the declared tool; must contain the required parameter with a value of the expected type.
                attestation:
                  type: object
                  description: 'Ownership attestation: operator_wallet, the published attestation statement verbatim, target_url exactly equal to the submission''s target_url, battery_id error-recoverability-battery/v1, consent true, attested_at within the past 7 days.'
              required:
              - target_url
              - tool_name
              - required_parameter
              - expected_type
              - valid_arguments
              - attestation
      responses:
        '200':
          description: 'Success. Returns the full signed report: the published 4-call battery (unknown tool, missing required parameter, wrong type, corrected retry) run against the one attested target URL, each item graded against the published rubric of error-recoverability/v1 (channel used; whether the error names the offending parameter and the expected type/format; whether the corrected retry succeeds), with every factor printed and a bounded excerpt (at most 500 characters) of the target''s own response per item quoted as evidence. No composite score is computed.'
        '402':
          description: 'Payment Required (x402). A per-item fee: $0.05 per battery run - the payment includes: one run of the published error-recoverability battery (error-recoverability-battery/v1, exactly 4 calls: unknown tool, missing required parameter, wrong type, corrected retry) against the one target URL you attested you own or are authorized to operate, and one signed report grading each battery item against the published rubric of error-recoverability/v1 (channel used; whether the error names the offending parameter and the expected type/format; whether the corrected retry succeeds), with every factor printed and a bounded excerpt (at most 500 characters) of your own server''s response for each item quoted as evidence inside the report. No composite score is computed. A free pre-check validates the submission, the target-URL policy, and the ownership attestation only — it runs NO probe and returns no report. Target responses are processed in memory only and are never stored beyond the excerpts inside your report; the payments ledger records only the payer, the time, the price, the per-grade counts, and the report line. The response body carries the payment instructions in x402 v1 form: payTo (the operator''s Solana wallet), the amount (50000 USDC units = $0.05 per battery run) 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 submission in 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.05'
      security:
      - x402Payment: []
      operationId: postTollRecoverabilityProbeProbe
      x-operation-id-source: derived
  /toll/recoverability-probe/metrics:
    get:
      tags:
      - Recoverability Probe
      summary: Recoverability Probe aggregate counters
      responses:
        '200':
          description: Success. Returns aggregate counters (paid probes, distinct payers, free pre-checks today). Aggregate only - no payer identities, no target URLs, no target response content.
      security: []
      operationId: getTollRecoverabilityProbeMetrics
      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.'