ExchangeRebel Memory Provenance Audit API

The Memory Provenance Audit API from ExchangeRebel — 12 operation(s) for memory provenance audit.

GitHub OpenAPI

Operations 12

GET /toll/provenance Memory Provenance Audit service catalog #
GET /toll/provenance/health Memory Provenance Audit service health #
GET /toll/provenance/criteria The published memory-provenance criteria #
GET /toll/provenance/corpus The pinned public test corpus identity #
POST /toll/provenance/precheck Free pre-check: format recognition, record count, assessability preview and the… #
POST /toll/provenance/audit Audit one submitted memory export's revision record ($0.05 per block) #
POST /toll/provenance/session Open a chunked submission session from a manifest (free) #
PUT /toll/provenance/session/{id}/parts/{part} Upload one session part (free) #
POST /toll/provenance/precheck-chunked Free pre-check over an assembled chunked session (same 100/day allowance) #
POST /toll/provenance/audit-chunked Audit an assembled chunked session's export ($0.05 per block) #
POST /toll/provenance/receipt Anchored receipt for one issued verdict ($5.00) #
GET /toll/provenance/metrics Memory Provenance Audit 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-memory-provenance-audit-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-memory-provenance-audit-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: Memory Provenance Audit
paths:
  /toll/provenance:
    get:
      tags:
      - Memory Provenance Audit
      summary: Memory Provenance Audit service catalog
      responses:
        '200':
          description: 'Success. Returns the service catalog: what a Memory Provenance Audit includes, the price ($0.05 per block; one block is up to 10,000 claim records AND up to 10 MB, whichever is reached first; $5.00 for the optional anchored receipt), the published criteria (memory-provenance-audit/v1), the pinned public test corpus, and the scope statement (the revision record of the submitted export only - no truth verification, no whole-store certification, no composite score).'
      security: []
      operationId: getTollProvenance
      x-operation-id-source: derived
  /toll/provenance/health:
    get:
      tags:
      - Memory Provenance Audit
      summary: Memory Provenance Audit service health
      responses:
        '200':
          description: Success. Returns service liveness and the report signer address.
      security: []
      operationId: getTollProvenanceHealth
      x-operation-id-source: derived
  /toll/provenance/criteria:
    get:
      tags:
      - Memory Provenance Audit
      summary: The published memory-provenance criteria
      responses:
        '200':
          description: 'Success. Returns the full published criteria (memory-provenance-audit/v1): the eight provenance checks C1-C8 plus C9 chain integrity, the input format adapters (Mem0, Zep/Graphiti, generic JSONL, hash-only), the verdict-line rule, the custody block, the retention terms, and the pinned public test corpus identity; every verdict is reproducible from them.'
      security: []
      operationId: getTollProvenanceCriteria
      x-operation-id-source: derived
  /toll/provenance/corpus:
    get:
      tags:
      - Memory Provenance Audit
      summary: The pinned public test corpus identity
      responses:
        '200':
          description: 'Success. Returns the public test corpus identity for provenance audits: its SHA-256 pin b026a11c1433ae9b2502d4d2c83d4b762531a7ef49c1b5e4cfc13621ce8cb131 (the SHA-256 of the corpus''s canonical serialization). The corpus (corpus.json.gz), the buyer-runnable harness (harness.mjs) and the C13 self-grade fixture are published at https://exchangerebel.com/provenance/ - the corpus is buyer-runnable before paying.'
      security: []
      operationId: getTollProvenanceCorpus
      x-operation-id-source: derived
  /toll/provenance/precheck:
    post:
      tags:
      - Memory Provenance Audit
      summary: 'Free pre-check: format recognition, record count, assessability preview and the…'
      parameters:
      - name: caller
        in: query
        required: true
        schema:
          type: string
        description: Solana base58 wallet of the caller; keys the free allowance (100/day per wallet, resets 00:00 UTC). Self-declared for the free pre-check.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: 'The raw memory export as the request body: a Mem0 JSON array, a Zep/Graphiti JSON object, or generic JSONL records. The body IS the submission - it is not wrapped in an envelope.'
      responses:
        '200':
          description: Success. Returns the format recognition, the parseable record count, the assessability preview (which of C1-C9 will run and which will be NOT ASSESSABLE, with reasons) and the exact block quote (blocks x $0.05). When the caller's free allowance is exhausted (100 per UTC day) or a call arrives inside the 5-second spacing, the response is the /toll/provenance/audit payment challenge instead; the pre-check itself is never charged.
      security: []
      operationId: postTollProvenancePrecheck
      x-operation-id-source: derived
  /toll/provenance/audit:
    post:
      tags:
      - Memory Provenance Audit
      summary: Audit one submitted memory export's revision record ($0.05 per block)
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: 'The raw memory export as the request body: a Mem0 JSON array, a Zep/Graphiti JSON object, or generic JSONL records. The body IS the submission - it is not wrapped in an envelope.'
      responses:
        '200':
          description: 'Success. Returns the signed verdict (Ed25519, this service''s own key): the coverage block first, the verdict line (COMPLETE / PARTIAL / ABSENT / NOT ASSESSABLE), all factor values for C1-C9 as assessable, the submission SHA-256, the as-of time, and the stated exclusion. No composite score.'
        '402':
          description: 'Payment Required (x402). A per-block fee: $0.05 per block - one block is up to 10,000 claim records AND up to 10 MB of submitted payload, whichever limit is reached first; the exact block count and total are quoted at the free pre-check. The payment includes: one Memory Provenance Audit of one whole submitted memory export — the eight published provenance checks of memory-provenance-audit/v1, plus chain integrity where a history or log is submitted, computed over the export exactly as submitted — returned as a verdict signed with this service''s own Ed25519 service key: the coverage block first, the verdict line, all factor values, the submission SHA-256, the as-of time, and the stated exclusion. The exact block count and the exact total price are quoted at the free pre-check before any payment; one audit is settled in one payment of blocks x $0.05. By submitting the export you warrant that you hold the right to submit it and to have it processed as described here, including any personal information it contains. Delivery is the response to the paid call. Payments settle on Solana before delivery. If a verified payment does not produce a verdict in that response, re-send the same request with the same X-Payment-Tx header within 7 days and the service delivers from the verified payment with no second charge; a payment that has been delivered against cannot be used again. If we still fail to deliver, we refund the payment. You only pay for delivered answers. A verdict that has been delivered is final: it is not refunded because the buyer disputes or disagrees with the verdict. Single-request submissions are processed in-request only: the submitted content is never written to storage and never logged. Chunked submissions (the path for payloads above the platform request-body limit) are different in one stated way: the parts are held transiently in a session-scoped namespace under a short session TTL (1 hour), the audit becomes payable and runnable only when every part in the manifest is present and each part''s SHA-256 matches the manifest, the parts are deleted immediately when the audit completes and are deleted by TTL if the session expires, no part outlives the session (every part''s TTL is the session''s remaining lifetime from the manifest''s opened_at, so no part expires later than the session or its manifest), the parts are never logged, and the parts are never used for anything else. Retained after any audit is one payment-ledger line on the published closed field list (the payment ledger is the service''s business record and is retained without expiry): the payer wallet, the payment transaction, the price, and the coverage counts (format, claims, bytes, blocks, verdict line, checks run, and the count of checks not assessable), plus the CAD valuation fields on that list. The submission SHA-256 and the full factor values are returned to you in the verdict and are not stored by the service. Keep your signed verdict: the anchored receipt requires the submission SHA-256 and the verdict hash from you, because the service does not hold them. Three operational records are also kept, none containing submitted content: payment and replay markers keyed by the payment transaction (delivery state, payer wallet, and network fee), kept for 7 days so a paid call can be resumed or an owed receipt write completed without a second charge; free-allowance counters keyed by the caller wallet, kept for 2 days; and a list of distinct payer wallets, kept for the service''s public distinct-payer count — a payer wallet identifier is kept for 12 months after that payer''s last payment and then expires, and the distinct-payer count itself is an aggregate number kept indefinitely — together with aggregate daily and total counters (numbers only). No claim text, no identifier of any record in your export, and no other submitted content is retained in any log, ledger, metric, or stored record, beyond the chunked session parts while a session is open, as stated above. This verdict grades the revision record of the submitted export. It does not verify the truth of any claim, and it is not a safety or correctness certification. The response body carries the payment instructions in x402 v1 form: payTo (the operator''s Solana wallet), the amount 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: postTollProvenanceAudit
      x-operation-id-source: derived
  /toll/provenance/session:
    post:
      tags:
      - Memory Provenance Audit
      summary: Open a chunked submission session from a manifest (free)
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                format:
                  type: string
                part_count:
                  type: integer
                part_hashes:
                  type: array
                  items:
                    type: string
                declared_claims:
                  type: integer
                declared_bytes:
                  type: integer
              required:
              - format
              - part_count
              - part_hashes
      responses:
        '200':
          description: Success. Opens a session in a session-scoped namespace with a 1-hour TTL; parts are held under the criteria document's custody terms and deleted on completion or expiry. Declared totals are informational - the pre-check and the audit are computed from the assembled parts exactly as received.
      security: []
      operationId: postTollProvenanceSession
      x-operation-id-source: derived
  /toll/provenance/session/{id}/parts/{part}:
    put:
      tags:
      - Memory Provenance Audit
      summary: Upload one session part (free)
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: part
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
              description: The part bytes; the part's SHA-256 must match the session manifest.
      responses:
        '200':
          description: Success. The part is stored against the session; a part whose hash does not match the manifest is rejected and the session stays open.
      security: []
      operationId: putTollProvenanceSessionByIdPartsByPart
      x-operation-id-source: derived
  /toll/provenance/precheck-chunked:
    post:
      tags:
      - Memory Provenance Audit
      summary: Free pre-check over an assembled chunked session (same 100/day allowance)
      parameters:
      - name: session
        in: query
        required: true
        schema:
          type: string
        description: The chunked session id returned by POST /session.
      responses:
        '200':
          description: Success. Same assessability preview and exact block quote as /precheck, computed from the assembled parts. On allowance exhaustion it returns a 402 error naming the reason. An incomplete manifest is no audit and no charge.
      security: []
      operationId: postTollProvenancePrecheckChunked
      x-operation-id-source: derived
  /toll/provenance/audit-chunked:
    post:
      tags:
      - Memory Provenance Audit
      summary: Audit an assembled chunked session's export ($0.05 per block)
      responses:
        '200':
          description: 'Success. Returns the signed verdict (Ed25519, this service''s own key): the coverage block first, the verdict line (COMPLETE / PARTIAL / ABSENT / NOT ASSESSABLE), all factor values for C1-C9 as assessable, the submission SHA-256, the as-of time, and the stated exclusion. No composite score.'
        '402':
          description: 'Payment Required (x402). A per-block fee: $0.05 per block - one block is up to 10,000 claim records AND up to 10 MB of submitted payload, whichever limit is reached first; the exact block count and total are quoted at the free pre-check. The payment includes: one Memory Provenance Audit of one whole submitted memory export — the eight published provenance checks of memory-provenance-audit/v1, plus chain integrity where a history or log is submitted, computed over the export exactly as submitted — returned as a verdict signed with this service''s own Ed25519 service key: the coverage block first, the verdict line, all factor values, the submission SHA-256, the as-of time, and the stated exclusion. The exact block count and the exact total price are quoted at the free pre-check before any payment; one audit is settled in one payment of blocks x $0.05. By submitting the export you warrant that you hold the right to submit it and to have it processed as described here, including any personal information it contains. Delivery is the response to the paid call. Payments settle on Solana before delivery. If a verified payment does not produce a verdict in that response, re-send the same request with the same X-Payment-Tx header within 7 days and the service delivers from the verified payment with no second charge; a payment that has been delivered against cannot be used again. If we still fail to deliver, we refund the payment. You only pay for delivered answers. A verdict that has been delivered is final: it is not refunded because the buyer disputes or disagrees with the verdict. Single-request submissions are processed in-request only: the submitted content is never written to storage and never logged. Chunked submissions (the path for payloads above the platform request-body limit) are different in one stated way: the parts are held transiently in a session-scoped namespace under a short session TTL (1 hour), the audit becomes payable and runnable only when every part in the manifest is present and each part''s SHA-256 matches the manifest, the parts are deleted immediately when the audit completes and are deleted by TTL if the session expires, no part outlives the session (every part''s TTL is the session''s remaining lifetime from the manifest''s opened_at, so no part expires later than the session or its manifest), the parts are never logged, and the parts are never used for anything else. Retained after any audit is one payment-ledger line on the published closed field list (the payment ledger is the service''s business record and is retained without expiry): the payer wallet, the payment transaction, the price, and the coverage counts (format, claims, bytes, blocks, verdict line, checks run, and the count of checks not assessable), plus the CAD valuation fields on that list. The submission SHA-256 and the full factor values are returned to you in the verdict and are not stored by the service. Keep your signed verdict: the anchored receipt requires the submission SHA-256 and the verdict hash from you, because the service does not hold them. Three operational records are also kept, none containing submitted content: payment and replay markers keyed by the payment transaction (delivery state, payer wallet, and network fee), kept for 7 days so a paid call can be resumed or an owed receipt write completed without a second charge; free-allowance counters keyed by the caller wallet, kept for 2 days; and a list of distinct payer wallets, kept for the service''s public distinct-payer count — a payer wallet identifier is kept for 12 months after that payer''s last payment and then expires, and the distinct-payer count itself is an aggregate number kept indefinitely — together with aggregate daily and total counters (numbers only). No claim text, no identifier of any record in your export, and no other submitted content is retained in any log, ledger, metric, or stored record, beyond the chunked session parts while a session is open, as stated above. This verdict grades the revision record of the submitted export. It does not verify the truth of any claim, and it is not a safety or correctness certification. The response body carries the payment instructions in x402 v1 form: payTo (the operator''s Solana wallet), the amount 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: []
      parameters:
      - name: session
        in: query
        required: true
        schema:
          type: string
        description: The chunked session id returned by POST /session.
      operationId: postTollProvenanceAuditChunked
      x-operation-id-source: derived
  /toll/provenance/receipt:
    post:
      tags:
      - Memory Provenance Audit
      summary: Anchored receipt for one issued verdict ($5.00)
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                submission_sha256:
                  type: string
                verdict_hash:
                  type: string
              required:
              - submission_sha256
              - verdict_hash
      responses:
        '200':
          description: 'Success. Returns the receipt: the two hashes written to Solana in a single memo transaction by the service''s own wallet, with the anchor transaction id. The memo is public and permanent; it proves the pair of hashes had been recorded by the anchor''s on-chain time, and nothing about the export beyond the two hashes.'
        '402':
          description: 'Payment Required (x402). $5.00 buys one anchored receipt for one Memory Provenance Audit verdict: you supply the submission SHA-256 and the verdict hash from a verdict this service issued, and the service writes those two hashes — and nothing else from the verdict — to Solana in a single memo transaction by the service''s own wallet (the service absorbs the anchor write cost inside the $5.00). The memo is a public Solana transaction and is permanent, as all Solana transactions are. Anyone who already holds the verdict can recompute its hash and confirm, from the anchor transaction''s on-chain time and without calling this service, that this exact pair of hashes had been recorded by then; the anchor does not make the verdict''s contents public and proves nothing about the export beyond the two hashes. The service does not retain verdicts, so it cannot check the two hashes you supply against an issued verdict: the receipt anchors the pair you supply, and its accuracy as a receipt for a particular verdict depends on you supplying that verdict''s true hashes. If the on-chain write does not confirm after your payment settles, the write is owed, not lost: retry POST /receipt with the same X-Payment-Tx header and it completes with no second charge (the owed state is tracked for 7 days). If the owed write cannot be completed, we refund the $5.00 payment. You only pay for delivered answers. A receipt whose anchor write has completed is final and is not refunded. A receipt involves no submission content: no part of any export is sent, held, or stored for a receipt, and the custody block in the criteria document governs the underlying audit. It does not re-run, upgrade, or extend the underlying audit. The response body carries the payment instructions in x402 v1 form: payTo (the operator''s Solana wallet), the amount 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: '5.00'
      security:
      - x402Payment: []
      operationId: postTollProvenanceReceipt
      x-operation-id-source: derived
  /toll/provenance/metrics:
    get:
      tags:
      - Memory Provenance Audit
      summary: Memory Provenance Audit aggregate counters
      responses:
        '200':
          description: Success. Returns aggregate counters (paid audits, distinct payers, free pre-checks today). Aggregate only - no payer identities, no submitted content.
      security: []
      operationId: getTollProvenanceMetrics
      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.'