Fetch a URL and get it back ready for an LLM or RAG pipeline: clean markdown (headings and links kept), plain text, the title, the page's links and fetch metadata. POST /v1/extract with {url} and optional formats and max_chars. JSON in, JSON out, errors included. Pay per request in USDC; no account, no API key.
Endpoint
POST https://test.agent.pocket.network/v1/agentsearch-web-extract-v1/v1/extract
Price per call
$0.005 USD
Networks payable on
Base Sepolia (eip155:84532)
Protocol
rest
Calling it
The first call returns 402 Payment Required with the terms. Sign for those terms and retry the same request with the payment attached.
Example request
A real, working call — the request the service card verifies against.
The response this call returned, captured 2026-09-25 15:53:08 UTC.
{
"portal": {
"provenance": "third-party-supplier",
"serviceId": "agentsearch-web-extract-v1",
"schemaCheck": "unchecked"
},
"data": {
"request_id": "05f5a4ebe2684c79867aa9bf3515c33d",
"url": "https://example.com/",
"title": "Example Domain",
"markdown": "# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)",
"text": "",
"links": [
{
"href": "https://iana.org/domains/example",
"text": "Learn more"
}
],
"meta": {
"status_code": 200,
"content_type": "text/html",
"fetched_at": "2026-09-25T15:53:07.843243+00:00",
"chars": 167,
"truncated": false
},
"error": null
}
}
Try it
Make one real paid call from your own wallet — about $0.005 on Base Sepolia (eip155:84532). The wallet signs; nothing here holds a key. You'll see exactly what the service answers.
No browser wallet found. Install MetaMask, Rabby, or Coinbase Wallet to try a call here.
Supported methods
Methods the registry lists for this service. The portal forwards any call as sent; the supplier decides what it answers, and a delivered answer is settled.
Methods AgentSearch Web Extract accepts, and whether each reads or writes.
Method
Effect
GET /v1/capabilities
read
GET /v1/health
read
GET /v1/version
read
POST /v1/extract
read
Schemas
Published by the service itself. The example above is generated from these.
Request schema
{
"type": "object",
"description": "An extraction request. The body is JSON and is bounded by the service at 16 KiB.",
"properties": {
"url": {
"type": "string",
"description": "The page to fetch (http or https)."
},
"formats": {
"type": "array",
"items": {
"type": "string",
"enum": [
"markdown",
"text"
]
},
"description": "Which renderings to return. Defaults to the service's own choice."
},
"max_chars": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Cap on returned characters (default 50000)."
}
},
"required": [
"url"
]
}
Response schema
{
"type": "object",
"description": "For POST /v1/extract, a JSON object with request_id, url, title, markdown, text, links (href and text), meta (status_code, content_type, fetched_at, chars, truncated) and error (null on success). A bad request answers 400 with `{ error: { code, message, request_id } }`."
}