Full review completed September 29, 2026

Grabbit vs ScreenshotOne

Both products now offer hosted MCP access. Choose Grabbit for flat annual credits and one pricing rate. Choose ScreenshotOne for a larger screenshot feature set, Markdown extraction, a free live allowance, and both hosted and local MCP options.

Reviewed by the Grabbit product team. We checked public first-party documentation, pricing pages, and Grabbit production behavior. Controlled cross-provider image and speed tests are not part of this release.

Developer experience

How the two products behave in production

Thirteen operational checks, with a source for each side of every row.

SurfaceGrabbitScreenshotOneSources
REST APIPOST /v1/grabs with Bearer authenticationHosted screenshot APIGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
SDKs / examplesNo SDK packages; OpenAPI 3.1 plus curl examplesC#, Go, Java, Node.js, PHP, Python, and Ruby examplesGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
CLInpx grabbit.liveNo standalone screenshot CLI found in the reviewed first-party docsGrabbit source · Sep 29, 2026ScreenshotOne docs check · Sep 29, 2026
Hosted MCPhttps://mcp.grabbit.live with OAuth or Bearerhttps://mcp.screenshotone.com over remote Streamable HTTPGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
Local MCP / skillNo published local MCP packageOpen-source local command-line MCP serverGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
AuthBearer API keys and OAuth 2.1 for MCPX-Access-Key for REST requestsGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
ResultJSON with image_url; MCP can return image contentScreenshot URLs, full-page slices, and Markdown through MCPGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
Async / webhooksLive keys: Prefer: respond-async returns 202; poll by id or receive signed webhooks. Test keys return a synchronous 200 placeholder.async=true with signed webhooks; S3 storage is the primary documented workflowGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
Rate / concurrency60 requests per minute; async queue limit is reported with HTTP 429Plan-specific request-start bucket that resets each minuteGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
Errors / retriesStructured error codes and Idempotency-Key for safe request replayHTTP status plus JSON error code, message, and documentation URLGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
Caching / retentionPublic unguessable image_url; retained until deletion is requested; no cache TTL controlBest-effort cache, four hours by default and up to one monthGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
Billing eventOne credit per successful live capture; test-key placeholders are freeSuccessful uncached renders count toward the monthly limitGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026
Machine-readable docsOpenAPI 3.1, llms.txt, and JSON pricing packetllms.txt, SDK examples, and option referenceGrabbit source · Sep 29, 2026ScreenshotOne source · Sep 29, 2026

Public pricing

Named tiers, allowances, and quota rules

Entry-tier math can hide volume discounts and different billing units. These are the public tiers behind the decision, kept separate instead of normalized into one rate.

TierPriceAllowanceExtra cost or discountQuota and fitSource
Free$0 / monthly100 live screenshotsNo overage publishedSuccessful live screenshots, including HTML and PDF rendering.ScreenshotOne pricing, checked Sep 29, 2026
Basic$17 / monthly2,000 screenshots$0.0085 per included unitOverage: $0.009 per extra screenshotAnnual billing includes two months freeOnly successful, uncached renders count under the published rules.ScreenshotOne pricing, checked Sep 29, 2026
Growth$79 / monthly10,000 screenshots$0.0079 per included unitOverage: $0.006 per extra screenshotAnnual billing includes two months freeOnly successful, uncached renders count under the published rules.ScreenshotOne pricing, checked Sep 29, 2026
Scale$259 / monthly50,000 screenshots$0.00518 per included unitOverage: $0.004 per extra screenshotAnnual billing includes two months freeOnly successful, uncached renders count under the published rules.ScreenshotOne pricing, checked Sep 29, 2026

Workload cost

What do Grabbit and ScreenshotOne cost for the same monthly volume?

Named-plan rates only become useful after a workload is applied. These scenarios choose the lowest listed plan that covers each volume and show the first twelve months of cash cost.

WorkloadGrabbit, annualScreenshotOne, annualPlan and assumption
Evaluation100 / month$50 for live captures$0ScreenshotOne Free. ScreenshotOne includes 100 live screenshots each month. Grabbit test keys return placeholders, so visual evaluation needs live credits.
Small production2,000 / month$50$170ScreenshotOne Basic, annual billing. Annual ScreenshotOne billing gives two months free, while credits still reset each month.
Growing production10,000 / month$250$790ScreenshotOne Growth, annual billing. Grabbit uses the annual grant plus four 25,000-credit top-ups. ScreenshotOne Growth supplies a fresh 10,000-credit allowance each month.
High-volume production100,000 / month$2,400$4,990ScreenshotOne Scale, annual billing plus overage. The estimate applies the published two-month annual discount to Scale, then prices 50,000 monthly overage screenshots at $0.004 each. Grabbit uses its annual grant plus the lowest-cost mix of published top-ups.

