io.github.DarthSander/agentdata-nl
REMOTE · AGENTDATA-API.SANDER-VAN-AARD.WORKERS.DEV · SCANNED AUG 3
x402-paid tools: EU company & sanctions data, web search, LLM chat, crypto intel, x402 monitoring.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 51 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS not yet verified: we couldn't determine whether a plaintext access path exists. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability62
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 8395 tokens (~164/item across 51 items; 51 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
- Structured output schemas are declared (18% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · agentdata-api.sander-van-aard.workers.dev
claude mcp add --transport http darthsander-agentdata-nl https://agentdata-api.sander-van-aard.workers.dev/mcp
[mcp_servers.darthsander-agentdata-nl] url = "https://agentdata-api.sander-van-aard.workers.dev/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"darthsander-agentdata-nl": {
"type": "remote",
"url": "https://agentdata-api.sander-van-aard.workers.dev/mcp",
"enabled": true
}
}
} openclaw mcp add darthsander-agentdata-nl --url https://agentdata-api.sander-van-aard.workers.dev/mcp --transport streamable-http
mcp_servers:
darthsander-agentdata-nl:
url: "https://agentdata-api.sander-van-aard.workers.dev/mcp" {
"mcpServers": {
"darthsander-agentdata-nl": {
"type": "http",
"url": "https://agentdata-api.sander-van-aard.workers.dev/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 0
- Schema quality: 4217 → 6068 ▼ functional
- First check of Tool coverage: 23 functional
- New tool “check_crypto_signal” functional
- New tool “crypto_feed_since” functional
- New tool “crypto_feed_subscribe” functional
- New tool “file_agent_want” functional
- New tool “request_capability” functional
- New tool “scan_crypto_market” functional
- New tool “validate_crypto_signal” functional
- New tool “web_search” functional
- New tool “x402_demand_report” functional
- New tool “get_crypto_evidence” functional
- New tool “get_crypto_signal” functional
- “crypto_verdict” reworded the description of “layer” cosmetic
- 28 Jul 26 −1
- Schema quality: 3715 → 4217 ▼ functional
- Schema quality: excellent → good functional
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 58
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://agentdata-api.sander-van-aard.workers.dev/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=sander-van-aard.workers.dev | CN=WE1,O=Google Trust Services,C=US | 12 Jul 2026 | 10 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 84eff8423e5709e413797bdea78f30c2 |
| SANs: sander-van-aard.workers.dev, *.sander-van-aard.workers.dev | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of agentdata-api.sander-van-aard.workers.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| workers.dev. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://agentdata-api.sander-van-aard.workers.dev/mcp | Verified | 200 | |
| http (plaintext) | http://agentdata-api.sander-van-aard.workers.dev/mcp | Inconclusive | 404 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
attest_settlement ~168
For a seller receiving an agent payment: verify the settlement on-chain (tx confirmed, correct recipient and amount), report the payer wallet's on-chain history, screen the provided counterparty name against the EU and UN sanctions lists, and return an Ed25519-signed attestation you keep as your audit record (verifiable offline via /.well-known/attest-keys.json). Facts and proof, never a guarantee, custody or compliance verdict. Name appears only as SHA-256.
| Name | Type | Req | Description |
|---|---|---|---|
| counterparty_name | string | — | name you know for the payer; screened against EU/UN sanctions, stored only as SHA-256 |
| expected | object | yes | — |
| payer | object | — | — |
| payment | object | yes | — |
| purpose | string | — | optional non-identifying label |
No output schema declared.
No examples provided.
buy_phone_number ~194
Phone number for SMS verification, for AI agents that need to pass a one-time code (Telegram, WhatsApp, Google, OpenAI, Discord + 2500 more). You pay only when a real code arrives — no code, no charge. Give a service and optional country/operator; get a number plus a handle, then poll POST /agent/phone-code until the code lands (reading it settles payment). Dynamic price per request (in the 402), USDC via x402, no account or KYC. Lawful one-time verification only.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional country slug, e.g. 'england', 'usa' (default: server config) |
| operator | string | — | Optional operator slug, default 'any' |
| service | string | yes | Platform to verify for, lowercase, e.g. 'telegram', 'whatsapp', 'google', 'discord', 'openai' |
No output schema declared.
No examples provided.
check_ch_company ~151
Official Swiss company check from the Zefix register (Central Business Name Index, federal). Look up by UID (exact, e.g. CHE-105.909.036) or search by name (up to 5 candidates). Returns official name with translations, legal form, register status (active / in liquidation / deleted) with deletion date, legal seat, purpose, address and last SHAB publication date, with a direct link to the cantonal register excerpt. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Company name to search (up to 5 candidates) |
| uid | string | — | Swiss UID (exact), e.g. CHE-105.909.036; provide this or 'name' |
No output schema declared.
No examples provided.
check_crypto_firm ~162
Is this crypto firm authorised in the EU? One call checks the official ESMA interim MiCA register of authorised crypto-asset service providers (CASPs) AND the EU non-compliant entities warning list. Search by firm name, platform website/domain, or LEI. Returns authorisation details (member state, competent authority, authorised services, LEI) and any warning-list entries, each with an official source reference. Firms only. Counterparty/scam check before sending funds to a platform.
| Name | Type | Req | Description |
|---|---|---|---|
| lei | string | — | 20-character LEI code (ISO 17442) |
| name | string | — | Crypto firm name; provide this, 'website' or 'lei' |
| website | string | — | Platform website or domain (strongest match) |
No output schema declared.
No examples provided.
check_crypto_signal ~178
Cheap polling for a crypto opportunity you already retrieved: send signal_id plus the known_version you hold and receive whether it changed, the current version, live status (ACTIVE/STALE/INVALIDATED), which change types occurred (score, classification, entry zone, economics, execution blockers, status) and next_check_after — no full signal payload. Built for monitoring an active opportunity over time. Market intelligence only: no execution, no custody, no position sizing. Paid per request.
| Name | Type | Req | Description |
|---|---|---|---|
| known_version | integer | — | Version you already hold, e.g. 4; omit it and the answer is always changed=true (no baseline). Poll no earlier than the next_check_after you received. |
| signal_id | string | yes | Signal id you are monitoring, e.g. 'sig_a1b2c3d4e5f6' |
| Name | Type | Req | Description |
|---|---|---|---|
| change_types | array | yes | Which kinds of change occurred between your baseline and current_version; empty when nothing changed or no baseline was supplied. |
| changed | boolean | yes | True when current_version differs from your known_version (or when you supplied no baseline); then call get_crypto_signal for the updated advice. |
| checked_at | string | yes | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| current_version | integer | yes | The version the upstream advice system holds right now. |
| disclaimer | string | yes | Our product boundary, verbatim in every paid advice response: market intelligence only, no execution, no custody, no position sizing, and opportunity_score is a heuristic rather than a calibrated win… |
| known_version | integer|null | yes | The baseline version YOU sent, echoed so the answer can never contradict your input; null when you sent none, and then changed is always true. |
| next_check_after | integer | yes | Unix seconds — do not poll again before this. Upstream uses now + 300 while ACTIVE and now + 1800 otherwise. |
| query | object | yes | The validated input echoed back, i.e. signal_id and (if you sent one) known_version. |
| recommended_next_call | object|null | yes | Machine-readable next step in the chain (scan → signal → validate → evidence → check), so you can follow the workflow without documentation. null means there is explicitly nothing useful to call now;… |
| signal_id | string | yes | Stable id of the opportunity across versions; the input for every other call in the chain. |
| source_as_of | integer | yes | Unix seconds — freshness of the upstream answer; falls back to our own clock because the check is computed on call. |
| source_disclaimer | string | — | Verbatim disclaimer of the upstream advice system, passed through unedited. |
| status | string | — | Live status at call time. ACTIVE = published AND entry window still open, STALE = entry window closed (the hold horizon may still run), INVALIDATED = an invalidation condition triggered. Only ACTIVE… |
No examples provided.
check_cz_company ~128
Official Czech company check from the ARES register (Ministry of Finance, open data). Look up by ICO (exact) or search by name (up to 5 candidates). Returns official name, legal form code, VAT number (DIC), establishment and termination dates, registered address and NACE activity codes, with a direct ARES link. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| ico | string | — | 8-digit Czech ICO (exact), e.g. 45274649; provide this or 'name' |
| name | string | — | Company name to search (up to 5 candidates) |
No output schema declared.
No examples provided.
check_dutch_insolvency ~143
Dutch bankruptcy and insolvency check against the official Central Insolvency Register of the Dutch judiciary (rechtspraak.nl). Detects published bankruptcy (faillissement), suspension of payments (surseance) and debt restructuring procedures. Best results with a KVK number. Returns procedure type, status, dates, court and a source reference per match, with explicit match-basis and coverage notes. A no_match means no publication in the currently searchable register. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | — | — |
| kvk_number | string | — | 8-digit KVK number (strongly recommended; exact match) |
| name | string | yes | Company name |
No output schema declared.
No examples provided.
check_fi_company ~134
Official Finnish company check from the YTJ register (PRH open data). Look up by Business ID (exact) or search by name (up to 5 candidates). Returns the current official name, company form, main business line, registration/end dates, address, raw YTJ status codes and registered company situations such as bankruptcy or liquidation, with a direct YTJ link. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Finnish Business ID (exact), e.g. 0112038-9; provide this or 'name' |
| name | string | — | Company name to search (up to 5 candidates) |
No output schema declared.
No examples provided.
check_fr_company ~153
Official French company check from the INSEE Sirene register (French government open data). Look up by SIREN (exact) or search by name (up to 5 candidates). Returns official legal name, administrative status (active/ceased), legal form and NAF activity codes, company size category, creation/cessation dates, head-office address and SIRET, with a direct link to the official Annuaire des Entreprises. Companies only; no director or officer data.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Company name to search (up to 5 candidates) |
| siren | string | — | 9-digit SIREN (exact), e.g. 552081317; provide this or 'name' |
No output schema declared.
No examples provided.
check_fr_insolvency ~131
French insolvency check against BODACC, the official bulletin of civil and commercial announcements (DILA open data). Searches collective procedures (sauvegarde, redressement, liquidation judiciaire), conciliation and professional recovery announcements by SIREN. Returns judgment nature and date, court, publication date and a direct BODACC link per announcement. A no_match means no publication in the searchable set (since 2008) — no historical clearance. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| siren | string | yes | 9-digit SIREN (exact match; resolve a name via check_fr_company first) |
No output schema declared.
No examples provided.
check_no_company ~137
Official Norwegian company check from the Enhetsregisteret (Brønnøysund Register Centre, open data). Look up by organisation number (exact) or search by name (up to 5 candidates). Returns official name, organisation form, industry code, employee count, registration date, business address and — directly from the register — bankruptcy and liquidation flags, with a direct register link. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | Company name to search (up to 5 candidates) |
| organisation_number | string | — | 9-digit Norwegian organisation number (exact), e.g. 923609016; provide this or 'name' |
No output schema declared.
No examples provided.
check_pl_company ~132
Polish VAT whitelist check (official Ministry of Finance register). Verifies a company's VAT status by NIP and — uniquely — whether a given bank account number (NRB) is registered to that company in the tax register: the standard Polish invoice-fraud check before paying a supplier. Returns VAT status, REGON/KRS, address, registered-account count and the official consultation confirmation id (request_id). Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| bank_account | string | — | Optional 26-digit account number (NRB) to verify against the tax register |
| nip | string | yes | 10-digit Polish NIP (tax id) |
No output schema declared.
No examples provided.
check_token_registry ~167
Is this crypto-asset or its issuer MiCA-notified in the EU? Searches the official ESMA interim MiCA register token lists — e-money token (EMT) issuers, asset-referenced token (ART) issuers, and notified crypto-asset white papers — by issuer name, LEI, or Digital Token Identifier (DTI). Returns issuer, home member state, competent authority, DTIs and the official white-paper URL per match. Useful before trusting a stablecoin or token sold as EU-regulated.
| Name | Type | Req | Description |
|---|---|---|---|
| dti | string | — | Digital Token Identifier (ISO 24165) |
| issuer | string | — | Token issuer name; provide this, 'lei' or 'dti' |
| lei | string | — | 20-character LEI of the issuer |
No output schema declared.
No examples provided.
check_uk_company ~131
Official UK company check from the Companies House register. Look up by company number (exact) or search by name (up to 5 candidates). Returns official name, status (active/dissolved/liquidation), type, incorporation and cessation dates, registered office, SIC codes, and the register's insolvency-history and charges flags, with a direct Companies House link. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| company_number | string | — | UK company number (exact), e.g. 08804411; provide this or 'name' |
| name | string | — | Company name to search (up to 5 candidates) |
No output schema declared.
No examples provided.
check_x402_counterparty ~153
Trust check before paying an unfamiliar x402 service, by pay_to address and/or service URL. Combines our own availability monitoring of the service's x402 endpoint (30-day uptime, last check, observed payTo/price and drift between our measurements), on-chain USDC payment history to the address on Base (2-day window), and EU regulatory status of the domain (MiCA-authorised or ESMA warning list). Factual only — no scores; not being monitored is not negative, presence is no endorsement.
| Name | Type | Req | Description |
|---|---|---|---|
| pay_to | string | — | 0x-address that receives the payment; provide this and/or 'resource' |
| resource | string | — | URL of the x402 service to check |
No output schema declared.
No examples provided.
crypto_feed_since ~165
Free with a feed_handle from crypto_feed_subscribe: every published advice change since your cursor, across all covered coins — new signals, classification flips (previous_classification vs classification), status/score/entry-zone changes. Send back next_cursor each time; for the full advice behind a signal_id call get_crypto_signal (paid).
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | number | — | Sequence you last saw; omit to continue from your subscription start, 0 for the backlog |
| feed_handle | string | yes | Handle returned when you subscribed |
| kinds | array | — | Optional filter: new_signal, classification_changed, status_changed, score_changed, entry_zone_changed, economics_changed, execution_blockers_changed |
| limit | number | — | Max events per page (default 100, max 500) |
| Name | Type | Req | Description |
|---|---|---|---|
| checked_at | string | — | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| count | integer | — | Number of events returned after your kinds filter. |
| cursor | integer | — | The cursor this page started from. |
| disclaimer | string | — | Our product boundary, verbatim in every paid advice response: market intelligence only, no execution, no custody, no position sizing, and opportunity_score is a heuristic rather than a calibrated win… |
| events | array | — | — |
| expired | boolean | — | Present and true when the subscription lapsed; renew via POST /crypto/feed/renew with the same feed_handle. |
| expires_at | string | — | — |
| feed_handle | string | — | — |
| has_more | boolean | — | True when the ledger page was full — poll again immediately rather than waiting. |
| latest_seq | integer | — | The newest ledger position right now. |
| next_cursor | integer | — | Send this back on your next poll. Advances over filtered-out events too — a kinds filter never rewinds the cursor. |
| note | string | — | — |
No examples provided.
crypto_feed_subscribe ~110
Subscribe for 30 days to the change feed behind /crypto/scan: one cursor over the upstream advice ledger, all coins at once. Returns a handle and a cursor; polling is then free and unlimited: /crypto/feed/since returns every published change since your cursor — new signals, classification flips, status changes (PUBLISHED/STALE/INVALIDATED), score and entry-zone changes. Be first to know when the market state flips; the full advice per signal stays a separate paid call.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| checked_at | string | — | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| coverage | object | — | The coins the upstream advice system currently tracks; the list rotates with its universe. |
| cursor | integer | — | The current ledger position — start polling from here; history is not replayed as 'new'. Pass cursor 0 once if you want the backlog. |
| disclaimer | string | — | Our product boundary, verbatim in every paid advice response: market intelligence only, no execution, no custody, no position sizing, and opportunity_score is a heuristic rather than a calibrated win… |
| event_kinds | array | — | All kinds you can filter on when polling. |
| expires_at | string | — | When the subscription lapses; polls then return expired=true until you renew. |
| feed_handle | string | — | Subscription handle; required on every poll and renewal. Not recoverable if lost. |
| methodology | string | — | — |
| poll | object | — | Ready-to-send request for crypto_feed_since. |
| renew | object | — | Ready-to-send request body for POST /crypto/feed/renew ($2.00, adds 30 days on top). |
No examples provided.
crypto_track_record ~118
Measured track record of the strategies behind /crypto/verdict, resold from the upstream signal system. Give a window in days (default 30, clamped 1..365); returns per strategy the number of trades, wins, win rate and average net return over that window, with the measurement start. A factual measurement over a short window (wide error bars), not investment advice. Cheap showcase for the paid verdict endpoint.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | — | Measurement window in days (default 30, clamped 1..365) |
No output schema declared.
No examples provided.
crypto_verdict ~192
Live crypto trading verdict for a coin (e.g. BTC-EUR), resold from an upstream signal system. Two layers: 'long' (positional ALLOW_LONG/EXIT/HOLD with confidence, summary and primary risk) and 'daytrade' (a 15m LONG/EXIT setup with entry range, stop-loss, take-profit and reward:risk). Pick layer long|daytrade|both. No fresh verdict for the requested layer means 400 and no charge — you only pay for an actual, still-valid verdict. Factual model output, not investment advice.
| Name | Type | Req | Description |
|---|---|---|---|
| coin | string | yes | Coin/product id, e.g. 'BTC-EUR' (see supported coins in the error on an unknown coin) |
| layer | string | — | Which verdict layer to buy ('regime' is an accepted alias for 'long'); no fresh verdict for it means 400 and no charge |
No output schema declared.
No examples provided.
eurc_peg ~92
EURC peg monitor — unique combined signal: the official ECB euro reference rate (USD/EUR) versus the live on-chain EURC/USDC price from the deepest Uniswap v3 pool on Base, returned as a deviation in basis points with both source values and timestamps. Tells agents holding or pricing EURC how far the on-chain euro stablecoin trades from the official euro. No input required.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
file_agent_want ~249
File what you want to buy from an agent-facing API and cannot buy today. Optional kind is typically one of coin, country, vies_country, monitor_host, sms_service — free-form values possible. The $0.01 fee is there to keep intents honest, not to sell you anything: it is not a purchase of the capability and no promise that it gets built. Optionally add the price per call you would pay and your expected monthly volume. Free alternative: POST /agent/request.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_calls_per_month | integer | — | Optional: calls per month you expect to make |
| kind | string | — | Optional coverage kind, typically one of 'coin', 'country', 'vies_country', 'monitor_host', 'sms_service' — free-form values possible. Sending it makes your intent countable in the aggregate |
| max_price_usd | number | — | Optional: USD per call you would actually pay. Budget-backed intents outrank anonymous wishes |
| value | string | — | Optional coverage value, e.g. 'PT'. Same character rules as request_capability |
| want | string | yes | What you want to buy and cannot buy today, in your own words |
| Name | Type | Req | Description |
|---|---|---|---|
| checked_at | string | yes | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| intent_id | string | yes | Opaque reference for this intent, e.g. 'want_a1b2c3d4e5f6'. Quote it if you follow up; it is random rather than sequential, and there is no lookup endpoint. |
| note | string | yes | Verbatim boundary of this endpoint: the fee keeps intents honest, it is not a purchase of the capability and no promise that it gets built; your intent is counted aggregated and anonymised in x402_de… |
| query | object | yes | The validated input echoed back, so the record can never contradict what you sent. |
| recorded | boolean | yes | Always true on a 200: the intent is stored. A failure to store is a 503 and is not charged. |
No examples provided.
get_crypto_evidence ~150
Historical evidence behind a crypto opportunity: for its strategy (and coin where enough samples exist) the measured populations — detected, blocked, published, expired without entry, completed, wins, losses, time exits — plus win rate over completed outcomes only with a Wilson interval, average/median/total net return, distinct days and coins, ML model evidence status and the measurement window. Real measurements, never fabricated; short windows have wide error bars. Paid per request.
| Name | Type | Req | Description |
|---|---|---|---|
| signal_id | string | yes | Signal id, e.g. 'sig_a1b2c3d4e5f6'; returns the measured track record of its strategy (win rate over completed outcomes only, with Wilson interval). |
| Name | Type | Req | Description |
|---|---|---|---|
| checked_at | string | yes | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| coin | string|null | yes | Coin the evidence is scoped to; null means too few coin-level samples, so the numbers are strategy-wide. |
| disclaimer | string | yes | Our product boundary, verbatim in every paid advice response: market intelligence only, no execution, no custody, no position sizing, and opportunity_score is a heuristic rather than a calibrated win… |
| measured_since | integer | — | Unix seconds — start of the measurement window. |
| metrics | object | — | Measured over completed outcomes only (WIN + LOSS + TIME). Anything the source cannot compute is null — never fabricated. |
| ml_models | array | yes | Machine-learning models used by this strategy and how far their own validation has come. |
| note | string | — | Verbatim upstream note on how populations and metrics relate; states that win rate and returns use completed outcomes only. |
| populations | object | — | Disjoint counts over the window, reported apart from the metrics so selection effects stay visible. blocked and expired_without_entry are EXCLUDED from every metric denominator. |
| query | object | yes | The validated input echoed back, i.e. the signal_id you asked for. |
| recommended_next_call | object|null | yes | Machine-readable next step in the chain (scan → signal → validate → evidence → check), so you can follow the workflow without documentation. null means there is explicitly nothing useful to call now;… |
| source_as_of | integer | yes | Unix seconds — freshness of the upstream advice system's answer. |
| source_disclaimer | string | — | Verbatim disclaimer of the upstream advice system, passed through unedited. |
| strategy | string | yes | Strategy version the evidence is scoped to, e.g. 'momentum-breakout-v1'. |
| strategy_evidence_status | string | — | How far out-of-sample validation has come. UNVALIDATED = no measured outcomes yet, EARLY_EVIDENCE = too few to lean on, VALIDATED = enough measured evidence, REJECTED = measured and found not to work. |
| window_days | integer | — | Length of the measurement window in days. |
No examples provided.
get_crypto_signal ~157
One complete crypto opportunity by signal_id (from /crypto/scan): classification, opportunity_score (0-100 heuristic, not a win probability), entry zone, stop-loss, take-profit, reward:risk, positive and negative factors, conditions and invalidation conditions, execution economics (net maker/taker), ML horizon scores with evidence status, entry validity versus expected hold, and upstream execution metadata. Market intelligence only: no execution, no custody, no position sizing. Paid per request.
| Name | Type | Req | Description |
|---|---|---|---|
| signal_id | string | yes | Signal id from scan_crypto_market, e.g. 'sig_a1b2c3d4e5f6'. Stable across versions of the same opportunity; an unknown id returns 400 and is not charged. |
| Name | Type | Req | Description |
|---|---|---|---|
| advice | object | yes | The full published advice, passed through 1:1 from the upstream system. entry_zone, stop_loss, take_profit and reward_risk are null for WATCH/NEUTRAL/AVOID, because those classifications carry no con… |
| checked_at | string | yes | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| disclaimer | string | yes | Our product boundary, verbatim in every paid advice response: market intelligence only, no execution, no custody, no position sizing, and opportunity_score is a heuristic rather than a calibrated win… |
| query | object | yes | The validated input echoed back, i.e. the signal_id you asked for. |
| recommended_next_call | object|null | yes | Machine-readable next step in the chain (scan → signal → validate → evidence → check), so you can follow the workflow without documentation. null means there is explicitly nothing useful to call now;… |
| source_as_of | integer | yes | Unix seconds — freshness of the upstream advice system's answer. |
| source_disclaimer | string | — | Verbatim disclaimer of the upstream advice system, passed through unedited. |
No examples provided.
get_phone_code ~51
Free: poll the incoming SMS code for a number bought via buy_phone_number, using the returned handle. Repeat until status is 'received'.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | The handle returned by buy_phone_number |
No output schema declared.
No examples provided.
llm_chat ~274
LLM chat completion per call — no account, no API key, no token math. Three flat-priced tiers: fast $0.002 (DeepSeek v4 Flash), smart $0.02 (GPT-5.4 mini), reasoning $0.03 (DeepSeek v4 Pro). Send OpenAI-style messages, get the assistant reply with finish_reason and token usage. Input capped per tier (16k-32k chars); the 402 quotes the exact tier price up front. Model or source unavailable means a 503 and you pay nothing. USDC on Base.
| Name | Type | Req | Description |
|---|---|---|---|
| max_tokens | integer | — | Output token cap; tier maxima: fast 1024 (default 512), smart 2048 (default 1024), reasoning 4096 (default 2048, minimum 256 — thinking tokens are spent first) |
| messages | array | yes | OpenAI-style chat messages; combined content capped at 16k chars (fast) or 32k chars (smart/reasoning) |
| model | string | — | Price tier: fast $0.002 (DeepSeek v4 Flash), smart $0.02 (GPT-5.4 mini), reasoning $0.03 (DeepSeek v4 Pro) |
| temperature | number | — | Optional sampling temperature (0-2) |
No output schema declared.
No examples provided.
lookup_lei ~147
LEI lookup (Legal Entity Identifier) from the official GLEIF register. Look up by LEI code or search by legal name (optional jurisdiction filter). Returns the official legal name, entity status, registration status (ISSUED/LAPSED), jurisdiction, legal form and registered address, with a direct GLEIF source link per record. Legal entities only. Ideal cheap first check before deeper company screening.
| Name | Type | Req | Description |
|---|---|---|---|
| jurisdiction | string | — | Optional 2-letter country filter, e.g. NL |
| lei | string | — | 20-character LEI code (ISO 17442); provide this or 'name' |
| name | string | — | Legal entity name to search for |
No output schema declared.
No examples provided.
news_search ~191
Google News search for AI agents at $0.004 per call, from the same Serper.dev source as /web/search. Send a query, get back compact JSON: top news results with position, title, url, snippet, publish date and source. Tune with num (1-10 results), country and language (2-letter codes). Zero results is a valid, honest answer. Pay per call in USDC on Base, no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional 2-letter country code to localise results, e.g. 'us', 'nl' |
| lang | string | — | Optional 2-letter language code for the results, e.g. 'en', 'nl' |
| num | integer | — | Number of results to return (1-10, default 5) |
| query | string | yes | The search query, plain text, max 400 characters |
No output schema declared.
No examples provided.
preflight_x402_service ~174
Preflight before paying an x402 service: is it working right now, and did it work the past 30 days? One live probe of the exact resource URL you intend to pay (status, latency, x402 validity, the payTo/price the service itself publishes in its 402, manifest presence) plus our own monitoring history of the host (30-day uptime, last check, recent changes such as payTo or price drift). Optionally verifies that the pay_to you intend to pay matches the live 402. Facts only — no scores.
| Name | Type | Req | Description |
|---|---|---|---|
| pay_to | string | — | Optional 0x-address you intend to pay; verified against the service's live 402 |
| resource | string | yes | Full https URL of the x402 endpoint you intend to pay (live probe + monitoring history) |
No output schema declared.
No examples provided.
relay_crypto_news ~96
Real-time crypto market news with sentiment analysis and top headlines ranked by importance, for $0.01 per call. One request, no parameters needed — get the latest market-moving stories as structured JSON, ready for trading agents and research pipelines. Relayed live from a proven upstream source; if the source is down you get a 503 and pay nothing. Pay per call in USDC on Base — no account, no API key.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
relay_edgar_filings ~240
Latest SEC EDGAR filings for any US-listed company for $0.01 per call: 10-K annual reports, 10-Q quarterly reports and 8-K material events, by stock ticker or CIK, sourced live from data.sec.gov. Returns the parsed filing list (company, form type, filing date, direct document URL), filterable with 'since' and 'limit'. Relayed live from a proven upstream source; if the source is down you get a 503 and pay nothing. Pay per call in USDC on Base — no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| cik | string | — | SEC CIK, 1-10 digits. Provide exactly one of ticker or cik. |
| form | string | yes | SEC form type: 10-K annual report, 10-Q quarterly report or 8-K material events |
| limit | integer | — | Maximum filings to return (1-50) |
| since | string | — | Optional inclusive lower bound on filing date, YYYY-MM-DD |
| ticker | string | — | Stock ticker, case-insensitive (e.g. AAPL). Provide exactly one of ticker or cik. |
No output schema declared.
No examples provided.
relay_reddit_search ~212
Keyword-search all of Reddit (or one subreddit) for $0.05 per call — social listening for AI agents without login or API key. Returns matching posts with title, author, subreddit, score, comment count, permalink and timestamp, sorted by relevance, top, new, hot or comments, with an optional time window. Track brand mentions, monitor topics, surface community sentiment. Relayed live from a proven upstream source; if the source is down you get a 503 and pay nothing. Pay per call in USDC on Base.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Maximum posts to return (1-100) |
| q | string | yes | Keyword or phrase to search; wrap a multi-word phrase in double quotes for exact match |
| sort | string | — | Result ranking (default relevance) |
| subreddit | string | — | Optional — scope the search to this subreddit (r/ prefix optional); omit for a sitewide search |
| time | string | — | Time window — applies to sort=top |
No output schema declared.
No examples provided.
request_capability ~258
Free: tell us what you tried to buy here and could not — a coin, a country, a host, a network, a service. Every coverage rejection you get from a paid tool already hands you the exact arguments to send. It costs nothing, it is not a promise that it gets built, and only the coverage identifier is ever aggregated: free-text notes are never resold. Capped at 20 filings per caller per day. Budget behind your request? Use file_agent_want instead.
| Name | Type | Req | Description |
|---|---|---|---|
| endpoint | string | — | Optional: the paid endpoint path you were calling, e.g. '/crypto/verdict'. Unknown paths are stored as null |
| kind | string | yes | What sort of coverage you are missing, e.g. 'coin', 'country', 'monitor_host', 'network', 'sms_service' |
| note | string | — | Optional free text for us; stored, never resold verbatim, never part of the demand report |
| value | string | yes | The exact value that is not covered, e.g. 'DOGE-EUR', 'PT', 'api.example.com'. Letters, digits, space and . _ : / - only — names, registration numbers and free text are rejected on purpose |
No output schema declared.
No examples provided.
scan_crypto_market ~104
Machine-readable crypto market intelligence: the currently published long opportunities from an upstream advice system, ranked by opportunity_score (0-100 heuristic, never a calibrated win probability). Per opportunity: signal_id, version, coin, classification (STRONG_LONG..AVOID), opportunity type, publication status, entry validity and freshness in seconds. No execution, no custody, no position sizing. Each response names the next useful call. Paid per request; an empty list is a valid answer.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| checked_at | string | yes | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| count | integer | yes | Number of items in opportunities[]. |
| disclaimer | string | yes | Our product boundary, verbatim in every paid advice response: market intelligence only, no execution, no custody, no position sizing, and opportunity_score is a heuristic rather than a calibrated win… |
| next_check_after | integer | — | Only present when opportunities[] is empty — unix seconds before which scanning again is pointless (now + 900). |
| opportunities | array | yes | Compact items sorted by opportunity_score descending; an empty array is a valid paid answer meaning nothing is published right now. |
| query | object | yes | The validated input echoed back; this tool takes no input, so it is always an empty object. |
| recommended_next_call | object|null | yes | Machine-readable next step in the chain (scan → signal → validate → evidence → check), so you can follow the workflow without documentation. null means there is explicitly nothing useful to call now;… |
| source_as_of | integer | yes | Unix seconds — freshness of the upstream advice system's answer. |
| source_disclaimer | string | — | Verbatim disclaimer of the upstream advice system, passed through unedited. |
No examples provided.
screen_dutch_supplier ~143
Dutch supplier screening — pre-transaction check in one call: validates the EU VAT number (VIES), checks the official Dutch Central Insolvency Register for bankruptcy, suspension of payments or debt restructuring, and cross-checks the legal name against the VAT-registered name where available. Requires legal_name, kvk_number and vat_number. Returns factual attention items with a source reference per finding — no risk scores. Only charged when both registers were consulted. Companies only.
| Name | Type | Req | Description |
|---|---|---|---|
| kvk_number | string | yes | 8-digit KVK number |
| legal_name | string | yes | — |
| vat_number | string | yes | e.g. NL123456789B01 |
No output schema declared.
No examples provided.
screen_eu_sanctions ~125
Screen a company or organisation name against two official sanctions lists in one call: the EU consolidated financial sanctions list AND the UN Security Council consolidated list (entity sections only — no persons). Normalised name matching across all registered aliases; returns per match the source list (EU/UN), matched names, programmes, designation date and source link, plus each list's generation date. not_listed is no clearance; other jurisdictions (e.g. OFAC) are not covered.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Company/organisation name to screen (entities only, no persons) |
No output schema declared.
No examples provided.
screen_eu_supplier ~232
European supplier screening — one call, an honest per-country coverage matrix. Routes by country (NL, FR, UK, NO, CH, CZ, FI, PL) to the best available official open sources: register profile, insolvency signal (full register search, register flags, or not covered), VAT validation (VIES or the Polish whitelist), EU + UN sanctions screening and normalised name verification. Every response states per dimension what was and was not covered. Factual only — no scores.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | Country of the supplier; coverage differs per country and is reported in the response |
| name | string | yes | Legal/company name (used for sanctions screening and name verification) |
| registration_number | string | yes | National register number: KVK (NL), SIREN (FR), company number (UK), orgnr (NO), UID (CH), ICO (CZ), Business ID (FI), NIP (PL) |
| vat_number | string | — | Optional EU VAT number for VIES validation (NL/FR/CZ/FI only; PL is covered via the whitelist) |
No output schema declared.
No examples provided.
validate_crypto_signal ~160
Is this crypto opportunity still valid right now? Give a signal_id and receive its live status (ACTIVE/STALE/INVALIDATED), remaining entry window in seconds, current price versus the entry zone, spread, data quality, maker/taker economics recomputed at the current price, whether the upstream execution blockers changed, and any invalidation reasons. Freshness first: an expired entry is reported as expired. Advice only: no execution, no custody, no position sizing. Paid per request.
| Name | Type | Req | Description |
|---|---|---|---|
| signal_id | string | yes | Signal id to re-check right now, e.g. 'sig_a1b2c3d4e5f6'. Returns status ACTIVE|STALE|INVALIDATED, remaining entry window and economics at the current price. |
| Name | Type | Req | Description |
|---|---|---|---|
| checked_at | string | yes | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| current_price | number|null | yes | Last observed price of the coin upstream; null when no usable price was available (then price_vs_entry_zone is UNKNOWN). |
| data_quality | string | — | Quality of the market data behind this validation: GOOD = fresh and complete, DEGRADED = usable but partial or wide/uncertain, STALE = too old to rely on (treat the price-derived fields with caution). |
| disclaimer | string | yes | Our product boundary, verbatim in every paid advice response: market intelligence only, no execution, no custody, no position sizing, and opportunity_score is a heuristic rather than a calibrated win… |
| economics | object | — | Estimated round-trip economics in percent of position value (1.8 = 1.8%). Taker = crossing the spread for an immediate fill; maker = a cheaper passive limit order that may never fill. Values the sour… |
| entry_valid_until | integer | — | Unix seconds — end of the 30-minute new-entry window (not a position deadline; the hold horizon lives on the advice as expected_hold_until). |
| entry_window_remaining_seconds | integer | — | Seconds left in that entry window; 0 or below means it closed and status is no longer ACTIVE. |
| execution | object | — | Internal eligibility metadata of the UPSTREAM system — informational only, never a permission or prohibition for you. Upstream may block a candidate for its own reasons while the opportunity is perfe… |
| execution_blockers_changed | boolean | — | True when the upstream system's internal execution blockers differ from those published with the advice; informational only, never a permission. |
| invalidation | object | — | Whether the advice's own invalidation conditions have triggered. |
| next_check_after | integer | — | Only present when status is not ACTIVE — unix seconds before which polling again is pointless (now + 1800). |
| price_as_of | integer | — | Unix seconds — when current_price was observed. |
| price_vs_entry_zone | string | — | Where current_price sits relative to the advised entry zone: BELOW entry_zone.min, INSIDE the zone, ABOVE entry_zone.max (chasing), or UNKNOWN when there is no price or no concrete entry zone. |
| publication_status | string | — | Publication state of the advice. PUBLISHED = live and current, STALE = retrievable history whose entry window closed, INVALIDATED = an invalidation condition triggered. Expired ids stay retrievable w… |
| query | object | yes | The validated input echoed back, i.e. the signal_id you asked for. |
| recommended_next_call | object|null | yes | Machine-readable next step in the chain (scan → signal → validate → evidence → check), so you can follow the workflow without documentation. null means there is explicitly nothing useful to call now;… |
| signal_id | string | yes | Stable id of the opportunity across versions; the input for every other call in the chain. |
| source_as_of | integer | yes | Unix seconds — freshness of the upstream advice system's answer. |
| source_disclaimer | string | — | Verbatim disclaimer of the upstream advice system, passed through unedited. |
| spread_bps | number|null | yes | Observed bid/ask spread in basis points; null when not measurable. A wide spread eats the net edge in economics. |
| status | string | yes | Live status at call time. ACTIVE = published AND entry window still open, STALE = entry window closed (the hold horizon may still run), INVALIDATED = an invalidation condition triggered. Only ACTIVE… |
| version | integer | — | Version of the advice this validation describes. |
No examples provided.
verify_eu_vat ~144
EU VAT number validation (VIES) with predictable behavior for agents. Validates any EU VAT number against the European Commission's VIES service. Two modes: fast validation (may serve a cached result, labeled with its timestamp) and consultation-proof mode (always live, returns the official consultation number, requires requester identification). 'Not confirmed' does not imply the company is invalid. Machine-readable errors with per-member-state availability status.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | string | — | — |
| requester_vat_number | string | — | Required in consultation_proof mode |
| vat_number | string | yes | Country code + national VAT number, e.g. NL123456789B01 |
No output schema declared.
No examples provided.
web_contents ~219
Read any web page as clean LLM-ready markdown for $0.0015 — the cheapest x402 page reader, and the natural companion to /web/search. Send a URL, get back the readable core: title, headings, paragraphs, lists and links, stripped of scripts, styles, navigation and other boilerplate. Choose markdown or plain text and cap the size with max_chars (default 20000; a truncated flag tells you when the cut hit). Unreachable or non-HTML targets cost nothing. Pay per call in USDC, no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | — | markdown (default) keeps #-headings, [text](url) links and - lists; text is flat plain text |
| max_chars | integer | — | Maximum content length in characters (1000-100000, default 20000); longer pages are cut and flagged truncated |
| url | string | yes | The http(s) URL of the page to read. Literal IP addresses, localhost and non-http(s) schemes are rejected. |
No output schema declared.
No examples provided.
web_crawl ~233
Crawl one site in one paid call: start URL + max_pages (2-20); we follow same-host links breadth-first, returning each page as clean markdown (same extraction as /web/contents). Priced at $0.001 per requested page, quoted as max_pages up front — finding fewer pages is still a complete delivery. Failed pages are skipped and listed in skipped[]; the call still settles. Only an unreadable start page is a 400, no charge. USDC on Base, no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| max_chars_per_page | integer | — | Maximum content length per page in characters (1000-20000, default 5000); longer pages are cut and flagged truncated |
| max_pages | integer | — | Maximum pages to crawl, breadth-first over same-host links (2-20, default 5). Priced at $0.001 per requested page; finding fewer pages is still a complete delivery. |
| url | string | yes | The http(s) start URL of the site to crawl. Literal IP addresses, localhost and non-http(s) schemes are rejected. |
No output schema declared.
No examples provided.
web_images ~191
Google Images search for AI agents at $0.004 per call, from the same Serper.dev source as /web/search. Send a query, get back compact JSON: top image results with position, title, image URL, source page link and dimensions. Tune with num (1-10 results), country and language (2-letter codes). Zero results is a valid, honest answer. Pay per call in USDC on Base, no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional 2-letter country code to localise results, e.g. 'us', 'nl' |
| lang | string | — | Optional 2-letter language code for the results, e.g. 'en', 'nl' |
| num | integer | — | Number of results to return (1-10, default 5) |
| query | string | yes | The search query, plain text, max 400 characters |
No output schema declared.
No examples provided.
web_places ~206
Google Places (local businesses with rating, address and phone number) for AI agents at $0.004 per call, from the same Serper.dev source as /web/search. Send a query, get back compact JSON: top places with position, title, address, coordinates, rating, rating count, category, phone and website. Tune with num (1-10 results), country and language (2-letter codes). Zero results is a valid, honest answer. Pay per call in USDC on Base, no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional 2-letter country code to localise results, e.g. 'us', 'nl' |
| lang | string | — | Optional 2-letter language code for the results, e.g. 'en', 'nl' |
| num | integer | — | Number of results to return (1-10, default 5) |
| query | string | yes | The search query, plain text, max 400 characters |
No output schema declared.
No examples provided.
web_scholar ~201
Google Scholar search (papers with citation counts) for AI agents at $0.004 per call, from the same Serper.dev source as /web/search. Send a query, get back compact JSON: top papers with position, title, url, publication info, snippet, year and citation count. Tune with num (1-10 results), country and language (2-letter codes). Zero results is a valid, honest answer. Pay per call in USDC on Base, no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional 2-letter country code to localise results, e.g. 'us', 'nl' |
| lang | string | — | Optional 2-letter language code for the results, e.g. 'en', 'nl' |
| num | integer | — | Number of results to return (1-10, default 5) |
| query | string | yes | The search query, plain text, max 400 characters |
No output schema declared.
No examples provided.
web_search ~203
Google-quality web search for AI agents at $0.004 per search — the lowest x402 rate for full search results. Send a query, get back compact JSON built for LLM consumption: top organic results (position, title, url, snippet), the direct answer when one exists, a trimmed knowledge graph and related searches. Tune with num (1-10 results), country and language (2-letter codes). Zero results is a valid, honest answer. Pay per call in USDC, no account, no API key.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional 2-letter country code to localise results, e.g. 'us', 'nl' |
| lang | string | — | Optional 2-letter language code for the results, e.g. 'en', 'nl' |
| num | integer | — | Number of results to return (1-10, default 5) |
| query | string | yes | The search query, plain text, max 400 characters |
No output schema declared.
No examples provided.
web_search_read ~261
Search and read in one call: a web search plus the full page text of the top results, for $0.006 — cheaper than a separate search and reads. Send a query, get back compact results (position, title, url, snippet) each enriched with the target page's readable content (markdown or text, capped by max_chars_per_page). A page that fails to read carries a read_error instead of content; the call still delivers and settles. USDC on Base, no account.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional 2-letter country code to localise results, e.g. 'us', 'nl' |
| format | string | — | markdown (default) keeps #-headings, [text](url) links and - lists; text is flat plain text |
| lang | string | — | Optional 2-letter language code for the results, e.g. 'en', 'nl' |
| max_chars_per_page | integer | — | Maximum content length per read page in characters (1000-20000, default 8000) |
| num | integer | — | Number of results to search and read (1-5, default 3) |
| query | string | yes | The search query, plain text, max 400 characters |
No output schema declared.
No examples provided.
x402_demand_report ~109
What are agents asking for that they cannot buy yet, aggregated over 30 days. From our own measurements: calls we rejected on an uncovered value where the caller had already presented payment (kind is typically coin, country, vies_country, monitor_host or sms_service — free-form values possible), free requests filed by agents, and settled $0.01 intents. Demand at one provider, not a network-wide picture. Aggregates only: no wallets, no free text, no subject ids.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| checked_at | string | yes | When we produced this answer (ISO 8601, UTC). The only ISO timestamp in the payload; every other timestamp is unix seconds. |
| coverage | object | yes | What this report was built from and how far back it can see. |
| disclaimer | string | yes | Verbatim boundary: demand at one provider, shaped by what we happen to sell — absence of demand here is not evidence of absence of a market. |
| filed_requests | array | yes | Coverage gaps agents filed themselves via the free request_capability tool, per (kind, value), top 50 by count. Free-text notes are never included. Free intake is capped per sender per day through an… |
| generated_at | string | — | When the aggregate itself was computed; it is cached for up to 6 hours, so this can be older than checked_at. |
| methodology | string | yes | Exactly how each number is counted, including which traffic is excluded and what is never included. |
| paid_wants | object | yes | Paid $0.01 intents in the window whose payment actually settled and which came from external traffic, as counts only. Deliberately without kind/value rows, wallet hashes or intent text. |
| source | string | — | Whether this answer came from the 6-hour cache or was aggregated on the spot. Same content either way. |
| unmet_demand | array | yes | Calls we had to reject because a requested capability value is not covered, counting ONLY rejections where the caller had already presented a verified payment proof — the strongest signal here, becau… |
No examples provided.
x402_network_feed_check ~103
Free with a feed_handle: send up to 50 hosts you are about to pay and get their last observed status, payTo and price, plus anything that changed since your cursor. One call before a batch of payments.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | number | — | Sequence you last saw; omit to use your subscription start |
| feed_handle | string | yes | Handle returned when you subscribed |
| hosts | array | yes | Hostnames or full URLs, max 50 |
No output schema declared.
No examples provided.
x402_network_feed_since ~142
Free with a feed_handle from x402_network_feed_subscribe: everything that changed on the x402 network since your cursor (down/up, payTo drift, price drift, manifest). Send back next_cursor each time.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | number | — | Sequence you last saw; omit to continue from your subscription start, 0 for the backlog |
| feed_handle | string | yes | Handle returned when you subscribed |
| kinds | array | — | Optional filter: down, up, payto_drift, amount_drift, manifest_gained, manifest_lost |
| limit | number | — | Max events per page (default 100, max 500) |
No output schema declared.
No examples provided.
x402_network_feed_subscribe ~130
Subscribe for 30 days to a change feed of the x402 network, from our own probes (~2 per host per day, 1500+ hosts). Returns a handle and a cursor; polling is then free and unlimited: /x402/network-feed/since returns all that changed since your cursor (down/up, payTo drift, price drift, manifest gained/lost), and /x402/network-feed/check takes up to 50 hosts you are about to pay and returns their last observed status, payTo and price plus changes. Facts only, no scores and no catalogue data.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
x402_network_report ~127
Daily state-of-the-network report on the x402 ecosystem, built exclusively from our own probes (~2 per host per day): how many hosts we monitor, share of probes returning a valid 402 over 24h and 7d, host status breakdown (ok_402, HTTP errors, unreachable), manifest coverage, and counts of observed changes over 24h and 7d (up/down transitions, payTo drift, price drift, manifest gained/lost) plus the hosts that moved today. Regenerated once per day. Facts only — no scores, no catalogue data.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.