Turn website metadata into a reusable schema
$0.027 USDC maxExtract a public page's metadata, then infer a JSON Schema for the normalized result so downstream agents can validate future records.
Inspect the 2-step recipeExtract webpage metadata from one public URL: page title, meta description, canonical URL, headings, hreflang, icons, feeds, Open Graph, Twitter Cards, and JSON-LD Schema.org types, with redirect and response provenance plus privacy-safe, publisher-asserted Organization facts with field evidence.
https://apiacre.com/v1/web/metadataSend the JSON body below. An unpaid request returns HTTP 402 with a PAYMENT-REQUIRED header; an x402-compatible buyer signs the requirement and retries with PAYMENT-SIGNATURE.
Pay $0.002 USDC and run in your browserCoinbase Agentic Wallet can satisfy this x402 request in one command. Running it may pay automatically, so --max-amount is fixed to $0.002 USDC in atomic units. Copying the command does not install, authenticate, sign, or pay; review the request and use a separate low-value wallet before running it.
npx --yes awal@latest x402 pay https://apiacre.com/v1/web/metadata \
-X POST \
-d '{"url":"https://apiacre.com"}' \
--max-amount 2000 \
--jsonCoinbase pay-for-service documentation · Buyer setup and wallet safety
Run check first without payment. Its fetch command may automatically pay up to the exact listed price.
npx --yes agentcash@latest check https://apiacre.com/v1/web/metadata
npx --yes agentcash@latest fetch https://apiacre.com/v1/web/metadata \
--method POST \
--header 'content-type: application/json' \
--body '{"url":"https://apiacre.com"}' \
--payment-protocol x402 \
--payment-network base \
--max-amount 0.002{
"url": "https://apiacre.com"
}{
"request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
"service": "web.metadata",
"version": "1",
"data": {
"requestedUrl": "https://apiacre.com/",
"redirected": false,
"url": "https://apiacre.com/",
"title": "API Acre \u2014 Pay-per-call APIs on Base",
"description": "70 pay-per-call APIs for agents, settled in USDC on Base through x402.",
"canonical": "https://apiacre.com",
"language": "en",
"document": {
"charset": "utf-8",
"viewport": "width=device-width,initial-scale=1",
"robots": "index,follow",
"author": null,
"generator": null,
"themeColor": null
},
"openGraph": {
"title": "API Acre \u2014 Pay-per-call APIs on Base",
"description": "Buy focused web, document, developer, research, and EVM results with USDC over x402.",
"image": null,
"imageAlt": null,
"url": "https://apiacre.com",
"type": "website",
"siteName": null,
"locale": null
},
"twitter": {
"card": null,
"title": null,
"description": null,
"image": null,
"imageAlt": null,
"site": null,
"creator": null
},
"headings": {
"h1": [
"Useful APIs. One call at a time."
],
"h2Count": 2,
"h3Count": 55
},
"alternates": [],
"feeds": [],
"icons": [],
"structuredData": {
"blocks": 1,
"validBlocks": 1,
"invalidBlocks": 0,
"types": [
"Organization",
"WebAPI"
],
"truncated": false,
"organizationFacts": {
"status": "complete",
"method": "apiacre-schemaorg-organization-facts/1",
"scope": "Publisher-asserted Schema.org Organization facts; not verification of identity, domain ownership, or legal status. Person and contact fields are excluded.",
"publisherAsserted": true,
"identityVerified": false,
"domainOwnershipVerified": false,
"legalStatusVerified": false,
"additionalNetworkRequestsMade": 0,
"sourceScriptsSha256": "0afe4ab775e3985222320128f13c95ea10bf90021a8a8915479873f26f2fc40d",
"vocabulary": {
"name": "Schema.org",
"url": "https://schema.org/",
"license": "CC BY-SA 3.0",
"licenseUrl": "https://creativecommons.org/licenses/by-sa/3.0/"
},
"scriptsSeen": 1,
"scriptsProcessed": 1,
"nodesSeen": 2,
"organizationsReturned": 1,
"organizations": [
{
"type": "Organization",
"id": null,
"fields": {
"name": "API Acre",
"url": "https://apiacre.com"
},
"evidence": [
{
"field": "name",
"blockIndex": 0,
"jsonPointer": "/provider/name",
"valueSha256": "8538606619feeaf0e13ae5d29a5a81970b47bedc403e6468475c08209c140da7"
},
{
"field": "url",
"blockIndex": 0,
"jsonPointer": "/provider/url",
"valueSha256": "2995a6567e3c0dfe6fca040f7bc2c4de577ed3f777d5e6548ed3986557d2a44b"
}
]
}
],
"conflicts": [],
"warnings": [],
"limits": {
"maxScriptsProcessed": 100,
"maxInputCharacters": 500000,
"maxObjectNodes": 500,
"maxDepth": 20,
"processingBudgetMs": 1000
}
}
},
"response": {
"statusCode": 200,
"contentType": "text/html; charset=utf-8",
"elapsedMs": 42,
"bytes": 21633,
"bodySha256": "3886972b5512bf62a93dbdf790af504cab300572de9837088909ebd4aa3a3b4e"
}
},
"meta": {
"duration_ms": 42,
"cached": false,
"sources": [],
"warnings": [],
"next_actions": [
{
"service": "web.extract",
"title": "Web content extraction",
"reason": "Retrieve the same public URL as clean text or Markdown with bounded structured links and page signals for downstream research or RAG.",
"method": "POST",
"path": "/v1/web/extract",
"price": "$0.01",
"input_template": {
"url": "$request.url",
"output": "markdown"
},
"use_output": "Use result.data.content as the normalized page body, result.data.links as a bounded link inventory, and the hashes as fetch-specific provenance.",
"handoff_path": "/catalog/web.extract",
"checkout_path": "/try/web.extract",
"sample_path": "/samples/web.extract",
"maximum_atomic_usdc": "10000",
"handoff_payment_required": false,
"executes_automatically": false,
"authorization_required": true
},
{
"service": "data.schema",
"title": "JSON Schema generator",
"reason": "Turn the normalized metadata result into a reusable validation contract.",
"method": "POST",
"path": "/v1/data/schema",
"price": "$0.025",
"input_template": {
"content": "$json($result.data)",
"format": "json"
},
"use_output": "Persist result.data.schema to validate future metadata records.",
"handoff_path": "/catalog/data.schema",
"checkout_path": "/try/data.schema",
"sample_path": "/samples/data.schema",
"maximum_atomic_usdc": "25000",
"handoff_payment_required": false,
"executes_automatically": false,
"authorization_required": true
},
{
"service": "web.domain-intelligence",
"title": "Domain intelligence",
"reason": "Add DNS, TLS, RDAP, mail-policy, and domain-age evidence for the same public website.",
"method": "POST",
"path": "/v1/web/domain-intelligence",
"price": "$0.02",
"input_template": {
"url": "$request.url"
},
"use_output": "Use result.data.signals and warnings as bounded technical domain evidence; do not treat them as an ownership or safety verdict.",
"handoff_path": "/catalog/web.domain-intelligence",
"checkout_path": "/try/web.domain-intelligence",
"sample_path": "/samples/web.domain-intelligence",
"maximum_atomic_usdc": "20000",
"handoff_payment_required": false,
"executes_automatically": false,
"authorization_required": true
}
]
}
}These buyer-controlled recipes connect this service to compatible API Acre results. Every step has its own exact price and requires separate authorization.
Extract a public page's metadata, then infer a JSON Schema for the normalized result so downstream agents can validate future records.
Inspect the 2-step recipeConvert one public URL into clean Markdown and collect canonical, social, hreflang, feed, heading, and JSON-LD metadata for RAG ingestion, research, or content indexing. The two results come from separate bounded fetches and each call requires its own buyer authorization.
Inspect the 2-step recipeCollect publisher-asserted page metadata, then combine public DNS, TLS, RDAP, and focused mail-authentication records for the same site. Results are time-specific configuration evidence, not an identity, ownership, delivery, or safety verdict.
Inspect the 3-step recipeThese optional follow-ups use this result in a larger workflow. Each call shows a fresh x402 challenge and requires separate buyer authorization.
Retrieve the same public URL as clean text or Markdown with bounded structured links and page signals for downstream research or RAG.
Review and run this separate callTurn the normalized metadata result into a reusable validation contract.
Review and run this separate callAdd DNS, TLS, RDAP, mail-policy, and domain-age evidence for the same public website.
Review and run this separate callcurl -i -X POST 'https://apiacre.com/v1/web/metadata' \
-H 'content-type: application/json' \
--data '{"url":"https://apiacre.com"}'