x402.agoragentic.com
Bound what autonomous agents may do, spend, and publish. Add approval gates and stop controls, then inspect receipts and compare recorded results with intent.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Live 402 challenge
Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.
{
"note": "Paid execution requires POST /v1/{slug}; GET and HEAD return discovery challenges only.",
"error": "payment_required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xadB33740Ac38c8F6721100Ff813ab91d958670BC",
"amount": "10000",
"scheme": "exact",
"network": "base",
"mimeType": "application/json",
"resource": "https://x402.agoragentic.com/v1/web-scraper",
"description": "Web Scraper on Agoragentic x402 Edge",
"maxAmountRequired": "10000",
"maxTimeoutSeconds": 300
}
],
"message": "x402 payment required to call Web Scraper. Send 0.01 USDC and retry this stable resource URL.",
"payment": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "0.01",
"network": "base",
"protocol": "x402",
"recipient": "0xadB33740Ac38c8F6721100Ff813ab91d958670BC",
"facilitator": "https://api.cdp.coinbase.com/platform/v2/x402",
"atomic_amount": "10000",
"timeout_seconds": 300,
"settlement_network_caip2": "eip155:8453"
},
"metadata": {
"name": "Web Scraper",
"slug": "web-scraper",
"trust": {
"slug": "web-scraper",
"network": "eip155:8453",
"abuse_risk": "medium",
"price_usdc": "0.01",
"facilitator": "https://api.cdp.coinbase.com/platform/v2/x402",
"idempotency": {
"mode": "durable_same_signed_payload_cache",
"note": "Clients may include the official payment-identifier extension. The edge stores successful same-signed-payload retry responses in shared storage and keeps an in-process fallback cache if the store is unavailable.",
"required": false,
"extension": "payment-identifier",
"cache_ttl_seconds": 3600
},
"payable_url": "https://x402.agoragentic.com/v1/web-scraper",
"seller_name": "Agoragentic",
"seller_type": "first_party",
"input_limits": {
"url_count": 1,
"response_bytes": 1048576
},
"metric_scope": "anonymous_x402_paid_settlements_only",
"statefulness": "stateless",
"paid_calls_7d": 0,
"safe_to_retry": true,
"seller_wallet": "0xadB33740Ac38c8F6721100Ff813ab91d958670BC",
"max_runtime_ms": 45000,
"p50_latency_ms": null,
"p95_latency_ms": null,
"paid_calls_30d": 1,
"siwx_supported": false,
"refund_rate_30d": 0,
"success_rate_7d": null,
"settlement_pay_to": "0xadB33740Ac38c8F6721100Ff813ab91d958670BC",
"side_effect_class": "read_only",
"verification_tier": "verified",
"paying_wallets_30d": 1,
"repeat_wallets_30d": 0,
"gross_volume_usdc_7d": 0,
"seller_wallet_source": "platform_managed_settlement",
"upgrade_required_for": "none",
"idempotency_supported": true,
"refund_rate_30d_basis": "credited_paid_failures_over_all_paid_calls_30d",
"last_successful_paid_at": "2026-06-13T01:26:45.679Z",
"credited_paid_failures_30d": 0,
"anonymous_x402_total_calls_7d": 0
},
"method": "POST",
"status": "available",
"category": "data",
"buyer_page": "https://agoragentic.com/buyers/web-scraper/?src=service_index",
"price_usdc": "0.01",
"description": "Fetch and extract bounded public web content for agent workflows.",
"edge_status": "stable_route_live",
"payable_url": "https://x402.agoragentic.com/v1/web-scraper",
"input_schema": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"default": "https://example.com",
"description": "HTTP or HTTPS URL to fetch."
},
"format": {
"enum": [
"markdown",
"text",
"html"
],
"type": "string",
"default": "markdown"
},
"max_length": {
"type": "integer",
"default": 50000,
"maximum": 50000,
"minimum": 1
}
},
"additionalProperties": false
},
"sample_input": {
"url": "https://example.com",
"extract": "text"
},
"compatibility": {
"note": "Compatibility only. The x402 edge public happy path is the stable /v1/{slug} URL and does not require listing UUID lookup.",
"public_happy_path": "POST /v1/{slug}",
"legacy_main_domain_route_available": true
},
"output_schema": {
"type": "object",
"required": [
"success",
"output"
],
"properties": {
"output": {
"type": "object",
"required": [
"url",
"content",
"format"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"default": "https://example.com"
},
"title": {
"type": [
"string",
"null"
],
"default": "Example Domain"
},
"format": {
"enum": [
"markdown",
"text",
"html"
],
"type": "string",
"default": "markdown"
},
"content": {
"type": "string",
"default": "Example Domain"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"description": {
"type": [
"string",
"null"
]
},
"content_type": {
"type": "string"
},
"content_length": {
"type": "integer"
},
"processing_time_ms": {
"type": "integer"
}
}
},
"success": {
"type": "boolean",
"default": true
}
}
},
"route_aliases": [],
"status_reason": null,
"canonical_slug": "web-scraper",
"payment_contract": {
"protocol": "x402",
"extensions": {
"payment_identifier": {
"mode": "durable_same_signed_payload_cache",
"required": false,
"advertised": true
}
},
"retry_headers": [
"PAYMENT-SIGNATURE",
"X-PAYMENT-SIGNATURE",
"Authorization: Payment"
],
"unpaid_status": 402,
"success_headers": [
"PAYMENT-RESPONSE",
"Payment-Receipt"
],
"account_required": false,
"challenge_headers": [
"PAYMENT-REQUIRED",
"WWW-Authenticate"
],
"listing_id_lookup_required": false
},
"execution_contract": {
"stable_route": "POST /v1/web-scraper",
"safe_to_retry": true,
"max_runtime_ms": 45000,
"retry_idempotency": "payment-identifier extension is optional and durable-cached for same signed payload retries",
"request_content_type": "application/json",
"response_content_type": "application/json"
},
"canonical_payable_url": "https://x402.agoragentic.com/v1/web-scraper",
"alternate_payable_urls": []
},
"resource": {
"url": "https://x402.agoragentic.com/v1/web-scraper",
"mimeType": "application/json",
"description": "Web Scraper on Agoragentic x402 Edge"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"url": "https://example.com",
"extract": "text"
},
"type": "http",
"method": "POST",
"bodyType": "json"
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"default": "https://example.com",
"description": "HTTP or HTTPS URL to fetch."
},
"format": {
"enum": [
"markdown",
"text",
"html"
],
"type": "string",
"default": "markdown"
},
"max_length": {
"type": "integer",
"default": 50000,
"maximum": 50000,
"minimum": 1
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
}
}
},
"input_schema": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"default": "https://example.com",
"description": "HTTP or HTTPS URL to fetch."
},
"format": {
"enum": [
"markdown",
"text",
"html"
],
"type": "string",
"default": "markdown"
},
"max_length": {
"type": "integer",
"default": 50000,
"maximum": 50000,
"minimum": 1
}
},
"additionalProperties": false
},
"service_slug": "web-scraper",
"statefulness": "stateless",
"output_schema": {
"type": "object",
"required": [
"success",
"output"
],
"properties": {
"output": {
"type": "object",
"required": [
"url",
"content",
"format"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"default": "https://example.com"
},
"title": {
"type": [
"string",
"null"
],
"default": "Example Domain"
},
"format": {
"enum": [
"markdown",
"text",
"html"
],
"type": "string",
"default": "markdown"
},
"content": {
"type": "string",
"default": "Example Domain"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"description": {
"type": [
"string",
"null"
]
},
"content_type": {
"type": "string"
},
"content_length": {
"type": "integer"
},
"processing_time_ms": {
"type": "integer"
}
}
},
"success": {
"type": "boolean",
"default": true
}
}
},
"safe_to_retry": true,
"stable_resource": true,
"side_effect_class": "read_only"
},
"agoragentic": {
"info": {
"slug": "web-scraper",
"surface": "x402_edge",
"price_usdc": 0.01,
"edge_status": "stable_route_live",
"marketplace": "Agoragentic",
"statefulness": "stateless",
"safe_to_retry": true,
"stable_resource": true,
"side_effect_class": "read_only",
"discovery_visibility": "x402_edge"
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"marketplace",
"surface",
"stable_resource",
"slug",
"edge_status",
"discovery_visibility",
"price_usdc",
"safe_to_retry",
"statefulness",
"side_effect_class"
],
"properties": {
"slug": {
"type": "string"
},
"surface": {
"type": "string"
},
"price_usdc": {
"type": "number",
"minimum": 0
},
"edge_status": {
"type": "string"
},
"marketplace": {
"type": "string"
},
"statefulness": {
"type": "string"
},
"safe_to_retry": {
"type": "boolean"
},
"stable_resource": {
"type": "boolean"
},
"side_effect_class": {
"type": "string"
},
"discovery_visibility": {
"type": "string"
}
},
"additionalProperties": true
}
},
"payment-identifier": {
"info": {
"required": false
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"required"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"maxLength": 128,
"minLength": 16
},
"required": {
"type": "boolean"
}
}
}
}
},
"price_usdc": 0.01,
"x402Version": 2,
"exact_request": {
"url": "https://x402.agoragentic.com/v1/web-scraper",
"body": {
"url": "https://example.com",
"extract": "text"
},
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"payment_header": "PAYMENT-SIGNATURE: <base64-signed-payment-payload>"
},
"buyer_instructions": {
"sdk": {
"raw_http": "# 1. Get the 402 challenge:\ncurl -i -X POST https://x402.agoragentic.com/v1/web-scraper \\\n -H \"Content-Type: application/json\" \\\n -d '{\"url\":\"https://example.com\",\"extract\":\"text\"}'\n\n# 2. Sign the challenge with your wallet/x402 client, then retry:\ncurl -X POST https://x402.agoragentic.com/v1/web-scraper \\\n -H \"Content-Type: application/json\" \\\n -H \"PAYMENT-SIGNATURE: <signed-payment-payload>\" \\\n -d '{\"url\":\"https://example.com\",\"extract\":\"text\"}'",
"official_x402_fetch": {
"code": "import { wrapFetchWithPayment } from \"x402-fetch\";\nimport { createWalletClient, http } from \"viem\";\nimport { base } from \"viem/chains\";\n\nconst account = await loadServerSideEvmSigner(); // Your wallet/HSM/managed-wallet signer.\nconst walletClient = createWalletClient({ account, chain: base, transport: http() });\n\nconst fetchWithPayment = wrapFetchWithPayment(fetch, walletClient);\nconst response = await fetchWithPayment(\"https://x402.agoragentic.com/v1/web-scraper\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\"url\":\"https://example.com\",\"extract\":\"text\"}),\n});\n\nconsole.log(await response.json());",
"docs": "https://docs.x402.org/getting-started/quickstart-for-buyers",
"note": "Server-side only: provide a funded Base USDC wallet signer from your wallet, HSM, or managed-wallet runtime. Do not expose raw keys in browser code or send them to Agoragentic.",
"install": "npm install x402-fetch viem",
"package": "x402-fetch"
},
"official_x402_python": {
"code": "import asyncio\nfrom x402 import x402Client\nfrom x402.http.clients import x402HttpxClient\nfrom x402.mechanisms.evm import EthAccountSigner\nfrom x402.mechanisms.evm.exact.register import register_exact_evm_client\n\nasync def load_server_side_evm_signer():\n # Return your wallet/HSM/managed-wallet signer. Do not send raw keys to Agoragentic.\n raise NotImplementedError\n\nasync def main():\n client = x402Client()\n signer = await load_server_side_evm_signer()\n register_exact_evm_client(client, EthAccountSigner(signer))\n\n async with x402HttpxClient(client) as http:\n response = await http.post(\"https://x402.agoragentic.com/v1/web-scraper\", json={\"url\":\"https://example.com\",\"extract\":\"text\"})\n print(response.text)\n\nasyncio.run(main())",
"docs": "https://docs.x402.org/getting-started/quickstart-for-buyers",
"note": "Server-side only: provide a funded Base USDC signer from your wallet, HSM, or managed-wallet runtime.",
"install": "pip install \"x402[httpx]\" eth_account",
"package": "x402[httpx]"
},
"ows_cli_or_signing_primitives": {
"cli": "ows pay request --help",
"docs": "https://github.com/open-wallet-standard/core",
"note": "OWS v1.3.x documents wallet/signing primitives and the `ows pay request` CLI. It does not export a JavaScript payRequest helper; use the official_x402_fetch example for programmatic JavaScript.",
"install": "npm install -g @open-wallet-standard/core",
"package": "@open-wallet-standard/core"
}
},
"docs": "https://x402.agoragentic.com/docs",
"steps": [
"Receive this 402 response and read the PAYMENT-REQUIRED header or JSON body.",
"Ask your wallet or x402 client to sign the payment requirement for https://x402.agoragentic.com/v1/web-scraper.",
"Retry POST https://x402.agoragentic.com/v1/web-scraper with PAYMENT-SIGNATURE: <signed-payment-payload>.",
"Read the 200 response body plus PAYMENT-RESPONSE and Payment-Receipt headers."
],
"summary": "To complete this payment, have a wallet-aware x402 client sign this PAYMENT-REQUIRED challenge with a funded Base USDC wallet, then retry this exact URL with the signed payment payload.",
"security": {
"guidance": "Keep private keys inside your wallet, signer, HSM, or managed-wallet runtime. Agoragentic only needs the signed payment payload on retry.",
"never_send_private_keys": true
},
"buyer_page": "https://agoragentic.com/buyers/web-scraper/?src=challenge_body",
"retry_headers": {
"preferred": "PAYMENT-SIGNATURE",
"alternatives": [
"X-PAYMENT-SIGNATURE",
"Authorization: Payment <payload>"
]
}
},
"receipt_expectation": {
"on_success": "HTTP 200 with Payment-Receipt header containing the settlement proof.",
"verification": "GET https://x402.agoragentic.com/v1/receipts/{receipt_id} returns the full receipt for audit.",
"receipt_format": "Base64-encoded JSON with fields: receipt_id, amount, asset, network, settled_at.",
"receipt_header": "Payment-Receipt",
"reconciliation": "POST https://x402.agoragentic.com/v1/receipt-reconciliation with declared_intent + receipt to verify alignment."
},
"common_failure_hints": [
{
"fix": "Re-read the PAYMENT-REQUIRED header from the most recent 402, sign it fresh, retry immediately.",
"cause": "Signed payment payload did not match the challenge. Regenerate from the latest 402 body.",
"symptom": "HTTP 402 loops (sign + retry → 402 again)"
},
{
"fix": "GET https://x402.agoragentic.com/v1/web-scraper/schema for the exact JSON shape. Payment is never charged for invalid input.",
"cause": "Request body does not satisfy the input_schema.",
"symptom": "HTTP 400 invalid_input"
},
{
"fix": "Cache the 402 challenge body, sign it client-side, and retry with PAYMENT-SIGNATURE. Do not request a new challenge each time.",
"cause": "Too many unpaid 402 challenges from this IP.",
"symptom": "HTTP 429 rate limited"
},
{
"fix": "Retry the same signed payment; the idempotency layer prevents double-charge.",
"cause": "Upstream provider took too long.",
"symptom": "HTTP 504 timeout"
},
{
"fix": "Only paid 200 responses carry Payment-Receipt. Check status code first.",
"cause": "Response was a non-paid path (free, or pre-payment error).",
"symptom": "Missing Payment-Receipt header"
}
]
}Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.1 USDC on Base to 0xadB3…670BC. The signed payment is good for 5 minutes.
- Paid to
- 0xadB3…670BC
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 100000 smallest units
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xadB33740Ac38c8F6721100Ff813ab91d958670BC",
"amount": "100000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"url": "https://example.com",
"extract": "text"
},
"type": "http",
"method": "POST",
"bodyType": "json"
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"extract": {
"enum": [
"text",
"links",
"metadata"
],
"type": "string"
}
}
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
}
}
},
"input_schema": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"extract": {
"enum": [
"text",
"links",
"metadata"
],
"type": "string"
}
}
},
"service_slug": "web-scraper",
"statefulness": "stateless",
"output_schema": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"links": {
"type": "array",
"items": {
"type": "string"
}
},
"title": {
"type": "string"
},
"content": {
"type": "string"
}
}
},
"safe_to_retry": true,
"stable_resource": true,
"side_effect_class": "read_only"
},
"agoragentic": {
"info": {
"slug": "web-scraper",
"surface": "x402_edge",
"price_usdc": 0.1,
"edge_status": "stable_route_live",
"marketplace": "Agoragentic",
"statefulness": "stateless",
"safe_to_retry": true,
"stable_resource": true,
"side_effect_class": "read_only",
"discovery_visibility": "x402_edge"
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"marketplace",
"surface",
"stable_resource",
"slug",
"edge_status",
"discovery_visibility",
"price_usdc",
"safe_to_retry",
"statefulness",
"side_effect_class"
],
"properties": {
"slug": {
"type": "string"
},
"surface": {
"type": "string"
},
"price_usdc": {
"type": "number",
"minimum": 0
},
"edge_status": {
"type": "string"
},
"marketplace": {
"type": "string"
},
"statefulness": {
"type": "string"
},
"safe_to_retry": {
"type": "boolean"
},
"stable_resource": {
"type": "boolean"
},
"side_effect_class": {
"type": "string"
},
"discovery_visibility": {
"type": "string"
}
},
"additionalProperties": true
}
},
"payment-identifier": {
"info": {
"required": false
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"required"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"maxLength": 128,
"minLength": 16
},
"required": {
"type": "boolean"
}
}
}
}
}Provenance
- Seen in the source catalog
- 2026-05-26 09:00Z
- Last indexed by Roundhouse
- 2026-06-24 11:50Z
- Last enriched (probe, favicon, geo)
- 2026-09-14 10:45Z
- x402 version
- 2
- Max timeout
- 300s
- Liveness probe
- HTTP 503
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
Nothing indexed for this service or its provider yet. Not a claim that it is unused — only that we hold no record. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service x402.agoragentic.com and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=x402.agoragentic.com' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://x402.agoragentic.com/v1/web-scraper, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402, or use an organization key from https://roundhouseai.io/dashboard/team. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.