Assumptions: Twelve equal months, one successful uncached screenshot per requested capture, public list prices, annual ScreenshotOne discount applied, published Scale overage used only for the 100,000-per-month row, and no tax. Grabbit annual subscription credits expire at term end; separately purchased top-up credits do not expire while the account remains active.

Methodology

  • Pricing uses the public Basic monthly plan and included allowance, checked September 29, 2026.
  • API, SDK, hosted MCP, and local MCP claims come from separate first-party pages.
  • No cross-vendor speed or image-quality benchmark was run for this release.

Capture capabilities

  • Full-page and viewport capture with waits, selectors, and cookie-banner controls
  • Hosted screenshot URLs, full-page slices, and Markdown through MCP
  • A broader set of specialized capture modes than Grabbit currently documents

Best-fit scenarios

  • Use ScreenshotOne when an agent needs both screenshots and extracted Markdown.
  • Use Grabbit when one successful-capture price and a direct hosted MCP endpoint matter more.

Migration notes

  • Move API-key authentication to a Grabbit Bearer header or MCP OAuth.
  • Map common viewport, full-page, delay, and selector options to POST /v1/grabs.
  • Keep ScreenshotOne-specific Markdown and slice handling until the consuming workflow no longer needs them.
  • Convert ScreenshotOne delay seconds to Grabbit delay_ms by multiplying by 1,000.

Migration map

How do you move screenshot requests from ScreenshotOne to Grabbit?

The examples capture the same public page as a 1440 by 900 full-page WebP. Keep the provider-specific features called out in the map instead of silently dropping them.

ScreenshotOne request
curl -G https://api.screenshotone.com/take \
  -H "X-Access-Key: $SCREENSHOTONE_ACCESS_KEY" \
  --data-urlencode "url=https://example.com" \
  --data "format=webp" --data "viewport_width=1440" \
  --data "viewport_height=900" --data "full_page=true" \
  --output capture.webp
Grabbit request
curl -X POST https://api.grabbit.live/v1/grabs \
  -H "Authorization: Bearer $GRABBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "format": "webp",
    "width": 1440,
    "height": 900,
    "full_page": true
  }'
ScreenshotOne response
Binary WebP by default; response_type=json returns a screenshot_url.
Grabbit response
{
  "id": "<grab_id>",
  "status": "done",
  "image_url": "https://<host>/<image>.webp",
  "bytes": 123456,
  "execution_ms": 2345
}
IntentScreenshotOneGrabbitMigration caveat
TargeturlurlDirect mapping.
Viewportviewport_width, viewport_heightwidth, heightGrabbit accepts widths from 320 to 1,920 and heights from 240 to 1,080.
Full pagefull_pagefull_pageDirect mapping.
Element captureselectorselectorDirect mapping.
Delaydelay in secondsdelay_ms in millisecondsMultiply by 1,000; Grabbit accepts up to 10,000 ms.
Resultbinary by default or response_type=jsonJSON with image_urlClients that stream ScreenshotOne bytes need a second GET of Grabbit image_url.
Agent textMarkdown extraction through MCPNo Markdown extractionKeep ScreenshotOne when the same tool call must return page text.
Grabbit CLI
npx grabbit.live https://example.com --width 1440 --height 900 --format webp --full-page
MCP prompt
Capture https://example.com as a full-page WebP at 1440 by 900. Return the image and image_url.

Agent experience

What changes when an AI agent owns the screenshot step?

Which MCP surface is easier to host?

Both publish hosted OAuth MCP endpoints. ScreenshotOne also publishes a local command-line MCP server; Grabbit does not ship a local MCP package.

Which result can the model inspect?

Both can return image content through MCP. ScreenshotOne also documents Markdown and full-page slice results; Grabbit keeps image_url in every result for clients that cannot accept image blocks.

How should an agent handle exhausted Grabbit credits?

Call get_usage, treat credits_exhausted as HTTP 402, and top up before retrying. Use a synchronous test-key placeholder to verify wiring, then switch to a live key for visual QA.

First-party evidence

See the pages behind the claims

ScreenshotOne public pricing showing Basic, Growth, and Scale plans
ScreenshotOne pricing, captured September 29, 2026. Open the live source
ScreenshotOne MCP page showing the hosted endpoint and supported clients
ScreenshotOne hosted MCP page, captured September 29, 2026. Open the live source
Live Grabbit capture of the Grabbit API reference at 1440 by 900
Real Grabbit API result captured from production on September 29, 2026. Request: 1440 by 900 WebP of the public API reference. The returned image was read back through its CDN URL and visually checked.

