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-scope-hygiene-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: 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: Scope Hygiene
paths:
/toll/scope-hygiene:
get:
tags:
- Scope Hygiene
summary: Scope Hygiene service catalog
responses:
'200':
description: 'Success. Returns the service catalog: what a scope-hygiene audit includes, the price ($0.05 per audit), the published criteria (memory-scope-hygiene/v1), the pinned test corpus, and the scope statement (one export of your own memory store, family declared - Mem0, Zep/Graphiti, Letta, or generic - full-text or hash-only form, graded on five factors under a published per-family assessability matrix; a factor the family or form cannot support grades NOT ASSESSABLE, never a silent zero; the export is processed in memory only and never stored).'
security: []
operationId: getTollScopeHygiene
x-operation-id-source: derived
/toll/scope-hygiene/health:
get:
tags:
- Scope Hygiene
summary: Scope Hygiene service health
responses:
'200':
description: Success. Returns service liveness and the report signer address.
security: []
operationId: getTollScopeHygieneHealth
x-operation-id-source: derived
/toll/scope-hygiene/criteria:
get:
tags:
- Scope Hygiene
summary: The published scope-hygiene criteria
responses:
'200':
description: 'Success. Returns the full published criteria (memory-scope-hygiene/v1): the input contract and caps, the five factor rules, the sharing-marker convention, the extension rule, the assessability matrix, and the pinned public test corpus identity; every report is reproducible from them.'
security: []
operationId: getTollScopeHygieneCriteria
x-operation-id-source: derived
/toll/scope-hygiene/corpus:
get:
tags:
- Scope Hygiene
summary: The pinned public test corpus identity
responses:
'200':
description: 'Success. Returns the public test corpus identity for memory-scope-hygiene/v1: corpus id memory-scope-hygiene-corpus/v1 and its SHA-256 pin 4e072f54c5dcd83e66342a31c4c328c311b63fd76b344906607a44ada4fedf34 (the SHA-256 of the corpus''s canonical serialization, verifiable with the published harness). The corpus is buyer-runnable before paying.'
security: []
operationId: getTollScopeHygieneCorpus
x-operation-id-source: derived
/toll/scope-hygiene/precheck:
post:
tags:
- Scope Hygiene
summary: Free scope-hygiene pre-check of one memory-store export (validation +…
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).
family:
type: string
description: 'The memory-store family of the export: mem0, zep_graphiti, letta, or generic.'
form:
type: string
description: 'The export form: full_text or hash_only.'
variant:
type: string
description: Optional family variant (e.g. zep_cloud for Zep/Graphiti).
manifest:
type: object
description: Optional manifest declaring scope keys / sharing markers; a declaration replaces the family default scope-key set.
records:
type: array
description: The export's records (up to 1,000; body up to 262,144 bytes). Processed in memory only and never stored.
required:
- caller
- family
- form
- records
responses:
'200':
description: 'Success. Returns assessability only: the full assessability matrix row for the declared family and form plus the resolved per-factor status for this submission. No factor is computed and no hygiene finding is returned. When the caller''s free allowance is exhausted, the response is the /toll/scope-hygiene/audit payment challenge instead.'
security: []
operationId: postTollScopeHygienePrecheck
x-operation-id-source: derived
/toll/scope-hygiene/audit:
post:
tags:
- Scope Hygiene
summary: Full signed memory scope-hygiene audit for one submitted export
requestBody:
content:
application/json:
schema:
type: object
properties:
family:
type: string
description: 'The memory-store family of the export: mem0, zep_graphiti, letta, or generic.'
form:
type: string
description: 'The export form: full_text or hash_only.'
variant:
type: string
description: Optional family variant (e.g. zep_cloud for Zep/Graphiti).
manifest:
type: object
description: Optional manifest declaring scope keys / sharing markers; a declaration replaces the family default scope-key set.
records:
type: array
description: The export's records (up to 1,000; body up to 262,144 bytes). Processed in memory only and never stored.
required:
- family
- form
- records
responses:
'200':
description: 'Success. Returns the full signed report: the five factors individually (scope-field presence rate; unscoped-record rate; cross-scope identical-content clusters with their classifications; attribution/storage scope conflicts; duplicate clusters plus the live-duplicate rate), every unsupported factor stated NOT ASSESSABLE with its reason, and the coverage block. No composite score.'
'402':
description: 'Payment Required (x402). A per-item fee: $0.05 per audit - the payment includes exactly one scope-hygiene audit of the one memory-store export you submitted (up to 1,000 records inside a request body of up to 262,144 bytes) and one signed report under memory-scope-hygiene/v1 stating the five factors individually: the scope-field presence rate; the unscoped-record rate; the cross-scope identical-content clusters with their classifications, undeclared clusters carrying the exact wording "undeclared cross-scope identical content — contamination indicator, not proof of a runtime leak"; the attribution/storage scope conflicts; and the duplicate clusters plus live-duplicate rate — with every factor the export''s family or form cannot support stated as NOT ASSESSABLE with its reason, and the coverage block naming the scope keys relied on. No composite score is computed. A free pre-check discloses the assessability matrix for your declared family and form in full and validates the export before any payment; a malformed export is a free refusal. The export is processed in memory only and is never stored; the payments ledger records only the payer, the time, the price, the undeclared-cluster count, and the verdict 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 audit) 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 export 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: postTollScopeHygieneAudit
x-operation-id-source: derived
/toll/scope-hygiene/metrics:
get:
tags:
- Scope Hygiene
summary: Scope Hygiene aggregate counters
responses:
'200':
description: Success. Returns aggregate counters (paid reports, distinct payers, free pre-checks today). Aggregate only - no payer identities, no submitted export content.
security: []
operationId: getTollScopeHygieneMetrics
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.'