ExchangeRebel Dispute Packet API

The Dispute Packet API from ExchangeRebel — 7 operation(s) for dispute packet.

GitHub OpenAPI

Operations 7

GET /toll/dispute-packet Dispute-Evidence Packet service catalog #
GET /toll/dispute-packet/health Dispute-Evidence Packet service health #
GET /toll/dispute-packet/criteria The published dispute-packet criteria #
GET /toll/dispute-packet/corpus The pinned public test corpus identity #
POST /toll/dispute-packet/precheck Free headline pre-check of one dispute-packet submission #
POST /toll/dispute-packet/packet Full signed dispute-evidence packet for one paid call #
GET /toll/dispute-packet/metrics Dispute-Evidence Packet 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-dispute-packet-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-dispute-packet-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: Dispute Packet
paths:
  /toll/dispute-packet:
    get:
      tags:
      - Dispute Packet
      summary: Dispute-Evidence Packet service catalog
      responses:
        '200':
          description: 'Success. Returns the service catalog: what a dispute-evidence packet includes, the price ($0.05 per packet), the published criteria (settlement-evidence/v1, packet form), the pinned test corpus, and the scope statement (one signed packet for the one paid call you name: the quoted terms, the on-chain-verified payment, and the delivery artefact exactly as submitted. The delivery leg is buyer-submitted, NOT verified delivery; adjudication is NOT offered).'
      security: []
      operationId: getTollDisputePacket
      x-operation-id-source: derived
  /toll/dispute-packet/health:
    get:
      tags:
      - Dispute Packet
      summary: Dispute-Evidence Packet service health
      responses:
        '200':
          description: Success. Returns service liveness and the report signer address.
      security: []
      operationId: getTollDisputePacketHealth
      x-operation-id-source: derived
  /toll/dispute-packet/criteria:
    get:
      tags:
      - Dispute Packet
      summary: The published dispute-packet criteria
      responses:
        '200':
          description: 'Success. Returns the full published criteria (settlement-evidence/v1, packet form): the input contract, the packet legs, the honesty fences (delivery buyer-submitted and not verified; the PAYMENT-RESPONSE header unsigned; adjudication not offered), and the pinned public test corpus identity; every packet is reproducible from them.'
      security: []
      operationId: getTollDisputePacketCriteria
      x-operation-id-source: derived
  /toll/dispute-packet/corpus:
    get:
      tags:
      - Dispute Packet
      summary: The pinned public test corpus identity
      responses:
        '200':
          description: 'Success. Returns the public test corpus identity for the dispute packet: corpus id dispute-evidence-corpus/v1 and its SHA-256 pin 4742fb28cd75380f51e75247e97a9db2969a2c34a74d6ca720dbf10597d97161 (the SHA-256 of the corpus''s canonical serialization, verifiable with the published harness). The corpus is buyer-runnable before paying.'
      security: []
      operationId: getTollDisputePacketCorpus
      x-operation-id-source: derived
  /toll/dispute-packet/precheck:
    post:
      tags:
      - Dispute Packet
      summary: Free headline pre-check of one dispute-packet submission
      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).
                challenge:
                  type: object
                  description: The captured 402 challenge object exactly as issued for the paid call being packeted. Processed in memory only, never stored.
                paymentResponse:
                  type: string
                  description: The PAYMENT-RESPONSE header value from the paid call (base64 JSON string; a raw JSON string or the decoded object are also accepted). Processed in memory only, never stored.
                settlementSignature:
                  type: string
                  description: Optional explicit settlement reference (the settlement transaction signature). When absent, the header's transaction field is the settlement reference.
                delivery:
                  type: object
                  description: 'The delivery artefact AS RECEIVED: {status (integer 100-599), body (string) } or {status, bodyHash (64-hex SHA-256)} - exactly one of body / bodyHash. Buyer-submitted evidence, NOT verified by this service.'
                timestamps:
                  type: object
                  description: Optional timestamps object {challenged_at?, paid_at?, delivered_at?}.
              required:
              - caller
              - challenge
              - paymentResponse
              - delivery
      responses:
        '200':
          description: 'Success. Returns assessability only: whether the submission is well-formed for packet assembly. No chain read is performed and no packet is returned. When the caller''s free allowance is exhausted, the response is the /toll/dispute-packet/packet payment challenge instead.'
      security: []
      operationId: postTollDisputePacketPrecheck
      x-operation-id-source: derived
  /toll/dispute-packet/packet:
    post:
      tags:
      - Dispute Packet
      summary: Full signed dispute-evidence packet for one paid call
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                challenge:
                  type: object
                  description: The captured 402 challenge object exactly as issued for the paid call being packeted. Processed in memory only, never stored.
                paymentResponse:
                  type: string
                  description: The PAYMENT-RESPONSE header value from the paid call (base64 JSON string; a raw JSON string or the decoded object are also accepted). Processed in memory only, never stored.
                settlementSignature:
                  type: string
                  description: Optional explicit settlement reference (the settlement transaction signature). When absent, the header's transaction field is the settlement reference.
                delivery:
                  type: object
                  description: 'The delivery artefact AS RECEIVED: {status (integer 100-599), body (string) } or {status, bodyHash (64-hex SHA-256)} - exactly one of body / bodyHash. Buyer-submitted evidence, NOT verified by this service.'
                timestamps:
                  type: object
                  description: Optional timestamps object {challenged_at?, paid_at?, delivered_at?}.
              required:
              - challenge
              - paymentResponse
              - delivery
      responses:
        '200':
          description: 'Success. Returns the full signed packet: the quoted terms, the payment verified on-chain under settlement-evidence/v1, the delivery artefact labelled BUYER-SUBMITTED - NOT VERIFIED with its service-computed body hash, the empty reverse-transaction field, and the header''s unsigned status stated plainly. Adjudication is not offered.'
        '402':
          description: 'Payment Required (x402). A per-item fee: $0.05 per packet - each dispute-evidence packet you submit is charged at $0.05; the payment includes one signed dispute-evidence packet for the one paid call you name — the terms as quoted in the captured 402 challenge, the payment as settled on-chain (verified with the settlement-evidence/v1 engine for the settlement transaction), the delivery artefact exactly as submitted (status, and body or body hash), timestamps, and an empty reverse-transaction field a seller refund transfer can later fill. The packet is signed by this service''s signing key; the signature covers the packet''s contents as assembled. The delivery artefact is BUYER-SUBMITTED evidence and is NOT verified by this service — the packet proves what was quoted and what was paid, not what was delivered. The PAYMENT-RESPONSE header is UNSIGNED and is stated so plainly. Factors are printed per leg; there is NO composite score. Adjudication is NOT offered: either party can present the packet to any adjudicator. Nothing about the submitted artefacts 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 (50000 USDC units = $0.05 per packet) 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: postTollDisputePacketPacket
      x-operation-id-source: derived
  /toll/dispute-packet/metrics:
    get:
      tags:
      - Dispute Packet
      summary: Dispute-Evidence Packet aggregate counters
      responses:
        '200':
          description: Success. Returns aggregate counters (paid packets, distinct payers, free pre-checks today). Aggregate only - no payer identities, no submitted artefact content.
      security: []
      operationId: getTollDisputePacketMetrics
      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.'