Api Endpoint

Agent Screenshot Hub

Viewport or full page, optional element selector, dark mode and cookie banner removal. Returns base64 image plus a short lived fetch URL, byte size, load time and the final HTTP status of the page.

Open interactive test console

Offering

Provider
shot.halowerk.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Web Search Research
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://shot.halowerk.com/screenshot
MIME type
application/json
First seen
2026-10-16T01:52:13.818Z
Last seen
Tags
X402, halowerk, screenshot

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.004 USDC
Atomic price: 4000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "4000",
    "payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"
  }
]

Observed health

Status
Healthy
Latest latency
311 ms
Average latency
448 ms
HTTP status
204
Last checked
Reachability
100% over 9 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "POST"
      ]
    },
    "bodyType": {
      "type": "string",
      "enum": [
        "json",
        "form-data",
        "text"
      ]
    },
    "body": {
      "type": "object",
      "required": [
        "url"
      ],
      "additionalProperties": false,
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "Absolute http or https URL to render."
        },
        "width": {
          "type": "integer",
          "minimum": 320,
          "maximum": 2560,
          "default": 1280,
          "description": "Viewport width in CSS pixels."
        },
        "height": {
          "type": "integer",
          "minimum": 320,
          "maximum": 2000,
          "default": 800,
          "description": "Viewport height in CSS pixels."
        },
        "full_page": {
          "type": "boolean",
          "default": false,
          "description": "Capture the whole document instead of the viewport. Costs 0.006 USDC instead of 0.004 USDC."
        },
        "format": {
          "type": "string",
          "enum": [
            "png",
            "webp",
            "jpeg"
          ],
          "default": "png",
          "description": "Image format of the returned screenshot."
        },
        "quality": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 80,
          "description": "Compression quality for webp and jpeg. Ignored for png."
        },
        "delay_ms": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000,
          "default": 0,
          "description": "Wait this long after the document is ready before capturing. Counts against the 20 second budget."
        },
        "selector": {
          "type": "string",
          "maxLength": 300,
          "description": "CSS selector. When set, only that element is captured and full_page must stay off."
        },
        "dark_mode": {
          "type": "boolean",
          "default": false,
          "description": "Render with prefers-color-scheme: dark."
        },
        "block_cookiebanner": {
          "type": "boolean",
          "default": false,
          "description": "Remove common consent layers before capturing. The banner is hidden, never accepted."
        }
      }
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "input": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "http"
        },
        "method": {
          "type": "string",
          "enum": [
            "POST"
          ]
        },
        "bodyType": {
          "type": "string",
          "enum": [
            "json",
            "form-data",
            "text"
          ]
        },
        "body": {
          "type": "object",
          "required": [
            "url"
          ],
          "additionalProperties": false,
          "properties": {
            "url": {
              "type": "string",
              "format": "uri",
              "description": "Absolute http or https URL to render."
            },
            "width": {
              "type": "integer",
              "minimum": 320,
              "maximum": 2560,
              "default": 1280,
              "description": "Viewport width in CSS pixels."
            },
            "height": {
              "type": "integer",
              "minimum": 320,
              "maximum": 2000,
              "default": 800,
              "description": "Viewport height in CSS pixels."
            },
            "full_page": {
              "type": "boolean",
              "default": false,
              "description": "Capture the whole document instead of the viewport. Costs 0.006 USDC instead of 0.004 USDC."
            },
            "format": {
              "type": "string",
              "enum": [
                "png",
                "webp",
                "jpeg"
              ],
              "default": "png",
              "description": "Image format of the returned screenshot."
            },
            "quality": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 80,
              "description": "Compression quality for webp and jpeg. Ignored for png."
            },
            "delay_ms": {
              "type": "integer",
              "minimum": 0,
              "maximum": 10000,
              "default": 0,
              "description": "Wait this long after the document is ready before capturing. Counts against the 20 second budget."
            },
            "selector": {
              "type": "string",
              "maxLength": 300,
              "description": "CSS selector. When set, only that element is captured and full_page must stay off."
            },
            "dark_mode": {
              "type": "boolean",
              "default": false,
              "description": "Render with prefers-color-scheme: dark."
            },
            "block_cookiebanner": {
              "type": "boolean",
              "default": false,
              "description": "Remove common consent layers before capturing. The banner is hidden, never accepted."
            }
          }
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "input"
  ]
}