What this comparison does not claim

  • ScreenshotOne includes a free live-capture allowance; Grabbit test keys return placeholders, not live screenshots.
  • ScreenshotOne documents Markdown extraction and more specialized capture modes.
  • This page does not claim speed or image-quality superiority because version one did not run controlled cross-vendor captures.
  • Grabbit has no official SDK packages, Markdown extraction, animated screenshots, PDF output, or local MCP package.

Sources

Reviewed by the Grabbit product team on September 29, 2026. We update the review date when we recheck a vendor change. Email support@grabbit.live with a source link if a claim needs correction. Source dates are claim dates, not a blanket freshness stamp.

Open this comparison as JSON
ScreenshotOne pricingBasic, Growth, and Scale plansVerified Sep 29, 2026ScreenshotOne MCPHosted endpoint and FAQVerified Sep 29, 2026ScreenshotOne llms.txtDocumentation indexVerified Sep 29, 2026ScreenshotOne documentationScreenshot API and SDK examplesVerified Sep 29, 2026ScreenshotOne async and webhook documentationAsynchronous screenshots and webhooksVerified Sep 29, 2026ScreenshotOne concurrency documentationConcurrency limitsVerified Sep 29, 2026ScreenshotOne error referenceOverview and codes with explanationsVerified Sep 29, 2026ScreenshotOne caching documentationCaching screenshotsVerified Sep 29, 2026ScreenshotOne credits documentationCredits and billing cycleVerified Sep 29, 2026ScreenshotOne billable-render policyPricing FAQ, failed and cached screenshotsVerified Sep 29, 2026ScreenshotOne capture optionsScreenshot API optionsVerified Sep 29, 2026ScreenshotOne standalone CLI documentation reviewDocumentation navigation and MCP guideDocs checked Sep 29, 2026Grabbit pricingPricing sectionVerified Sep 29, 2026Grabbit credit expiration policySection 6, Credits, Billing, and PaymentsVerified Sep 29, 2026Grabbit agent integrationsTwo ways to connectVerified Sep 29, 2026Grabbit machine-readable documentationAgent entry points, API reference, MCP, CLI, and pricing linksVerified Sep 29, 2026Grabbit capture parametersCapture controls and automatic cookie handlingVerified Sep 29, 2026Grabbit API operationsAsync requests, errors, limits, and idempotencyVerified Sep 29, 2026Grabbit screenshot retention and deliveryData retention and screenshot storageVerified Sep 29, 2026

Grabbit vs ScreenshotOne FAQ

Does ScreenshotOne have an MCP server?
Yes. ScreenshotOne documents a hosted OAuth MCP server at mcp.screenshotone.com and an open-source local command-line MCP option.
Does ScreenshotOne have a free tier?
Its pricing page lists 100 free live screenshots per month. Grabbit test keys are free, but they return placeholder renders rather than live screenshots.
Is ScreenshotOne Basic the same as its free plan?
No. Free is a separate plan with 100 live screenshots per month. Basic is $17 per month for 2,000 screenshots, with a published overage rate.
Do ScreenshotOne credits roll over?
No. Its credits documentation says unused allowances expire at the monthly cycle boundary, including for customers who pay annually.
Which product has official SDKs?
ScreenshotOne publishes SDK examples for C#, Go, Java, Node.js, PHP, Python, and Ruby. Grabbit publishes OpenAPI and HTTP examples, but no official SDK packages.
How do binary responses differ?
ScreenshotOne returns binary output by default and can return screenshot_url in JSON. Grabbit returns JSON with image_url, so a byte-streaming client needs a second GET.
Can both products send webhooks?
Yes. ScreenshotOne documents async=true and signed webhooks. Grabbit documents HTTP 202 async requests, polling, and signed grab.succeeded or grab.failed webhooks.
Can a Grabbit test key evaluate image quality?
No. It returns a placeholder for integration checks. Use a live key with available credits for a real visual result.
When should I keep ScreenshotOne?
Keep ScreenshotOne when the workflow needs Markdown extraction, first-party SDKs, animated screenshots, PDF, its local MCP server, or its free live allowance.

Compare more screenshot APIs

Test the Grabbit workflow before you pay

A test key returns a placeholder, so you can verify auth, request shape, and result handling. Use a live key with available credits when you need to inspect the real page.

Back to all comparisons