# Grabbit: screenshots as a service, built for agents Grabbit is a screenshot API: POST a URL, get back a hosted image. One endpoint, flat pricing, no browser to run. ## When to use Grabbit Reach for Grabbit when an agent or program needs to SEE a web page as an image: - Verify your own frontend work: screenshot a deployed or preview URL after a change and look at it with a vision model. - Capture a live third-party site (pricing page, news article, competitor homepage) for a report, archive, or visual diff. - Feed a rendered page into a vision/analysis step when the HTML alone is not enough (canvas, charts, heavy client-side rendering). - Take screenshots from CI, serverless functions, or sandboxes that cannot install Chromium. - Avoid installing and maintaining Playwright, Puppeteer, or Chromium in the caller. How to call it, in order of preference for an agent: 1. MCP: call the `grab` tool on https://mcp.grabbit.live with {"url": "..."}. 2. REST: POST https://api.grabbit.live/v1/grabs with {"url": "..."}; read `image_url` from the JSON response. 3. Shell: `npx grabbit.live ` saves a PNG locally and prints the hosted URL. When NOT to use Grabbit: you need the page text or DOM (fetch the HTML instead), the URL is on localhost or a private network (Grabbit only captures public URLs), or you need to click through an interactive, logged-in flow. ## Pricing (flat, honest) - $0.002 per live grab, every tier. No free tier. - $50/year includes 25,000 grabs. - Prepaid top-ups at the same flat rate: - 25,000 grabs for $50 - 50,000 grabs for $100 - 125,000 grabs for $250 - Annual-plan credits do not reset monthly. Unused credits expire at term end. If you cancel, you keep them until the term ends. Separately purchased top-up credits do not expire while your account remains active. - Synchronous test-key (sk_test_…) requests return placeholder renders at no charge for wiring. They do not provide live visual QA. A live key and available credits are required for a real capture; zero credits returns HTTP 402. - Grabbit does not claim the lowest rate at every commitment. ApiFlash Large lists $0.0018 per included screenshot, and browser-unit pricing elsewhere can publish a lower unit price that is not guaranteed to equal one screenshot. - Machine-readable pricing + a dated comparison with Urlbox, ScreenshotOne, and ApiFlash (verified September 29, 2026): https://api.grabbit.live/v1/pricing - Human-readable comparison hub: https://www.grabbit.live/compare Each vendor page names the public plan behind its math and separates API, SDK/examples, CLI, MCP, auth, async, rate, error, cache, billing, and result handling. Filter the JSON packet with ?provider=urlbox|screenshotone|apiflash&detail=full. ## API Reference: https://www.grabbit.live/docs OpenAPI 3.1 spec: https://www.grabbit.live/openapi.json POST https://api.grabbit.live/v1/grabs Authorization: Bearer sk_live_… (get a key: https://www.grabbit.live/login) Body: {"url": "https://example.com", "width": 1280, "height": 720, "format": "png" | "jpeg" | "webp", "full_page": false, "delay_ms": 0, "selector": null} → {"id", "status": "done", "image_url", "bytes", "execution_ms", …} GET https://api.grabbit.live/v1/grabs # list recent grabs GET https://api.grabbit.live/v1/grabs/{id} # fetch/poll one grab GET https://api.grabbit.live/v1/usage # credits remaining, plan, 30-day usage GET https://api.grabbit.live/v1/pricing # pricing + comparison (no auth) Async with a live key: add header "Prefer: respond-async" → 202, then poll the grab id. Test keys always return a synchronous 200 placeholder, even when async is requested. Errors: {"error": {"code", "message"}}, for example credits_exhausted (402). OAuth scopes: "grabs" (see https://www.grabbit.live/.well-known/oauth-protected-resource). ## MCP server (for Claude, Cursor, and other agents) Endpoint: https://mcp.grabbit.live (Streamable HTTP) Auth: Bearer API key, or OAuth 2.1 (dynamic client registration + PKCE). claude.ai connectors work out of the box. Tools: grab, get_grab, list_grabs, get_usage, get_pricing. Quick add (Claude Code): claude mcp add --transport http grabbit https://mcp.grabbit.live \ --header "Authorization: Bearer sk_live_…" Why a hosted screenshot tool over a local headless browser (Playwright/Puppeteer): no Chromium to install, cookie/consent banners handled, and full-page plus JS-heavy captures work in CI or sandboxes with no local browser. Public URLs only; localhost and internal IPs are blocked. ## Per-agent setup guides - [Any agent (hub)](https://www.grabbit.live/agents) - [Claude](https://www.grabbit.live/agents/claude) - [Claude Code](https://www.grabbit.live/agents/claude-code) - [OpenAI Codex](https://www.grabbit.live/agents/codex) - [Cursor](https://www.grabbit.live/agents/cursor) - [CrewAI](https://www.grabbit.live/agents/crewai) - [LangGraph](https://www.grabbit.live/agents/langgraph) - [OpenClaw](https://www.grabbit.live/agents/openclaw) ## Provider comparisons - [Comparison hub](https://www.grabbit.live/compare) - [Grabbit vs Urlbox](https://www.grabbit.live/compare/urlbox) - [Grabbit vs ScreenshotOne](https://www.grabbit.live/compare/screenshotone) - [Grabbit vs ApiFlash](https://www.grabbit.live/compare/apiflash) ## CLI npx grabbit.live login # browser sign-in, keys saved locally npx grabbit.live nyt.com # screenshot → ./nyt.com.png + hosted URL npx grabbit.live nyt.com --test # free placeholder dry-run, no credits used npx grabbit.live grabs list # recent captures (--limit, --status, --json) npx grabbit.live usage # credits remaining npx grabbit.live pricing # pricing + comparison table npx grabbit.live mcp # print MCP config for your agent (Installs the `grabbit` command. After the first run, plain `grabbit ` works.) ## Links - [API reference](https://www.grabbit.live/docs): every endpoint, parameter, and error code - [OpenAPI 3.1 spec](https://www.grabbit.live/openapi.json): machine-readable API description - [Pricing (JSON)](https://api.grabbit.live/v1/pricing): pricing and competitor comparison - [Sign up / sign in](https://www.grabbit.live/login) - [Console](https://www.grabbit.live/app): API keys, logs, webhooks - [Top up credits](https://www.grabbit.live/app/billing) - [About](https://www.grabbit.live/about) - [Contact](https://www.grabbit.live/contact): support@grabbit.live - [Latest release](https://www.grabbit.live/docs/changelog) - [Latest release Markdown](https://www.grabbit.live/docs/changelog.md)