Allscreenshots Docs
Guides

OpenClaw integration

Add website screenshot capture to your OpenClaw AI agent

Add a screenshot skill to your OpenClaw AI agent and capture any website through natural language — from WhatsApp, Telegram, Slack, or Discord.

Why use a cloud API instead of OpenClaw's built-in browser?

OpenClaw has local browser automation via CDP, but for screenshots a cloud API is more reliable:

  • No local Chrome dependency — the API renders in a managed browser, so you don't need Chrome installed on the host machine
  • Stealth mode — bypasses bot detection on Cloudflare, Akamai, and other WAFs that block headless browsers
  • Cookie banner blocking — automatically removes consent popups without custom selectors
  • Full-page capture — captures the entire scrollable page, not just the viewport
  • Consistent results — no memory issues or rendering differences across machines

Setup

Get your API key

Sign up at dashboard.allscreenshots.com and copy your API key.

Configure the environment variable

Add your key to OpenClaw's workspace environment:

echo 'ALLSCREENSHOTS_API_KEY=your_api_key_here' >> ~/.openclaw/workspace/.env

Verify it's set:

grep ALLSCREENSHOTS ~/.openclaw/workspace/.env

Create the skill

Create the skill directory and SKILL.md file:

mkdir -p ~/.openclaw/skills/allscreenshots

Then create ~/.openclaw/skills/allscreenshots/SKILL.md with the content below.

SKILL.md

Copy this file into ~/.openclaw/skills/allscreenshots/SKILL.md:

---
name: allscreenshots
description: Take website screenshots, capture full pages, generate PDFs. Handles desktop, mobile, dark mode, stealth mode, cookie banner blocking, and batch URLs via the Allscreenshots cloud API.
version: 1.0.0
metadata: {"openclaw":{"emoji":"📸","requires":{"bins":["curl","jq"],"env":["ALLSCREENSHOTS_API_KEY"]},"primaryEnv":"ALLSCREENSHOTS_API_KEY"}}
---

# Allscreenshots – Website Screenshot Capture

Capture pixel-perfect website screenshots via the Allscreenshots
cloud API. No local browser needed.

## Setup

1. Get an API key at https://dashboard.allscreenshots.com
2. Add to ~/.openclaw/workspace/.env:
   ALLSCREENSHOTS_API_KEY=your_api_key_here

## API Base

Endpoint: https://api.allscreenshots.com/v1/screenshots
Auth header: Bearer $ALLSCREENSHOTS_API_KEY

## Operations

### Desktop screenshot (default)

curl -s -X POST \
  -H "Authorization: Bearer $ALLSCREENSHOTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"TARGET_URL","fullPage":true,"viewport":{"width":1280,"height":800},"blockAds":true,"blockCookieBanners":true,"stealth":true,"responseType":"url"}' \
  "https://api.allscreenshots.com/v1/screenshots" | jq

### Mobile screenshot

curl -s -X POST \
  -H "Authorization: Bearer $ALLSCREENSHOTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"TARGET_URL","fullPage":true,"viewport":{"width":375,"height":812},"deviceScaleFactor":3,"blockAds":true,"blockCookieBanners":true,"stealth":true,"responseType":"url"}' \
  "https://api.allscreenshots.com/v1/screenshots" | jq

### Dark mode

Add "darkMode": true to any request body above.

### PDF export

Add "format": "pdf" to any request body above.

### Viewport-only screenshot

Set "fullPage": false to capture only the visible viewport.

## Parameter Reference

- fullPage: true captures the entire scrollable page
- blockAds: true removes ads and trackers
- blockCookieBanners: true hides cookie consent popups
- stealth: true uses anti-detection mode for bot-protected sites
- darkMode: true injects prefers-color-scheme: dark
- format: "pdf" returns a PDF instead of PNG
- responseType: controls what the API returns
  - "binary" (default) – raw image bytes
  - "base64" – JSON with base64-encoded image data
  - "url" – JSON with a CDN link to the stored image

## Response

When responseType is "url" (recommended for OpenClaw):
{ "storageUrl": "https://storage.allscreenshots.com/abc.png" }
Send the storageUrl back to the user as an image.

When responseType is "binary" (default):
Raw image bytes. Pipe to a file with curl -o output.png

When responseType is "base64":
{ "data": "iVBORw0KGgo..." }
Base64 payload, useful for embedding in HTML or emails.

The metadata field tells OpenClaw which binaries (curl, jq) and environment variables (ALLSCREENSHOTS_API_KEY) the skill requires. OpenClaw checks these before activating the skill.

Response types

The responseType parameter controls what the API returns. Choose based on your use case:

ValueReturnsBest for
"url"JSON with CDN link to stored imageChat messages — send the link as an image
"binary"Raw image bytesSaving directly to a file
"base64"JSON with base64-encoded dataEmbedding in HTML, emails, or passing to other APIs

For OpenClaw skills, "url" is recommended — the agent gets a shareable link it can post directly in your chat.

Parameters

ParameterTypeDefaultDescription
urlstringrequiredThe URL to capture
fullPagebooleanfalseCapture the entire scrollable page
viewportobject{width: 1920, height: 1080}Browser viewport size
deviceScaleFactornumber1Pixel density (use 3 for Retina/mobile)
formatstring"png"Output format: "png", "jpeg", or "pdf"
blockAdsbooleanfalseRemove ads and trackers
blockCookieBannersbooleanfalseHide cookie consent popups
stealthbooleanfalseAnti-detection mode for bot-protected sites
darkModebooleanfalseInject prefers-color-scheme: dark
responseTypestring"binary"Response format: "binary", "base64", or "url"

Scheduled captures

OpenClaw supports cron scheduling. Tell your agent:

Every morning at 9am, take a screenshot of https://mysite.com and send it here

OpenClaw creates a recurring task using the screenshot skill. Useful for:

  • Visual monitoring — catch layout breakages before customers do
  • Competitor tracking — archive competitor sites daily
  • Compliance — scheduled captures for audit trails

Batch captures

Ask OpenClaw to process multiple URLs:

Screenshot these sites:

The agent iterates through the list, calling the API for each URL, and returns all screenshots.

Troubleshooting

ProblemSolution
"ALLSCREENSHOTS_API_KEY not set"Check ~/.openclaw/workspace/.env contains the key
Skill not activatingVerify the file is at ~/.openclaw/skills/allscreenshots/SKILL.md — directory name must match
curl or jq not foundInstall with brew install curl jq (macOS) or apt install curl jq (Linux)
Timeout on large pagesAdd "timeout": 30000 to the request body (value in milliseconds)
Bot-protected site returns blankEnsure "stealth": true is in the request body

On this page