ExchangeRebel Subset-S Reconciliation API

The Subset-S Reconciliation API from ExchangeRebel — 7 operation(s) for subset-s reconciliation.

GitHub OpenAPI

Operations 7

GET /toll/subset-reconcile Subset-S Reconciliation service catalog #
GET /toll/subset-reconcile/health Subset-S Reconciliation service health #
GET /toll/subset-reconcile/criteria The published subset-S reconciliation criteria #
GET /toll/subset-reconcile/corpus The pinned public test corpus identity #
POST /toll/subset-reconcile/precheck Free pre-check: validation + F1-F9 assessability + pricing census +… #
POST /toll/subset-reconcile/reconcile Reconcile one run inside subset S ($0.05 per started 1,000-step block) #
GET /toll/subset-reconcile/metrics Subset-S Reconciliation 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-subset-s-reconciliation-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-subset-s-reconciliation-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: Subset-S Reconciliation
paths:
  /toll/subset-reconcile:
    get:
      tags:
      - Subset-S Reconciliation
      summary: Subset-S Reconciliation service catalog
      responses:
        '200':
          description: 'Success. Returns the service catalog: what a subset-S reconciliation report includes, the per-block price ($0.05 per started 1,000-step block; one run up to 1,000 steps = $0.05; NO $5 attestation rung exists), the published criteria (subset-s-reconciliation/v1), the pinned test corpus, and the coverage statement (totals are totals of the listed, bound, settled slice only).'
      security: []
      operationId: getTollSubsetReconcile
      x-operation-id-source: derived
  /toll/subset-reconcile/health:
    get:
      tags:
      - Subset-S Reconciliation
      summary: Subset-S Reconciliation service health
      responses:
        '200':
          description: Success. Returns service liveness and the report signer address.
      security: []
      operationId: getTollSubsetReconcileHealth
      x-operation-id-source: derived
  /toll/subset-reconcile/criteria:
    get:
      tags:
      - Subset-S Reconciliation
      summary: The published subset-S reconciliation criteria
      responses:
        '200':
          description: 'Success. Returns the full published criteria (subset-s-reconciliation/v1): factors F1-F9 (no composite score), the memo-binding forms (subset-s:<run_id>:<task_key>:<nonce> and its hashed/echo variants), the per-block fee rule, the coverage block verbatim, and the pinned public test corpus identity; every report is reproducible from them.'
      security: []
      operationId: getTollSubsetReconcileCriteria
      x-operation-id-source: derived
  /toll/subset-reconcile/corpus:
    get:
      tags:
      - Subset-S Reconciliation
      summary: The pinned public test corpus identity
      responses:
        '200':
          description: 'Success. Returns the public test corpus identity for subset-S reconciliation: corpus subset-s-reconciliation-corpus/v1 and its SHA-256 pin f267bb4a42ff85f48846445d100935de54e7b8c1adfd5a96b7615ad0c9df1c49 (the SHA-256 of the corpus''s canonical serialization). The corpus is buyer-runnable before paying.'
      security: []
      operationId: getTollSubsetReconcileCorpus
      x-operation-id-source: derived
  /toll/subset-reconcile/precheck:
    post:
      tags:
      - Subset-S Reconciliation
      summary: 'Free pre-check: validation + F1-F9 assessability + pricing census +…'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                format_version:
                  type: string
                  description: Must be "subset-s-run/1".
                run_id:
                  type: string
                  description: The run key (no ':' characters - the memo form is colon-delimited).
                agent_id:
                  type: string
                window_start:
                  type: string
                window_end:
                  type: string
                task_key:
                  type: string
                  description: The task key the settlements are bound to.
                declared_total_amount_units:
                  type: string
                declared_total_currency:
                  type: string
                steps:
                  type: array
                  description: The run's step records (tool steps may carry settlement_ref; model steps are unpriced by the chain).
                settlements:
                  type: array
                  description: 'Settlement records claimed as anchors: tx_signature, chain, run_id, task_key, memo_form, memo_expected, payer/payee wallets, amount_units.'
                caller:
                  type: string
                  description: Solana base58 wallet of the operator; keys the free allowance (100/day per wallet).
              required:
              - format_version
              - run_id
              - steps
      responses:
        '200':
          description: Success. Returns assessability and the exact fee quote for the submitted run (blocks = ceil(steps/1000), fee = blocks x 50000 units). No settlement is resolved and no report is produced. A malformed run is refused free with named reasons. When the caller's free allowance is exhausted, the response is the /toll/subset-reconcile payment challenge instead.
      security: []
      operationId: postTollSubsetReconcilePrecheck
      x-operation-id-source: derived
  /toll/subset-reconcile/reconcile:
    post:
      tags:
      - Subset-S Reconciliation
      summary: Reconcile one run inside subset S ($0.05 per started 1,000-step block)
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                format_version:
                  type: string
                  description: Must be "subset-s-run/1".
                run_id:
                  type: string
                  description: The run key (no ':' characters - the memo form is colon-delimited).
                agent_id:
                  type: string
                window_start:
                  type: string
                window_end:
                  type: string
                task_key:
                  type: string
                  description: The task key the settlements are bound to.
                declared_total_amount_units:
                  type: string
                declared_total_currency:
                  type: string
                steps:
                  type: array
                  description: The run's step records (tool steps may carry settlement_ref; model steps are unpriced by the chain).
                settlements:
                  type: array
                  description: 'Settlement records claimed as anchors: tx_signature, chain, run_id, task_key, memo_form, memo_expected, payer/payee wallets, amount_units.'
              required:
              - format_version
              - run_id
              - steps
      responses:
        '200':
          description: 'Success. Returns the signed report: factors F1-F9 (no composite score), settlement-anchored vs operator-asserted figures under those exact labels, each anchored step''s binding evidence, the reconciliation result, and the coverage block verbatim.'
        '402':
          description: 'Payment Required (x402). A per-block fee: $0.05 per started 1,000-step block (one run up to 1,000 steps = $0.05; fee = $0.05 x ceil(steps/1000), quoted exactly at the free pre-check). There is NO $5 attestation rung. Your payment includes one signed attribution report for one submitted run of up to 1,000 steps: the verdict line and all factors (F1-F9), the full step listing with evidence classes, all rollups, the reconciliation result, and the scope wording. It does not include retention of your submitted records (they are discarded), any spend approval or budget check, or attribution of any run you did not submit. The response body carries the payment instructions in x402 v1 form: payTo (the operator''s Solana wallet), the amount (the block-quoted units for the submitted 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 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: postTollSubsetReconcileReconcile
      x-operation-id-source: derived
  /toll/subset-reconcile/metrics:
    get:
      tags:
      - Subset-S Reconciliation
      summary: Subset-S Reconciliation aggregate counters
      responses:
        '200':
          description: Success. Returns aggregate counters (paid reports, distinct payers, free pre-checks today). Aggregate only - no payer identities, no submitted content.
      security: []
      operationId: getTollSubsetReconcileMetrics
      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.'