# ScreenshotOne

> **You are on:** `https://beta-api.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API |
> |---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com |
> | Beta | beta.paywithlocus.com | beta-api.paywithlocus.com |
> | Stage | stage.paywithlocus.com | stage-api.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Website screenshot API — capture any URL, HTML, or markdown as PNG, JPEG, WebP, or PDF. Full-page, element selection, dark mode, ad blocking, and more.

**Category:** Developer Tools | **Website:** [screenshotone.com](https://screenshotone.com) | **Docs:** [screenshotone.com/docs/getting-started/](https://screenshotone.com/docs/getting-started/)

## Access Methods

| Method | Base URL | Auth |
|--------|----------|------|
| **MPP (Tempo)** | `https://screenshotone.mpp.paywithlocus.com/screenshotone/` | HTTP 402 auto-payment |
| **Wrapped API** | `https://beta-api.paywithlocus.com/api/wrapped/screenshotone/` | `Authorization: Bearer <LOCUS_API_KEY>` |

**OpenAPI discovery:** `GET https://screenshotone.mpp.paywithlocus.com/openapi.json`

## Endpoints

### Take Screenshot

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.

**Estimated cost:** $0.055

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

```bash
curl -X POST https://screenshotone.mpp.paywithlocus.com/screenshotone/take \
  -H "Content-Type: application/json" \
  -d '{"url":"<string>","html":"<string>","markdown":"<string>","format":"<string>","full_page":"<boolean>","selector":"<string>","viewport_width":"<number>","viewport_height":"<number>","device_scale_factor":"<number>","image_quality":"<number>","dark_mode":"<boolean>","block_cookie_banners":"<boolean>","block_ads":"<boolean>","delay":"<number>","timeout":"<number>","wait_for_selector":"<string>","response_type":"<string>"}'
```
