Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Fetchgate Buy API
version: 0.1.0
summary: Web-content API and x402 digital-goods storefront for AI agents.
description: 'Fetch clean Markdown or structured metadata from any URL, server-side, with scripts/nav/ad boilerplate stripped out. Also a machine-payable storefront: GET /v1/products for the catalog, GET /v1/buy/:id to pay per product via x402 (USDC on Base) and receive a signed download URL.'
x-guidance: 'Two independent surfaces. (1) Web reader: GET /v1/read?url=... for Markdown, GET /v1/meta?url=... for structured metadata — free up to 30 calls/day/IP, then $0.002 (/v1/read) or $0.001 (/v1/meta) per call via x402 v2 (send a PAYMENT-SIGNATURE header after receiving a 402; legacy X-PAYMENT is also accepted). (2) Digital-goods store: GET /v1/products lists the catalog (no payment); GET /v1/buy/:id with a real id from that catalog always requires payment — send PAYMENT-SIGNATURE to get a 402 challenge, pay it, and the 200 response carries a time-limited signed downloadUrl to fetch the file from. Everything is also reachable as MCP tools at POST /mcp (read_url, get_metadata, scan_for_prompt_injection, search_x402_services, check_x402_endpoint, check_base_token, list_products, get_purchase_info, get_agent_census, scan_mcp_server).'
contact:
email: support@fetchgate.dev
servers:
- url: https://fetchgate.dev
description: Current host
tags:
- name: Buy
paths:
/v1/buy/x402-registry-2026-10-04:
get:
operationId: buy_x402_registry_2026_10_04
summary: 'Buy: x402 Services & Facilitator Registry — 2026-10-04 edition ($15.00)'
description: 'The x402 market, measured, refreshed for October: every resource in Coinbase''s x402 Bazaar discovery index (27,681 paid endpoints, up 87% in five weeks) with the index''s own 30-day counters (settled calls, unique payers, last call), one read-only probe per URL (live 402 or not, version, live price), an EIP-712 signing-domain check on every USDC-on-Base option, per-resource revenue proxy, payTo addresses, networks, schemes and prices — plus a month-over-month changes file (new and vanished domains, biggest gainers and losers), 21 facilitators with live /supported results and the curated 118-service table. JSONL + JSON + schema + README. Market sizing, competitor research, facilitator choice, pricing and listing validation from one file. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '15.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
/v1/buy/prompt-injection-test-corpus:
get:
operationId: buy_prompt_injection_test_corpus
summary: 'Buy: Prompt-Injection & Tool-Hijack Test Corpus ($29.00)'
description: 156 structured, labeled adversarial test cases across seven categories (direct injection, indirect injection, tool hijacking, data exfiltration, system-prompt leaks, jailbreak/roleplay, encoding obfuscation) for evaluating whether an agent or LLM app resists prompt injection and tool-misuse attacks. Ships with a JSON Schema, a dependency-light Python evaluation harness, and a guide covering taxonomy, scoring, limitations, and responsible use. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.
x-payment-info:
price:
mode: fixed
currency: USD
amount: '29.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
/v1/buy/mcp-registry-2026-08-22:
get:
operationId: buy_mcp_registry_2026_08_22
summary: 'Buy: MCP Server Registry Snapshot — 2026-08-22 edition ($19.00)'
description: 'A curated, machine-readable snapshot of 400 production/community Model Context Protocol (MCP) servers as of 2026-08-22: category, transport, auth requirements, repo/package URLs, source-directory cross-references, and verification dates for every entry. Saves an agent or builder shopping for MCP tooling the work of crawling and reconciling multiple MCP directories (official registry, Smithery, Glama, PulseMCP, mcp.so) itself. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '19.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
/v1/buy/agent-eval-harness-templates:
get:
operationId: buy_agent_eval_harness_templates
summary: 'Buy: Agent Eval Harness Templates ($39.00)'
description: 'A ready-to-use starter kit for evaluating an agent or LLM application fast: a JSON-Schema test-case format, 40 example cases across four suites (task completion, tool selection, refusal/safety, regression), a pointwise LLM-as-judge scorer with documented bias mitigations, and a dependency-light Python CLI runner that produces a scored JSON report plus a human-readable summary. Grounded in current agent-eval practice; bring-your-own-model via a one-file adapter interface. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '39.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
/v1/buy/prompt-injection-defenses-playbook:
get:
operationId: buy_prompt_injection_defenses_playbook
summary: 'Buy: Prompt-Injection Defenses Playbook & Detection Ruleset ($39.00)'
description: 'The defense counterpart to our attack corpus: a layered playbook for hardening an agent/LLM app against prompt injection, tool hijacking, data exfiltration, system-prompt leaks, jailbreaks, and encoding obfuscation. Includes a 6-layer defense taxonomy mapped to attack categories, 119 machine-readable detection rules (85 base + 34 extended, each with honest false-positive notes), and a stdlib-only Python detector with two profiles (strict for tool arguments and output, content for web pages and documents), decode-and-rescan for obfuscated instructions, and hidden-HTML-text scanning. Measured: held-out recall 53% strict / 38% content on the 156-case corpus; 0.35% false positives on 1,714 unseen top-site homepages (the base rules as written flag 69%). Full method and limits in MEASUREMENTS.md. Grounded in OWASP LLM/MCP guidance. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '39.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
/v1/buy/x402-quickstart-2026-08-23:
get:
operationId: buy_x402_quickstart_2026_08_23
summary: 'Buy: x402 Quickstart Kit — 2026-08-23 edition ($7.00)'
description: 'A dependency-minimal reference implementation of the x402 HTTP micropayment protocol ("exact" scheme, EIP-3009, EVM/USDC): seller-side payment middleware for Cloudflare Workers/Hono and plain Node/Express, generalized from a live production x402 seller, plus buyer-side client code in TypeScript (viem) and Python (eth_account/web3.py) that signs a real EIP-3009 payment authorization and retries a 402 automatically. Includes a practical guide covering facilitator selection, common integration pitfalls, and a go-live checklist. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '7.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
/v1/buy/mcp-tool-inventory-2026-08-28:
get:
operationId: buy_mcp_tool_inventory_2026_08_28
summary: 'Buy: MCP Live Tool Inventory — 2026-08-28 edition ($29.00)'
description: 'Every remote server in the official MCP registry (15,329 URLs) probed read-only via initialize → tools/list, and everything the 8,235 live ones returned: 140,284 tool names, titles, full descriptions, input-schema keys and annotations; 5,462 server-level instructions strings verbatim; per-server reachability, protocol version and outcome; and 24k+ tool-poisoning audit flags with snippets. JSONL + summary.json + schema. The real-world base rate for allow-listing servers, name-collision checks, and building or testing tool-description detectors against live text instead of synthetic samples. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '29.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
/v1/buy/agent-web-report-2026-q3:
get:
operationId: buy_agent_web_report_2026_q3
summary: 'Buy: The Agent Web, Measured — 2026 Q3 edition ($149.00)'
description: 'A 25-page analyst report on the machine-facing web, built entirely from first-hand measurement: all 15,329 remote MCP registry URLs probed (54% answer, 45.5% outside two template fleets; 140,284 tool descriptions scored — the textbook tool-poisoning payload appears zero times, 47 hosts carry concealment directives, all 51 quoted verbatim), all 14,820 x402 Bazaar endpoints probed and the index''s own counters summed into the first published revenue ceiling for the CDP-facilitated x402 market (~$314/day), all 21 facilitators probed, and a 60-crawler census from a live storefront. 22 charts, 10 tables, twelve conclusions, every number generated from the underlying datasets. PDF + README + licence. Single-organisation licence; includes the +30/+60/+90-day re-probe summaries and the 2026 Q4 edition. Unpaid GET returns a 402 x402 challenge; a paid GET returns a signed, time-limited download URL.'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '149.00'
protocols:
- x402: {}
responses:
'200':
description: Payment accepted; a signed, time-limited download URL.
content:
application/json:
schema:
type: object
properties:
productId:
type: string
downloadUrl:
type: string
format: uri
expiresInSeconds:
type: integer
required:
- productId
- downloadUrl
- expiresInSeconds
'402':
description: 'Payment required: an x402 challenge (accepts[]) for this product.'
content:
application/json:
schema:
type: object
tags:
- Buy
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Optional API key for authenticated/paid access. TODO: pay-per-request via x402 is planned as an alternative to a pre-provisioned key.'