curl -X POST https://win.oneshotagent.com/v1/tools/web-read \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"url": "https://example.com"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/web-read", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
url: "https://example.com",
}),
});
const result = await agent.webRead({
url: 'https://example.com',
});
console.log(result.markdown);
console.log(result.screenshot_url);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "web_read",
"url": "https://example.com",
"markdown": "# Example Domain\n\nThis domain is for use in illustrative examples...",
"screenshot_url": "https://storage.example.com/screenshot.png",
"metadata": {
"title": "Example Domain",
"description": "",
"statusCode": 200
},
"truncated": false,
"hidden_removed": 0
}
}
Web & Browser
Web Read
Read a web page and extract content as markdown with screenshot
POST
/
v1
/
tools
/
web-read
curl -X POST https://win.oneshotagent.com/v1/tools/web-read \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"url": "https://example.com"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/web-read", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
url: "https://example.com",
}),
});
const result = await agent.webRead({
url: 'https://example.com',
});
console.log(result.markdown);
console.log(result.screenshot_url);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "web_read",
"url": "https://example.com",
"markdown": "# Example Domain\n\nThis domain is for use in illustrative examples...",
"screenshot_url": "https://storage.example.com/screenshot.png",
"metadata": {
"title": "Example Domain",
"description": "",
"statusCode": 200
},
"truncated": false,
"hidden_removed": 0
}
}
Authentication
Requires x402 payment in thepayment-signature header.
Request Body
string
required
Public HTTP or HTTPS URL of the web page to read. URLs with credentials, private, loopback, or link-local addresses are refused before a scraping provider is called. Hostnames must resolve exclusively to public addresses.
Response (200 OK)
Top-level envelope:success (boolean) and data (object). All fields below are nested under data.
string
Durable job ID for audit and lookup
string
Job status:
completedstring
Always
web_readResult
Also nested underdata, alongside the fields above.
string
The URL that was read
string
Page content extracted as markdown (max 50KB). When source HTML is available, hidden subtrees and all comments are removed before local Markdown conversion; provider Markdown cannot reintroduce their text. Conversion prefers the visible
<main> element, or the full page when none exists. Literal markup rendered from source text stays escaped text. Markdown-only responses are filtered for embedded hidden HTML. Image alt text, zero-width characters and bidi controls are also removed before truncation.string
Screenshot of the page
object
Page metadata:
title, description, statusCodeboolean
Whether the markdown was truncated to 50KB
number
Number of hidden segments removed, including metadata. Each removed subtree, comment, alt attribute or consecutive run of control characters counts once.
curl -X POST https://win.oneshotagent.com/v1/tools/web-read \
-H "Content-Type: application/json" \
-H "payment-signature: <base64 x402 payment>" \
-d '{
"url": "https://example.com"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/web-read", {
method: "POST",
headers: {
"Content-Type": "application/json",
"payment-signature": paymentProof,
},
body: JSON.stringify({
url: "https://example.com",
}),
});
const result = await agent.webRead({
url: 'https://example.com',
});
console.log(result.markdown);
console.log(result.screenshot_url);
{
"success": true,
"data": {
"request_id": "uuid",
"receipt_id": "rcpt_...",
"status": "completed",
"tool": "web_read",
"url": "https://example.com",
"markdown": "# Example Domain\n\nThis domain is for use in illustrative examples...",
"screenshot_url": "https://storage.example.com/screenshot.png",
"metadata": {
"title": "Example Domain",
"description": "",
"statusCode": 200
},
"truncated": false,
"hidden_removed": 0
}
}
See Pricing for web read costs.
Notes
- Only the page’s main content is returned
- Markdown over 50KB is truncated
- Screenshots are taken server-side
- Results return inline. The finished job stays available at
/v1/requests/{request_id}