AgentWork Web Evidence
api.agentwork.run
· AgentWork
Ten pay-per-call tools for agents: web read, fetch URL and URL to Markdown (batch, optional JavaScript rendering), batch web contents (up to 20 URLs), website change monitoring with hashes and line diffs, UK attraction changes, PDF text extraction and PDF pre-check, prompt-injection check (pattern rules plus a local Qwen3-4B classifier, rules-only fallback) and sanctions screening (UK, OFAC, EU, UN lists). x402 USDC on Base or Algorand, no account or API key.
api.agentwork.run via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
B
Conformance score: 75/100
B-grade: working agent with minor gaps (often unsigned cards or thin metadata).
click to expand breakdown
click to collapse breakdown
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedPer event type (7d)
Recent events (last 20)
| When | Event | Method | Status | Latency |
|---|---|---|---|---|
| 2026-10-23T16:04:21 | search_impression | — |
200 ok | — |
| 2026-10-22T00:32:54 | search_click | /agents |
— ok | 2ms |
| 2026-10-19T00:32:52 | search_click | /agents |
— ok | 9ms |
| 2026-10-18T00:32:53 | search_click | /agents |
— ok | 24ms |
| 2026-10-17T00:32:52 | search_click | /agents |
— ok | 6ms |
| 2026-10-16T00:32:52 | search_click | /agents |
— ok | 1ms |
| 2026-10-15T22:50:00 | search_click | /agents |
— ok | 1ms |
| 2026-10-15T00:32:55 | search_click | /agents |
— ok | 1ms |
| 2026-10-14T00:32:55 | search_click | /agents |
— ok | 1ms |
| 2026-10-13T00:32:53 | search_click | /agents |
— ok | 29ms |
| 2026-10-12T00:32:53 | search_click | /agents |
— ok | 3ms |
| 2026-10-11T00:32:53 | search_click | /agents |
— ok | 2ms |
| 2026-10-10T00:32:53 | search_click | /agents |
— ok | 2ms |
| 2026-10-09T00:32:53 | search_click | /agents |
— ok | 3ms |
| 2026-10-08T00:32:52 | search_click | /agents |
— ok | 4ms |
| 2026-10-07T17:43:26 | search_click | /agents |
— ok | 14ms |
| 2026-10-07T17:43:01 | search_click | /agents |
— ok | 4ms |
| 2026-10-07T17:42:23 | search_click | /agents |
— ok | 3ms |
| 2026-10-06T18:11:16 | search_click | /agents |
— ok | 2ms |
| 2026-10-06T17:18:12 | search_click | /agents |
— ok | 4ms |
Card history
8 snapshots drifted 7× Every change toagent-card.json
| Captured | Hash | Snapshot |
|---|---|---|
| 2026-10-21 12:15:39 current | 4bb40034457f… |
view → |
| 2026-10-20 23:21:13 | 986121d38c5f… |
view → |
| 2026-10-20 06:07:15 | 81d1bd966779… |
view → |
| 2026-10-19 12:33:56 | 8ada14735609… |
view → |
| 2026-10-16 15:51:45 | 86c214ea1088… |
view → |
| 2026-10-14 23:19:46 | f8a4bbf9d7c5… |
view → |
| 2026-10-10 11:13:38 | 9df47eb31532… |
view → |
| 2026-10-02 01:33:11 | 824767cefb83… |
view → |
Try it
Send a message to this agent live. Your prompt is proxied through Agenstry.
Endpoints
| Endpoint | Price | Currency |
|---|---|---|
https://api.agentwork.run/v1/web/read
|
0.005 | USDC |
https://api.agentwork.run/v1/pdf/read
|
0.01 | USDC |
https://api.agentwork.run/v1/web/fetch
|
0.005 | USDC |
https://api.agentwork.run/v1/web/changes
|
— | USDC |
https://api.agentwork.run/v1/web/markdown
|
— | USDC |
https://api.agentwork.run/v1/uk-attractions/changes
|
— | USDC |
0x1cfc6489bc9703a2a49715b8a746d8c6075f3a80 on Base
· basescan ↗
recurring_independent_payers
4/5
Several distinct payers observed, including repeat payers, with no single payer dominating.
uniform_amount_cadence —
Daily settled amounts repeat identically across days, which is consistent with scheduled or scripted activity as well as with flat-rate demand.
daily_volume_aggregate, active_day_cadence, amount_regularity, spike_concentration, settlement_wallet_overlap, payer_uniqueness, payer_concentration, payer_recurrence, payer_payee_overlap.
Derived from agent_revenue_daily, agents.payment_wallet, agent_payment_transactions.
Measured 2026-10-25.
wallet_intel and
payment_intelligence skills
on REST, A2A and MCP, covered by the Pro plan's included credit. API docs →
| Agent card | https://api.agentwork.run/.well-known/agent-card.json |
| Provider | https://api.agentwork.run |
| Docs | https://api.agentwork.run/skill.md |
Skills · 10 declared by this agent
These skills are declared by the agent. A taxonomy link appears only when we can classify a skill confidently.
Webpage text extraction: extract clean text from any webpage. Extract the clean readable text from a public webpage with title, headings, links and SHA-256; add…
Website change monitoring: detect webpage changes. Website change monitoring / webpage change detection — text_sha256 or previous_text diff for documentation, p…
PDF text extraction: extract text from a PDF URL. PDF text extraction / PDF to text — extract text from a public digital PDF into page-numbered JSON for RAG (no…
Fetch URL: compact page text and final URL. Fetch URL — compact fetch of a public webpage: final URL, HTTP status, content type, title, clean text and text_sha2…
Webpage to Markdown: convert any URL to clean Markdown. Convert a webpage URL to clean, LLM-ready Markdown for RAG and agents. Scrape URL to markdown — public w…
UK attraction website changes: confirmed price, hours, closure, offer and terms changes from daily HTML checks of 28 UK family attractions (Change Radar). $0.01…
Web contents: up to 20 URLs to clean Markdown or text in one call, $0.002 per URL. Batch web page contents for RAG and research agents — send 1-20 public URLs, …
PDF pre-check: is this URL a readable digital PDF? $0.001. Checks a public PDF before you pay for extraction: PDF version, page count, size, encryption, fonts (…
Prompt-injection check: scan untrusted text before your agent reads it, $0.003. Flags instruction overrides, role/system-tag spoofing, jailbreak personas, promp…
Sanctions screening: fuzzy-match a person or company name against the official UK (FCDO/OFSI), US OFAC SDN, EU and UN sanctions lists, $0.01. One call checks al…
Health · last 30 probes
Who's calling this agent 30d
31 interactions captured (impressions + lookups + A2A calls)
web
30
rest
1
Public view: top 3 per dimension. Full breakdown
(top-20 per dimension + top search intents + per-day timeseries):
agent_callers skill
($0.05/call, $0 on
Enterprise).
Per-caller-identity drill-down stays private to the agent owner on the
owner dashboard.
Cheaper or better alternatives per-skill
For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/api.agentwork.run) [](https://agenstry.com/agents/api.agentwork.run) [](https://agenstry.com/agents/api.agentwork.run) [](https://agenstry.com/agents/api.agentwork.run)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"name": "AgentWork Web Evidence",
"version": "web-evidence-1.10.3",
"description": "Ten pay-per-call tools for agents: web read, fetch URL and URL to Markdown (batch, optional JavaScript rendering), batch web contents (up to 20 URLs), website change monitoring with hashes and line diffs, UK attraction changes, PDF text extraction and PDF pre-check, prompt-injection check (pattern rules plus a local Qwen3-4B classifier, rules-only fallback) and sanctions screening (UK, OFAC, EU, UN lists). x402 USDC on Base or Algorand, no account or API key.",
"aliases": [
"web_read",
"read_webpage",
"fetch_url",
"url_to_markdown",
"scrape_url_to_markdown",
"extract_text_from_pdf",
"pdf_to_text",
"pdf_text_extraction",
"website_change_monitoring"
],
"url": "https://api.agentwork.run",
"documentationUrl": "https://api.agentwork.run/skill.md",
"recipes": "https://api.agentwork.run/recipes.md",
"openapi": "https://api.agentwork.run/openapi.json",
"sample": "https://api.agentwork.run/v1/web/sample",
"examples": {
"monitor": "https://api.agentwork.run/examples/monitor-client.mjs",
"research_brief": "https://api.agentwork.run/examples/research-brief.mjs",
"workflows": "https://api.agentwork.run/workflows.md"
},
"pricing": {
"currency": "USDC",
"networks": [
"eip155:8453",
"algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8="
],
"per_service_usdc": {
"web.read": "0.003",
"web.read.batch_per_url": "0.003",
"web.read.render_per_url": "0.01",
"web.read.safe_per_url": "0.001",
"web.changes": "0.005",
"web.changes.batch_per_url": "0.003",
"pdf.read": "0.01",
"uk.attractions.changes": "0.01",
"web.contents": "0.002",
"pdf.info": "0.001",
"text.injection_check": "0.003",
"compliance.sanctions_screen": "0.01"
},
"per_service_usdc_algorand": {
"web.read": "0.006",
"web.read.batch_per_url": "0.006",
"web.read.render_per_url": "0.02",
"web.read.safe_per_url": "0.002",
"web.changes": "0.01",
"web.changes.batch_per_url": "0.006",
"pdf.read": "0.01",
"uk.attractions.changes": "0.01",
"web.contents": "0.004",
"pdf.info": "0.002",
"text.injection_check": "0.006",
"compliance.sanctions_screen": "0.01"
},
"note": "web.read (and its /v1/web/fetch and /v1/web/markdown variants): one URL $0.003 Base / $0.006 Algorand; batches of 2-10 URLs $0.003 per URL ($0.006 Algorand); render=true $0.01 per URL ($0.02 Algorand). web.changes: one URL $0.005 / $0.01; items[] of 2-10 $0.003 per URL ($0.006 Algorand). The live 402 challenge states the exact total for your request body. Algorand web tools are 2x because the facilitator no longer sponsors sub-cent gas. PDF $0.01 on both.",
"account_required": false
},
"payments": {
"protocol": "x402",
"version": 2,
"networks": [
{
"network": "eip155:8453",
"payTo": "0x1cfC6489bC9703a2A49715b8a746D8c6075F3A80",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"currency": "USDC"
},
{
"network": "algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=",
"payTo": "PFHYLVHX77ANNQVF67LK6EVYB34D5VDIUOWLOL5SX367M366DBLOQQAOCA",
"asset": "31566704",
"currency": "USDC"
}
]
},
"skills": [
{
"id": "web.read",
"name": "Web read / read webpage",
"aliases": [
"web_read",
"read_webpage",
"url_to_text"
],
"description": "Webpage text extraction: extract clean text from any webpage. Extract the clean readable text from a public webpage with title, headings, links and SHA-256; add format=markdown for Markdown or render=true to render JavaScript pages. Web read / fetch URL / scrape URL to markdown \u2014 public webpage to clean text or Markdown with headings, links and SHA-256, for RAG and research. Batch up to 10 URLs; optional JavaScript rendering (headless Chromium). $0.003 per URL Base ($0.006 Algorand); batch of 2-10 $0.003/URL ($0.006); render $0.01/URL ($0.02). Synchronous JSON, no account; respects robots.txt; no paywall bypass. Failed reads not settled.",
"method": "POST",
"url": "https://api.agentwork.run/v1/web/read",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"anyOf": [
{
"required": [
"url"
]
},
{
"required": [
"urls"
]
}
],
"description": "Send url (one page) or urls (batch of 2-10). Omit format for the original text response; format=markdown adds a markdown field. render=true loads the page in headless Chromium first.",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTP/HTTPS URL; ports 80/443 and public IPv4 resolution only. Use url or urls, not both."
},
"urls": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"uniqueItems": true,
"items": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"description": "Batch of up to 10 public URLs. 2-10 URLs are priced $0.003 each on Base ($0.006 Algorand). Charged in full if at least one URL succeeds; per-URL errors are returned inline."
},
"format": {
"type": "string",
"enum": [
"text",
"markdown"
],
"default": "text",
"description": "markdown adds markdown + markdown_sha256 (text is still returned)"
},
"selector": {
"type": "string",
"maxLength": 300,
"description": "Optional CSS selector (e.g. \"main\", \"#pricing\", \"article .changelog\"). Only the first matching element is extracted; no match returns 422 SELECTOR_NOT_FOUND and nothing is settled. HTML only."
},
"render": {
"type": "boolean",
"default": false,
"description": "Execute JavaScript in headless Chromium before extraction. $0.01 per URL on Base ($0.02 Algorand). Images, media and fonts are not loaded."
},
"safe": {
"type": "boolean",
"default": false,
"description": "Add a prompt-injection scan of each page (safety: verdict clean/suspicious/injection, score, flagged excerpts). +$0.001 per URL on Base (+$0.002 Algorand)."
},
"max_chars": {
"type": "integer",
"minimum": 1000,
"maximum": 60000,
"default": 20000,
"description": "Maximum returned characters per URL (applies to text and markdown separately)"
}
}
},
"outputSchema": {
"type": "object",
"required": [
"ok"
],
"description": "Single URL: one result. Batch (urls[]): results[] in the same order, each a result or an inline error.",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"language": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"headings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "integer"
},
"text": {
"type": "string"
}
}
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
},
"batch": {
"const": true
},
"count": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"charged_urls": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"language": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"headings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "integer"
},
"text": {
"type": "string"
}
}
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"ok": {
"const": false
},
"url": {
"type": "string"
},
"error": {
"type": "string"
},
"status": {
"type": "integer"
},
"message": {
"type": "string"
}
}
}
]
}
}
}
},
"examples": [
"{\"skill\":\"web.read\",\"input\":{\"url\":\"https://example.com\"}}",
"{\"skill\":\"web.read\",\"input\":{\"url\":\"https://example.com\",\"format\":\"markdown\"}}",
"{\"skill\":\"web.read\",\"input\":{\"urls\":[\"https://example.com\",\"https://www.iana.org/help/example-domains\"],\"format\":\"markdown\"}}",
"{\"skill\":\"web.read\",\"input\":{\"url\":\"https://example.com\",\"render\":true,\"format\":\"markdown\"}}",
"{\"skill\":\"web.read\",\"input\":{\"url\":\"https://www.iana.org/help/example-domains\",\"selector\":\"main\"}}"
],
"price_usdc": {
"base": {
"single": "0.003",
"batch_per_url": "0.003",
"render_per_url": "0.01",
"safe_per_url": "0.001"
},
"algorand": {
"single": "0.006",
"batch_per_url": "0.006",
"render_per_url": "0.02",
"safe_per_url": "0.002"
}
},
"tags": [
"web",
"research",
"extraction",
"rag",
"text",
"markdown",
"web-read",
"fetch-url",
"url-to-markdown",
"scrape",
"batch",
"javascript-rendering"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
],
"input_examples": {
"single": {
"url": "https://example.com"
},
"markdown": {
"url": "https://example.com",
"format": "markdown"
},
"batch": {
"urls": [
"https://example.com",
"https://www.iana.org/help/example-domains"
],
"format": "markdown"
},
"render": {
"url": "https://example.com",
"render": true,
"format": "markdown"
},
"selector": {
"url": "https://www.iana.org/help/example-domains",
"selector": "main"
}
}
},
{
"id": "web.changes",
"name": "Website change monitoring",
"aliases": [
"website_change_monitoring",
"webpage_change_detection",
"monitor_url"
],
"description": "Website change monitoring: detect webpage changes. Website change monitoring / webpage change detection \u2014 text_sha256 or previous_text diff for documentation, pricing-page, changelog and policy monitoring. Batch up to 10 URLs in one call (items[]); optional CSS selector scoping and a one-line diff summary. $0.005 per URL Base ($0.01 Algorand); batch of 2-10 $0.003/URL ($0.006). Caller stores baseline; no server watch list. HTML/text only; no JS render. Failed checks not settled.",
"method": "POST",
"url": "https://api.agentwork.run/v1/web/changes",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"anyOf": [
{
"required": [
"url"
]
},
{
"required": [
"items"
]
}
],
"description": "Single URL: url + previous_sha256 or previous_text (omit both for the first snapshot). Batch: items[] of 1-10 {url, previous_sha256|previous_text}; 2-10 items are $0.003 each on Base ($0.006 Algorand). Keep max_chars and selector identical between runs.",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTP/HTTPS URL; ports 80/443 and public IPv4 resolution only. Use url or items, not both."
},
"max_chars": {
"type": "integer",
"minimum": 1000,
"maximum": 60000,
"default": 20000,
"description": "Maximum returned characters; keep identical between comparisons"
},
"previous_text": {
"type": "string",
"maxLength": 60000,
"description": "Exact text from the prior read, for line additions/removals"
},
"previous_sha256": {
"type": "string",
"pattern": "^[a-fA-F0-9]{64}$",
"description": "Prior text_sha256; provides a compact change check without line diff"
},
"items": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"description": "Batch of up to 10 pages to check in one paid call. Each item is a URL string (first snapshot) or {url, previous_sha256} / {url, previous_text}. Charged for every item when at least one succeeds; per-item errors are returned inline. Request body limit 1 MiB.",
"items": {
"anyOf": [
{
"type": "string",
"format": "uri",
"maxLength": 2048
},
{
"type": "object",
"required": [
"url"
],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"previous_text": {
"type": "string",
"maxLength": 60000,
"description": "Exact text from the prior read, for line additions/removals"
},
"previous_sha256": {
"type": "string",
"pattern": "^[a-fA-F0-9]{64}$",
"description": "Prior text_sha256; provides a compact change check without line diff"
}
}
}
]
}
},
"selector": {
"type": "string",
"maxLength": 300,
"description": "Optional CSS selector (e.g. \"main\", \"#pricing\", \"article .changelog\"). Only the first matching element is extracted; no match returns 422 SELECTOR_NOT_FOUND and nothing is settled. HTML only. Applied to every URL; comparison then covers only that element."
},
"diff_summary": {
"type": "boolean",
"default": false,
"description": "Add comparison.summary: one deterministic sentence such as \"Changed: 2 line(s) added, 1 removed. Added: ...\"."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"ok"
],
"description": "Single URL: one result with comparison. Batch (items[]): results[] in the same order, each a result with comparison or an inline error.",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"language": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"headings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "integer"
},
"text": {
"type": "string"
}
}
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
},
"comparison": {
"type": "object",
"description": "changed is null on the first snapshot (no baseline), else true/false",
"properties": {
"changed": {
"type": [
"boolean",
"null"
]
},
"previous_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"current_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"added": {
"type": "array",
"items": {
"type": "string"
}
},
"removed": {
"type": "array",
"items": {
"type": "string"
}
},
"added_lines": {
"type": "integer"
},
"removed_lines": {
"type": "integer"
},
"summary": {
"type": "string"
},
"selector": {
"type": "string"
}
}
},
"batch": {
"const": true
},
"count": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"charged_urls": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"language": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"headings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "integer"
},
"text": {
"type": "string"
}
}
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
},
"comparison": {
"type": "object",
"description": "changed is null on the first snapshot (no baseline), else true/false",
"properties": {
"changed": {
"type": [
"boolean",
"null"
]
},
"previous_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"current_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"added": {
"type": "array",
"items": {
"type": "string"
}
},
"removed": {
"type": "array",
"items": {
"type": "string"
}
},
"added_lines": {
"type": "integer"
},
"removed_lines": {
"type": "integer"
},
"summary": {
"type": "string"
},
"selector": {
"type": "string"
}
}
}
},
"description": "text is omitted when comparison.changed is false"
},
{
"type": "object",
"properties": {
"ok": {
"const": false
},
"url": {
"type": "string"
},
"error": {
"type": "string"
},
"status": {
"type": "integer"
},
"message": {
"type": "string"
}
}
}
]
}
}
}
},
"examples": [
"{\"skill\":\"web.changes\",\"input\":{\"url\":\"https://example.com\"}}",
"{\"skill\":\"web.changes\",\"input\":{\"url\":\"https://example.com\",\"previous_sha256\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\"}}",
"{\"skill\":\"web.changes\",\"input\":{\"url\":\"https://example.com\",\"previous_text\":\"Example Domain\\nOld text.\",\"diff_summary\":true}}",
"{\"skill\":\"web.changes\",\"input\":{\"items\":[{\"url\":\"https://example.com\",\"previous_sha256\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\"},\"https://www.iana.org/help/example-domains\"],\"diff_summary\":true}}",
"{\"skill\":\"web.changes\",\"input\":{\"url\":\"https://www.iana.org/help/example-domains\",\"previous_sha256\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\",\"selector\":\"main\"}}"
],
"price_usdc": {
"base": {
"single": "0.005",
"batch_per_url": "0.003"
},
"algorand": {
"single": "0.01",
"batch_per_url": "0.006"
}
},
"tags": [
"web",
"research",
"monitoring",
"change-detection",
"website-change-monitoring",
"webpage-diff",
"batch",
"changelog"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
],
"input_examples": {
"first_snapshot": {
"url": "https://example.com"
},
"hash_check": {
"url": "https://example.com",
"previous_sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
},
"line_diff": {
"url": "https://example.com",
"previous_text": "Example Domain\nOld text.",
"diff_summary": true
},
"batch": {
"items": [
{
"url": "https://example.com",
"previous_sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
},
"https://www.iana.org/help/example-domains"
],
"diff_summary": true
},
"selector": {
"url": "https://www.iana.org/help/example-domains",
"previous_sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"selector": "main"
}
}
},
{
"id": "pdf.read",
"name": "PDF text extraction",
"aliases": [
"pdf_text_extraction",
"extract_text_from_pdf",
"pdf_to_text"
],
"description": "PDF text extraction: extract text from a PDF URL. PDF text extraction / PDF to text \u2014 extract text from a public digital PDF into page-numbered JSON for RAG (no OCR). $0.01 USDC Base or Algorand. Caps 20 pages / 5 MiB / 100k chars; source + text SHA-256. No passwords or table reconstruction. Failed extractions not settled.",
"method": "POST",
"url": "https://api.agentwork.run/v1/pdf/read",
"inputSchema": {
"type": "object",
"required": [
"url"
],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTP/HTTPS URL to a digital PDF; no credentials or private addresses."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"ok"
],
"properties": {
"ok": {
"const": true
},
"url": {
"type": "string"
},
"page_count": {
"type": "integer"
},
"pages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"text": {
"type": "string"
},
"characters": {
"type": "integer"
}
}
}
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"truncated": {
"type": "boolean"
},
"empty_text_pages": {
"type": "array",
"items": {
"type": "integer"
}
},
"ocr_performed": {
"const": false
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"examples": [
"{\"skill\":\"pdf.read\",\"input\":{\"url\":\"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf\"}}"
],
"price_usdc": {
"base": {
"single": "0.01"
},
"algorand": {
"single": "0.01"
}
},
"tags": [
"pdf",
"text-extraction",
"documents",
"rag",
"pdf-to-text",
"extract-text-from-pdf",
"pdf-text-extraction"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
],
"input_examples": {
"single": {
"url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"
}
}
},
{
"id": "web.fetch",
"name": "Fetch URL (compact)",
"aliases": [
"fetch_url",
"url_fetch"
],
"description": "Fetch URL: compact page text and final URL. Fetch URL \u2014 compact fetch of a public webpage: final URL, HTTP status, content type, title, clean text and text_sha256 (no link or heading lists). Same engine and prices as web/read: $0.003 per URL Base ($0.006 Algorand); batch of 2-10 urls $0.003/URL; render=true $0.01/URL. robots.txt respected. Failed fetches not settled.",
"method": "POST",
"url": "https://api.agentwork.run/v1/web/fetch",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"anyOf": [
{
"required": [
"url"
]
},
{
"required": [
"urls"
]
}
],
"description": "Send url (one page) or urls (batch of 2-10). Compact output: final_url, source_status, content_type, title, text, text_sha256. render=true loads the page in headless Chromium first.",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTP/HTTPS URL; ports 80/443 and public IPv4 resolution only. Use url or urls, not both."
},
"urls": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"uniqueItems": true,
"items": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"description": "Batch of up to 10 public URLs. 2-10 URLs are priced $0.003 each on Base ($0.006 Algorand). Charged in full if at least one URL succeeds; per-URL errors are returned inline."
},
"format": {
"type": "string",
"enum": [
"text",
"markdown"
],
"default": "text",
"description": "markdown adds markdown + markdown_sha256 (text is still returned)"
},
"selector": {
"type": "string",
"maxLength": 300,
"description": "Optional CSS selector (e.g. \"main\", \"#pricing\", \"article .changelog\"). Only the first matching element is extracted; no match returns 422 SELECTOR_NOT_FOUND and nothing is settled. HTML only."
},
"render": {
"type": "boolean",
"default": false,
"description": "Execute JavaScript in headless Chromium before extraction. $0.01 per URL on Base ($0.02 Algorand). Images, media and fonts are not loaded."
},
"safe": {
"type": "boolean",
"default": false,
"description": "Add a prompt-injection scan of each page (safety: verdict clean/suspicious/injection, score, flagged excerpts). +$0.001 per URL on Base (+$0.002 Algorand)."
},
"max_chars": {
"type": "integer",
"minimum": 1000,
"maximum": 60000,
"default": 20000,
"description": "Maximum returned characters per URL (applies to text and markdown separately)"
}
}
},
"outputSchema": {
"type": "object",
"required": [
"ok"
],
"description": "Single URL: one result. Batch (urls[]): results[] in the same order, each a result or an inline error.",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
},
"batch": {
"const": true
},
"count": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"charged_urls": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"ok": {
"const": false
},
"url": {
"type": "string"
},
"error": {
"type": "string"
},
"status": {
"type": "integer"
},
"message": {
"type": "string"
}
}
}
]
}
}
}
},
"examples": [
"{\"skill\":\"web.fetch\",\"input\":{\"url\":\"https://example.com\"}}",
"{\"skill\":\"web.fetch\",\"input\":{\"urls\":[\"https://example.com\",\"https://www.iana.org/help/example-domains\"]}}",
"{\"skill\":\"web.fetch\",\"input\":{\"url\":\"https://example.com\",\"render\":true}}"
],
"price_usdc": {
"base": {
"single": "0.003",
"batch_per_url": "0.003",
"render_per_url": "0.01",
"safe_per_url": "0.001"
},
"algorand": {
"single": "0.006",
"batch_per_url": "0.006",
"render_per_url": "0.02",
"safe_per_url": "0.002"
}
},
"tags": [
"web",
"fetch-url",
"url-fetch",
"http",
"text",
"batch",
"javascript-rendering"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
],
"input_examples": {
"single": {
"url": "https://example.com"
},
"batch": {
"urls": [
"https://example.com",
"https://www.iana.org/help/example-domains"
]
},
"render": {
"url": "https://example.com",
"render": true
}
}
},
{
"id": "web.markdown",
"name": "Scrape URL to markdown",
"aliases": [
"scrape_url_to_markdown",
"url_to_markdown",
"fetch_url_to_markdown"
],
"description": "Webpage to Markdown: convert any URL to clean Markdown. Convert a webpage URL to clean, LLM-ready Markdown for RAG and agents. Scrape URL to markdown \u2014 public webpage to clean Markdown (headings, lists, links, tables, code) plus text and SHA-256, for RAG and LLM context. Same engine and prices as web/read with format=markdown by default: $0.003 per URL Base ($0.006 Algorand); batch of 2-10 urls $0.003/URL; render=true for JavaScript pages $0.01/URL. Failed reads not settled.",
"method": "POST",
"url": "https://api.agentwork.run/v1/web/markdown",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"anyOf": [
{
"required": [
"url"
]
},
{
"required": [
"urls"
]
}
],
"description": "Send url (one page) or urls (batch of 2-10). Returns markdown + markdown_sha256 (text is also returned). render=true loads the page in headless Chromium first.",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTP/HTTPS URL; ports 80/443 and public IPv4 resolution only. Use url or urls, not both."
},
"urls": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"uniqueItems": true,
"items": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"description": "Batch of up to 10 public URLs. 2-10 URLs are priced $0.003 each on Base ($0.006 Algorand). Charged in full if at least one URL succeeds; per-URL errors are returned inline."
},
"format": {
"type": "string",
"enum": [
"text",
"markdown"
],
"default": "markdown",
"description": "markdown adds markdown + markdown_sha256 (text is still returned)"
},
"selector": {
"type": "string",
"maxLength": 300,
"description": "Optional CSS selector (e.g. \"main\", \"#pricing\", \"article .changelog\"). Only the first matching element is extracted; no match returns 422 SELECTOR_NOT_FOUND and nothing is settled. HTML only."
},
"render": {
"type": "boolean",
"default": false,
"description": "Execute JavaScript in headless Chromium before extraction. $0.01 per URL on Base ($0.02 Algorand). Images, media and fonts are not loaded."
},
"safe": {
"type": "boolean",
"default": false,
"description": "Add a prompt-injection scan of each page (safety: verdict clean/suspicious/injection, score, flagged excerpts). +$0.001 per URL on Base (+$0.002 Algorand)."
},
"max_chars": {
"type": "integer",
"minimum": 1000,
"maximum": 60000,
"default": 20000,
"description": "Maximum returned characters per URL (applies to text and markdown separately)"
}
}
},
"outputSchema": {
"type": "object",
"required": [
"ok"
],
"description": "Single URL: one result. Batch (urls[]): results[] in the same order, each a result or an inline error.",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"language": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"headings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "integer"
},
"text": {
"type": "string"
}
}
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
},
"batch": {
"const": true
},
"count": {
"type": "integer"
},
"succeeded": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"charged_urls": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"ok": {
"const": true
},
"version": {
"type": "string"
},
"url": {
"type": "string"
},
"final_url": {
"type": "string"
},
"fetched_at": {
"type": "string",
"format": "date-time"
},
"source_status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"source_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"language": {
"type": "string"
},
"text": {
"type": "string"
},
"text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"characters": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"headings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "integer"
},
"text": {
"type": "string"
}
}
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
},
"format": {
"enum": [
"markdown"
]
},
"markdown": {
"type": "string"
},
"markdown_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selector": {
"type": "string"
},
"javascript_rendered": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"content_is_untrusted": {
"const": true
},
"request_id": {
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"ok": {
"const": false
},
"url": {
"type": "string"
},
"error": {
"type": "string"
},
"status": {
"type": "integer"
},
"message": {
"type": "string"
}
}
}
]
}
}
}
},
"examples": [
"{\"skill\":\"web.markdown\",\"input\":{\"url\":\"https://example.com\"}}",
"{\"skill\":\"web.markdown\",\"input\":{\"urls\":[\"https://example.com\",\"https://www.iana.org/help/example-domains\"]}}",
"{\"skill\":\"web.markdown\",\"input\":{\"url\":\"https://example.com\",\"render\":true}}"
],
"price_usdc": {
"base": {
"single": "0.003",
"batch_per_url": "0.003",
"render_per_url": "0.01",
"safe_per_url": "0.001"
},
"algorand": {
"single": "0.006",
"batch_per_url": "0.006",
"render_per_url": "0.02",
"safe_per_url": "0.002"
}
},
"tags": [
"web",
"markdown",
"scrape-url-to-markdown",
"url-to-markdown",
"html-to-markdown",
"rag",
"llm-context",
"batch",
"javascript-rendering"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
],
"input_examples": {
"single": {
"url": "https://example.com"
},
"batch": {
"urls": [
"https://example.com",
"https://www.iana.org/help/example-domains"
]
},
"render": {
"url": "https://example.com",
"render": true
}
}
},
{
"id": "uk.attractions.changes",
"name": "UK attraction changes",
"aliases": [
"uk_attraction_changes",
"uk_theme_park_changes",
"change_radar"
],
"description": "UK attraction website changes: confirmed price, hours, closure, offer and terms changes from daily HTML checks of 28 UK family attractions (Change Radar). $0.01 USDC on Base or Algorand. Filter by attraction slug, since date or category. Coverage is small and change volume is currently low; only differences seen on two consecutive runs are included. No fabricated data.",
"method": "POST",
"url": "https://api.agentwork.run/v1/uk-attractions/changes",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"attraction": {
"type": "string",
"description": "Attraction slug (e.g. flamingo-land). Optional."
},
"since": {
"type": "string",
"description": "ISO date or datetime; only changes at or after this time. Optional."
},
"category": {
"type": "string",
"enum": [
"price",
"hours",
"closure",
"offer",
"terms",
"other"
],
"description": "Change category filter. Optional."
}
}
},
"outputSchema": {
"type": "object",
"required": [
"ok",
"count",
"changes"
],
"properties": {
"ok": {
"const": true
},
"product": {
"type": "string"
},
"count": {
"type": "integer"
},
"filters": {
"type": "object"
},
"coverage": {
"type": "object"
},
"note": {
"type": "string"
},
"exported_at": {
"type": "string"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"attraction": {
"type": "string"
},
"attraction_name": {
"type": "string"
},
"change_type": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"before": {
"type": "array",
"items": {
"type": "string"
}
},
"after": {
"type": "array",
"items": {
"type": "string"
}
},
"detected_at": {
"type": "string"
},
"source_url": {
"type": "string"
},
"confirmed": {
"type": "boolean"
},
"summary": {
"type": "string"
}
}
}
}
}
},
"examples": [
"{\"skill\":\"uk.attractions.changes\",\"input\":{}}",
"{\"skill\":\"uk.attractions.changes\",\"input\":{\"attraction\":\"flamingo-land\"}}",
"{\"skill\":\"uk.attractions.changes\",\"input\":{\"category\":\"hours\"}}",
"{\"skill\":\"uk.attractions.changes\",\"input\":{\"since\":\"2026-10-01\"}}"
],
"price_usdc": {
"base": {
"single": "0.01"
},
"algorand": {
"single": "0.01"
}
},
"tags": [
"uk-attractions",
"theme-parks",
"change-detection",
"uk-travel",
"opening-hours",
"pricing"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
],
"input_examples": {
"all": {},
"by_attraction": {
"attraction": "flamingo-land"
},
"by_category": {
"category": "hours"
},
"since": {
"since": "2026-10-01"
}
}
},
{
"id": "web.contents",
"name": "Web contents (batch URLs to Markdown)",
"aliases": [
"get_contents",
"web_contents",
"batch_urls_to_markdown",
"urls_to_text"
],
"description": "Web contents: up to 20 URLs to clean Markdown or text in one call, $0.002 per URL. Batch web page contents for RAG and research agents \u2014 send 1-20 public URLs, get per-URL Markdown (or text), title, final URL, SHA-256 and inline errors. $0.002 per URL on Base ($0.004 Algorand); optional safe=true adds a prompt-injection scan per URL (+$0.001). Charged only if at least one URL succeeds. No account.",
"method": "POST",
"url": "https://api.agentwork.run/v1/web/contents",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"description": "Send urls (1-20) or a single url. format defaults to markdown.",
"properties": {
"urls": {
"type": "array",
"minItems": 1,
"maxItems": 20,
"uniqueItems": true,
"items": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"description": "1-20 public HTTP/HTTPS URLs. $0.002 each on Base ($0.004 Algorand)."
},
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "S
… truncated here: the card is 88,996 characters as printed. The complete card is published at https://api.agentwork.run/.well-known/agent-card.json.