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.
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: Settlement
paths:
/toll/settlement:
get:
tags:
- Settlement
summary: Settlement Verification service catalog
responses:
'200':
description: 'Success. Returns the service catalog: what a settlement lookup includes, the price ($0.01 per lookup), the published criteria (settlement-evidence/v1), the pinned test corpus, and the scope statement (a per-payment live chain read: one transaction signature plus the expected fields you supply, graded SETTLED-MATCH / SETTLED-MISMATCH / NOT-FOUND / PENDING / FAILED against the chain; no other transaction is read).'
security: []
operationId: getTollSettlement
x-operation-id-source: derived
/toll/settlement/health:
get:
tags:
- Settlement
summary: Settlement Verification service health
responses:
'200':
description: Success. Returns service liveness and the report signer address.
security: []
operationId: getTollSettlementHealth
x-operation-id-source: derived
/toll/settlement/criteria:
get:
tags:
- Settlement
summary: The published settlement verification criteria
responses:
'200':
description: 'Success. Returns the full published criteria (settlement-evidence/v1): the input contract, the five verdict states, the finality bar (finalized), the field-grading rules, the scope block, and the pinned public test corpus identity; every report is reproducible from them.'
security: []
operationId: getTollSettlementCriteria
x-operation-id-source: derived
/toll/settlement/corpus:
get:
tags:
- Settlement
summary: The pinned public test corpus identity
responses:
'200':
description: 'Success. Returns the public test corpus identity for settlement-evidence/v1: corpus id settlement-evidence-corpus/v1 and its SHA-256 pin 31adfeff91395e8f8a0ef01a8a1f1cb1e9cc8cedfafbe30a16d0fdd4cadc7568 (the SHA-256 of the corpus''s canonical serialization, verifiable with the published harness). The corpus is buyer-runnable before paying.'
security: []
operationId: getTollSettlementCorpus
x-operation-id-source: derived
/toll/settlement/precheck:
post:
tags:
- Settlement
summary: Free headline settlement pre-check of one transaction signature
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).
signature:
type: string
description: The one Solana transaction signature to verify. Read live from the chain at call time; never stored.
expected:
type: object
description: 'The expected settlement fields: payTo (wallet), amountUnits (USDC micro-units), and optionally tokenAccount and memo.'
required:
- caller
- signature
responses:
'200':
description: 'Success. Returns assessability only: whether the signature and expected fields are well-formed and the lookup can be graded. No chain read is performed and no verdict is returned. When the caller''s free allowance is exhausted, the response is the /toll/settlement/verify payment challenge instead.'
security: []
operationId: postTollSettlementPrecheck
x-operation-id-source: derived
/toll/settlement/verify:
post:
tags:
- Settlement
summary: Full signed settlement verification for one named transaction
requestBody:
content:
application/json:
schema:
type: object
properties:
signature:
type: string
description: The one Solana transaction signature to verify. Read live from the chain at call time; never stored.
expected:
type: object
description: 'The expected settlement fields: payTo (wallet), amountUnits (USDC micro-units), and optionally tokenAccount and memo.'
required:
- signature
- expected
responses:
'200':
description: 'Success. Returns the full signed report: the verdict (SETTLED-MATCH, SETTLED-MISMATCH with the mismatching field named, NOT-FOUND, PENDING, or FAILED), the fields as found on-chain, and an as-of timestamp. The looked-up transaction content is never stored.'
'402':
description: 'Payment Required (x402). A per-item fee: $0.01 per lookup - each transaction signature you submit is charged at $0.01; the payment includes one settlement lookup — one Solana transaction signature plus the expected fields you supply (payTo wallet, expected amount in USDC micro-units, and optionally an expected token account and an expected memo) — returned as the fields as found on-chain, one verdict (SETTLED-MATCH / SETTLED-MISMATCH with the mismatching field named / NOT-FOUND / PENDING / FAILED), and an as-of timestamp. The lookup reads the chain once at call time; nothing about the looked-up transaction is stored beyond the payments ledger''s closed field list. The response body carries the payment instructions in x402 v1 form: payTo (the operator''s Solana wallet), the amount (10000 USDC units = $0.01 per lookup) 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 lookup 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.01'
security:
- x402Payment: []
operationId: postTollSettlementVerify
x-operation-id-source: derived
/toll/settlement/metrics:
get:
tags:
- Settlement
summary: Settlement Verification aggregate counters
responses:
'200':
description: Success. Returns aggregate counters (paid lookups, distinct payers, free pre-checks today). Aggregate only - no payer identities, no looked-up transaction content.
security: []
operationId: getTollSettlementMetrics
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.'