curl -X POST https://win.oneshotagent.com/v1/tools/web-read \
-H "Content-Type: application/json" \
-H "X-Payment-Proof: <your_x402_signature>" \
-d '{
"url": "https://example.com"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/web-read", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Payment-Proof": 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
}
}
Research
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 "X-Payment-Proof: <your_x402_signature>" \
-d '{
"url": "https://example.com"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/web-read", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Payment-Proof": 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
}
}
Authentication
Requires x402 payment proof in theX-Payment-Proof header.
Request Body
string
required
URL of the web page to read
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 later 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)
string
Screenshot of the page
object
Page metadata:
title, description, statusCodeboolean
Whether the markdown was truncated to 50KB
curl -X POST https://win.oneshotagent.com/v1/tools/web-read \
-H "Content-Type: application/json" \
-H "X-Payment-Proof: <your_x402_signature>" \
-d '{
"url": "https://example.com"
}'
const response = await fetch("https://win.oneshotagent.com/v1/tools/web-read", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Payment-Proof": 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
}
}
See Pricing for web read costs.
Notes
- Content is extracted with
only_main_contentmode - Markdown is truncated to 50KB if the page is very large
- Screenshots are generated server-side
- Results are returned inline; the terminal job remains available at
/v1/requests/{request_id}