# ScreenshotOne Take Screenshot

> ScreenshotOne Take Screenshot is a paid API for AI agents from ScreenshotOne at screenshotone.mpp.paywithlocus.com, paid per call via MPP, $0.055/call, not verified (last probed 2026-10-10); live alternatives: Stableflare Screenshot API ($0.05) and WithZero Screenshot API (free).

Agents call it through Zero, which pays per call: no API key and no wallet of your own. New accounts start with $5.

Live alternatives for the same use case:
- [Stableflare Screenshot API](https://www.zero.xyz/c/stableflare-dev-03b71e1d) ($0.05)
- [WithZero Screenshot API](https://www.zero.xyz/c/withzero-screenshot-api-24974791) (free)

Captures a screenshot of a URL, HTML, or Markdown content and returns it as an image or PDF

## Facts

- Endpoint: POST https://screenshotone.mpp.paywithlocus.com/screenshotone/take?utm_source=zero.xyz
- Price: $0.055/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-10
- Success rate: 0% of calls made through Zero
- Activations on Zero: 2
- Provider: ScreenshotOne
- Docs: https://screenshotone.com/docs/getting-started/
- Website: https://screenshotone.com
- Tags: screenshots, webpage-capture, rendering, compute
- Canonical page: https://www.zero.xyz/c/screenshotone-take-45061ec4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4hV0mxXsIRQrQEc0qIo6r

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability screenshotone-take-45061ec4 -d '<json body>'
```

Example prompt: Take a full-page screenshot of https://example.com in PNG format at 1280x1024 viewport, block ads and cookie banners, and return it as JSON.

## When to prefer this

Use this endpoint when you need to visually capture a webpage, render custom HTML/Markdown to an image, capture a specific DOM element, or generate a PDF from a URL. It is ideal for generating visual previews, thumbnails, or archival screenshots with fine-grained control over viewport, dark mode, ad blocking, and output format.

## Known failure modes

- URL is unreachable or returns an error — timeout or network failure
- Invalid CSS selector causes element screenshot to fail
- Timeout exceeded for slow-loading pages — returns timeout error
- Unsupported format value — returns validation error
- Missing required input (none of url/html/markdown provided) — returns 400 error
- Page requires authentication or is blocked — returns blank or error screenshot

## How this service works

Capture a screenshot of any URL, HTML content, or markdown. Returns the image as binary data (PNG, JPEG, WebP, PDF). Supports full-page capture, element selection, dark mode, ad blocking, custom viewport, and more.

## Output

Returns a screenshot of the requested URL, HTML, or Markdown as a binary image (PNG, JPEG, WebP, GIF) or PDF, or a JSON object containing base64-encoded image data, depending on the response_type parameter.

## Example request

```json
{
 "url": "https://example.com",
 "format": "png",
 "timeout": 30,
 "block_ads": true,
 "image_quality": 80,
 "viewport_width": 1280,
 "viewport_height": 1024,
 "block_cookie_banners": true
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "allOf": [
  {
   "anyOf": [
    {
     "required": [
      "url"
     ]
    },
    {
     "required": [
      "html"
     ]
    },
    {
     "required": [
      "markdown"
     ]
    }
   ],
   "description": "One of url, html, or markdown is required"
  }
 ],
 "properties": {
  "url": {
   "type": "string",
   "description": "URL to screenshot (one of url/html/markdown required)"
  },
  "html": {
   "type": "string",
   "description": "HTML content to render"
  },
  "delay": {
   "type": "number",
   "description": "Wait seconds before screenshot"
  },
  "format": {
   "type": "string",
   "description": "Output: png, jpeg, webp, gif, pdf (default: jpg)"
  },
  "timeout": {
   "type": "number",
   "description": "Max seconds (default: 60)"
  },
  "markdown": {
   "type": "string",
   "description": "Markdown content to render"
  },
  "selector": {
   "type": "string",
   "description": "CSS selector for element screenshot"
  },
  "block_ads": {
   "type": "boolean",
   "description": "Block advertisements"
  },
  "dark_mode": {
   "type": "boolean",
   "description": "Enable dark mode"
  },
  "full_page": {
   "type": "boolean",
   "description": "Capture entire page (default: false)"
  },
  "image_quality": {
   "type": "number",
   "description": "Quality 0-100 (default: 80)"
  },
  "response_type": {
   "type": "string",
   "description": "\"by_format\" (default), \"json\", or \"empty\""
  },
  "viewport_width": {
   "type": "number",
   "description": "Browser width in pixels (default: 1280)"
  },
  "viewport_height": {
   "type": "number",
   "description": "Browser height in pixels (default: 1024)"
  },
  "wait_for_selector": {
   "type": "string",
   "description": "CSS selector to wait for"
  },
  "device_scale_factor": {
   "type": "number",
   "description": "Device pixel ratio 1-5 (default: 1)"
  },
  "block_cookie_banners": {
   "type": "boolean",
   "description": "Block cookie/GDPR banners"
  }
 },
 "additionalProperties": true
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/screenshotone-take-45061ec4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from screenshotone.mpp.paywithlocus.com](https://www.zero.xyz/host/screenshotone.mpp.paywithlocus.com/llms.txt)
