{
  "serviceId": "agentsearch-web-render-v1",
  "displayName": "AgentSearch Web Render",
  "description": "Load a URL in headless Chromium with JavaScript executed and get the rendered page back for an LLM or RAG pipeline: markdown, text, HTML, title, links and an optional screenshot. POST /v1/render with {url}. Robots.txt is honored and private addresses are refused. JSON in, JSON out, errors included. Pay per request in USDC; no account, no API key.",
  "category": "web",
  "resourceUrl": "https://agent.pocket.network/v1/agentsearch-web-render-v1",
  "priceUsd": "0.005000",
  "priceVersion": 1,
  "rails": [
    {
      "id": "base",
      "network": "eip155:8453",
      "chainId": 8453,
      "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "tokenDecimals": 6,
      "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
    }
  ],
  "paymentNetworks": [
    "eip155:8453",
    "eip155:4217"
  ],
  "paymentProtocols": [
    "x402",
    "mpp"
  ],
  "protocols": [
    "rest"
  ],
  "inputSchema": {
    "type": "object",
    "description": "A render request. The body is JSON and is bounded by the service at 8 KiB.",
    "properties": {
      "url": {
        "type": "string",
        "maxLength": 4096,
        "description": "The public page to render (http or https, port 80 or 443)."
      },
      "formats": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "markdown",
            "text",
            "html",
            "links"
          ]
        },
        "description": "Which renderings to return (default markdown)."
      },
      "max_chars": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100000,
        "description": "Cap on returned characters (default 20000)."
      },
      "screenshot": {
        "type": "boolean",
        "description": "Include a base64 screenshot, at most 1 MB (default false)."
      },
      "screenshot_format": {
        "type": "string",
        "enum": [
          "png",
          "jpeg"
        ],
        "description": "Screenshot encoding (default png)."
      },
      "full_page": {
        "type": "boolean",
        "description": "Screenshot the full page, clipped to 4000 px high (default false)."
      },
      "viewport": {
        "type": "object",
        "description": "Viewport size in pixels.",
        "properties": {
          "width": {
            "type": "integer",
            "minimum": 320,
            "maximum": 1920
          },
          "height": {
            "type": "integer",
            "minimum": 240,
            "maximum": 1600
          }
        }
      },
      "wait_until": {
        "type": "string",
        "enum": [
          "domcontentloaded",
          "load",
          "networkidle"
        ],
        "description": "When the page counts as loaded (default domcontentloaded)."
      },
      "wait_for_selector": {
        "type": "string",
        "maxLength": 300,
        "description": "A CSS selector to wait for, at most 1.5 s."
      },
      "wait_ms": {
        "type": "integer",
        "minimum": 0,
        "maximum": 1500,
        "description": "Extra wait after load, in milliseconds (default 0)."
      },
      "block": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "image",
            "media",
            "font",
            "stylesheet"
          ]
        },
        "description": "Resource types not to load (default media and font)."
      }
    },
    "required": [
      "url"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "For POST /v1/render, a JSON object with request_id, url, requested_url, status_code, title, meta (render_ms, fetched_at, chars, truncated, js, robots, content_type, lang), error (null on success), warnings, links and the requested renderings, plus screenshot when asked. A page that cannot be rendered answers 200 with an error code such as ROBOTS_DISALLOWED; a bad request answers 4xx with `{ error: { code, message, retryable } }`."
  },
  "methods": {
    "GET /v1/capabilities": "read",
    "GET /v1/health": "read",
    "GET /v1/version": "read",
    "POST /v1/render": "read"
  },
  "firstParty": true,
  "networks": [
    "eip155:8453",
    "eip155:4217"
  ],
  "serving": true,
  "page": "https://agent.pocket.network/services/agentsearch-web-render-v1",
  "descriptor": "https://agent.pocket.network/services/agentsearch-web-render-v1/descriptor.json"
}