{"pricing":{"per_grab_usd":0.002,"currency":"USD","billing_model":"Flat per-successful-grab pricing. Annual subscription credits expire at term end; separately purchased top-up credits do not expire while the account remains active.","free_tier":false,"test_mode":"sk_test_ keys return synchronous placeholder renders for free, including when async is requested.","annual":{"price_usd":50,"credits_per_year":25000,"reset_policy":"Unused annual subscription credits expire at term end. If you cancel, you keep them until the term ends."},"prepaid_packages":[{"name":"Starter Top-up","credits":25000,"price_usd":50,"reset_policy":"Separately purchased top-up credits do not expire while the account remains active."},{"name":"Growth Top-up","credits":50000,"price_usd":100,"reset_policy":"Separately purchased top-up credits do not expire while the account remains active."},{"name":"Scale Top-up","credits":125000,"price_usd":250,"reset_policy":"Separately purchased top-up credits do not expire while the account remains active."}]},"comparison":{"schema_version":"2.0","last_verified":"September 29, 2026","features":["Full-page capture","Custom viewport","Wait or target selector","Cookie-banner handling","PNG / JPEG / WebP"],"providers":[{"name":"Grabbit","plan":"$50 annual","per_grab":"$0.002","billing":"Annual, flat","billing_unit":"One credit per successful live capture","quota_note":"Annual subscription credits expire at term end; separately purchased top-up credits do not expire while the account remains active.","included":"25,000 / yr","unused_credits":"annual subscription reset; separate top-ups do not expire while the account remains active","features_supported":["Full-page capture","Custom viewport","Wait or target selector","Cookie-banner handling","PNG / JPEG / WebP"],"agent_install":"one-line install (npx grabbit.live) + hosted MCP","source_url":"https://www.grabbit.live/#pricing","verified_on":"2026-09-29","evidence_status":"verified","pricing_evidence":{"source_url":"https://www.grabbit.live/#pricing","locator":"Pricing section","note":"$50 per year includes 25,000 credits at $0.002 per live capture.","status":"verified"},"quota_evidence":{"source_url":"https://www.grabbit.live/terms#credits-billing-and-payments","locator":"Section 6, Credits, Billing, and Payments","note":"Unused annual subscription credits expire at the end of the subscription term. Cancellation takes effect at term end, and prepaid credits do not expire while the account remains active.","status":"verified"},"capture_evidence":{"source_url":"https://www.grabbit.live/screenshot-api","locator":"Capture controls and automatic cookie handling","note":"The screenshot API guide documents full-page capture, viewport size, delay, selector targeting, PNG, JPEG, or WebP output, and automatic handling for common cookie-consent dialogs.","status":"verified"},"agent_evidence":{"source_url":"https://www.grabbit.live/agents","locator":"Two ways to connect","note":"Hosted Streamable HTTP MCP, REST API, npx CLI, JSON image_url results, and MCP image content are documented.","status":"verified"},"is_grabbit":true},{"name":"ScreenshotOne","plan":"Basic, $17 monthly","per_grab":"$0.0085","billing":"Monthly","billing_unit":"Included screenshots, with plan-specific overage","quota_note":"The public plan allowance resets monthly.","included":"2,000 / mo","unused_credits":"monthly reset","features_supported":["Full-page capture","Custom viewport","Wait or target selector","Cookie-banner handling","PNG / JPEG / WebP"],"agent_install":"hosted MCP available; inspect the provider evidence","source_url":"https://screenshotone.com/pricing/","verified_on":"2026-09-29","evidence_status":"verified","pricing_evidence":{"source_url":"https://screenshotone.com/pricing/","locator":"Basic, Growth, and Scale plans","note":"Free includes 100 live screenshots. Basic is $17 for 2,000 with $0.009 overage, Growth is $79 for 10,000 with $0.006 overage, and Scale is $259 for 50,000 with $0.004 overage. Annual billing includes two months free.","status":"verified"},"quota_evidence":{"source_url":"https://screenshotone.com/docs/credits/","locator":"Credits and billing cycle","note":"Documents that unused credits expire at each monthly cycle boundary, including when the subscription is paid annually.","status":"verified"},"capture_evidence":{"source_url":"https://screenshotone.com/docs/options/","locator":"Screenshot API options","note":"The options reference documents full-page capture, viewport controls, waits and selectors, cookie-banner handling, and common image formats.","status":"verified"},"agent_evidence":{"source_url":"https://screenshotone.com/mcp/","locator":"Hosted endpoint and FAQ","note":"Documents a hosted OAuth MCP endpoint plus an open-source local command-line server.","status":"verified"},"is_grabbit":false}],"decision_pages":[{"competitor":"ScreenshotOne","url":"https://www.grabbit.live/compare/screenshotone","verdict":"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.","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."],"pricing_tiers":[{"name":"Free","price":"$0","price_usd":0,"currency":"USD","cadence":"monthly","allowance":"100 live screenshots","allowance_units":100,"allowance_unit":"published plan units","effective_included_rate_usd":0,"quota_note":"Successful live screenshots, including HTML and PDF rendering.","source_url":"https://screenshotone.com/pricing/","verified_on":"2026-09-29"},{"name":"Basic","price":"$17","price_usd":17,"currency":"USD","cadence":"monthly","allowance":"2,000 screenshots","allowance_units":2000,"allowance_unit":"published plan units","effective_included_rate_usd":0.0085,"overage":"$0.009 per extra screenshot","discount":"Annual billing includes two months free","quota_note":"Only successful, uncached renders count under the published rules.","source_url":"https://screenshotone.com/pricing/","verified_on":"2026-09-29"},{"name":"Growth","price":"$79","price_usd":79,"currency":"USD","cadence":"monthly","allowance":"10,000 screenshots","allowance_units":10000,"allowance_unit":"published plan units","effective_included_rate_usd":0.0079,"overage":"$0.006 per extra screenshot","discount":"Annual billing includes two months free","quota_note":"Only successful, uncached renders count under the published rules.","source_url":"https://screenshotone.com/pricing/","verified_on":"2026-09-29"},{"name":"Scale","price":"$259","price_usd":259,"currency":"USD","cadence":"monthly","allowance":"50,000 screenshots","allowance_units":50000,"allowance_unit":"published plan units","effective_included_rate_usd":0.00518,"overage":"$0.004 per extra screenshot","discount":"Annual billing includes two months free","quota_note":"Only successful, uncached renders count under the published rules.","source_url":"https://screenshotone.com/pricing/","verified_on":"2026-09-29"}],"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":["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."],"workload_costs":[{"workload":"Evaluation","capturesPerMonth":100,"grabbitAnnualCost":"$50 for live captures","competitorAnnualCost":"$0","competitorPlan":"ScreenshotOne Free","note":"ScreenshotOne includes 100 live screenshots each month. Grabbit test keys return placeholders, so visual evaluation needs live credits."},{"workload":"Small production","capturesPerMonth":2000,"grabbitAnnualCost":"$50","competitorAnnualCost":"$170","competitorPlan":"ScreenshotOne Basic, annual billing","note":"Annual ScreenshotOne billing gives two months free, while credits still reset each month."},{"workload":"Growing production","capturesPerMonth":10000,"grabbitAnnualCost":"$250","competitorAnnualCost":"$790","competitorPlan":"ScreenshotOne Growth, annual billing","note":"Grabbit uses the annual grant plus four 25,000-credit top-ups. ScreenshotOne Growth supplies a fresh 10,000-credit allowance each month."},{"workload":"High-volume production","capturesPerMonth":100000,"grabbitAnnualCost":"$2,400","competitorAnnualCost":"$4,990","competitorPlan":"ScreenshotOne Scale, annual billing plus overage","note":"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."}],"workload_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.","migration":{"competitorRequest":"curl -G https://api.screenshotone.com/take \\\n  -H \"X-Access-Key: $SCREENSHOTONE_ACCESS_KEY\" \\\n  --data-urlencode \"url=https://example.com\" \\\n  --data \"format=webp\" --data \"viewport_width=1440\" \\\n  --data \"viewport_height=900\" --data \"full_page=true\" \\\n  --output capture.webp","grabbitRequest":"curl -X POST https://api.grabbit.live/v1/grabs \\\n  -H \"Authorization: Bearer $GRABBIT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://example.com\",\n    \"format\": \"webp\",\n    \"width\": 1440,\n    \"height\": 900,\n    \"full_page\": true\n  }'","competitorResponse":"Binary WebP by default; response_type=json returns a screenshot_url.","grabbitResponse":"{\n  \"id\": \"<grab_id>\",\n  \"status\": \"done\",\n  \"image_url\": \"https://<host>/<image>.webp\",\n  \"bytes\": 123456,\n  \"execution_ms\": 2345\n}","cliCommand":"npx grabbit.live https://example.com --width 1440 --height 900 --format webp --full-page","mcpPrompt":"Capture https://example.com as a full-page WebP at 1440 by 900. Return the image and image_url.","parameterMap":[{"intent":"Target","competitor":"url","grabbit":"url"},{"intent":"Viewport","competitor":"viewport_width, viewport_height","grabbit":"width, height","caveat":"Grabbit accepts widths from 320 to 1,920 and heights from 240 to 1,080."},{"intent":"Full page","competitor":"full_page","grabbit":"full_page"},{"intent":"Element capture","competitor":"selector","grabbit":"selector"},{"intent":"Delay","competitor":"delay in seconds","grabbit":"delay_ms in milliseconds","caveat":"Multiply by 1,000; Grabbit accepts up to 10,000 ms."},{"intent":"Result","competitor":"binary by default or response_type=json","grabbit":"JSON with image_url","caveat":"Clients that stream ScreenshotOne bytes need a second GET of Grabbit image_url."},{"intent":"Agent text","competitor":"Markdown extraction through MCP","grabbit":"No Markdown extraction","caveat":"Keep ScreenshotOne when the same tool call must return page text."}]},"agent_decisions":[{"question":"Which MCP surface is easier to host?","answer":"Both publish hosted OAuth MCP endpoints. ScreenshotOne also publishes a local command-line MCP server; Grabbit does not ship a local MCP package."},{"question":"Which result can the model inspect?","answer":"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."},{"question":"How should an agent handle exhausted Grabbit credits?","answer":"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."}],"limitations":["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."],"surfaces":[{"name":"REST API","grabbit":"POST /v1/grabs with Bearer authentication","competitor":"Hosted screenshot API","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne documentation","evidence_locator":"Screenshot API and SDK examples","source_url":"https://screenshotone.com/docs/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"SDKs / examples","grabbit":"No SDK packages; OpenAPI 3.1 plus curl examples","competitor":"C#, Go, Java, Node.js, PHP, Python, and Ruby examples","grabbit_evidence_label":"Grabbit machine-readable documentation","grabbit_evidence_locator":"Agent entry points, API reference, MCP, CLI, and pricing links","grabbit_source_url":"https://www.grabbit.live/llms.txt","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne documentation","evidence_locator":"Screenshot API and SDK examples","source_url":"https://screenshotone.com/docs/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"CLI","grabbit":"npx grabbit.live","competitor":"No standalone screenshot CLI found in the reviewed first-party docs","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne standalone CLI documentation review","evidence_locator":"Documentation navigation and MCP guide","source_url":"https://screenshotone.com/docs/","evidence_status":"not_found_in_public_first_party_docs","verified_on":"2026-09-29"},{"name":"Hosted MCP","grabbit":"https://mcp.grabbit.live with OAuth or Bearer","competitor":"https://mcp.screenshotone.com over remote Streamable HTTP","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne MCP","evidence_locator":"Hosted endpoint and FAQ","source_url":"https://screenshotone.com/mcp/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Local MCP / skill","grabbit":"No published local MCP package","competitor":"Open-source local command-line MCP server","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne MCP","evidence_locator":"Hosted endpoint and FAQ","source_url":"https://screenshotone.com/mcp/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Auth","grabbit":"Bearer API keys and OAuth 2.1 for MCP","competitor":"X-Access-Key for REST requests","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne documentation","evidence_locator":"Screenshot API and SDK examples","source_url":"https://screenshotone.com/docs/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Result","grabbit":"JSON with image_url; MCP can return image content","competitor":"Screenshot URLs, full-page slices, and Markdown through MCP","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne MCP","evidence_locator":"Hosted endpoint and FAQ","source_url":"https://screenshotone.com/mcp/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Async / webhooks","grabbit":"Live keys: Prefer: respond-async returns 202; poll by id or receive signed webhooks. Test keys return a synchronous 200 placeholder.","competitor":"async=true with signed webhooks; S3 storage is the primary documented workflow","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne async and webhook documentation","evidence_locator":"Asynchronous screenshots and webhooks","source_url":"https://screenshotone.com/docs/async-and-webhooks/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Rate / concurrency","grabbit":"60 requests per minute; async queue limit is reported with HTTP 429","competitor":"Plan-specific request-start bucket that resets each minute","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne concurrency documentation","evidence_locator":"Concurrency limits","source_url":"https://screenshotone.com/docs/concurrency/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Errors / retries","grabbit":"Structured error codes and Idempotency-Key for safe request replay","competitor":"HTTP status plus JSON error code, message, and documentation URL","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne error reference","evidence_locator":"Overview and codes with explanations","source_url":"https://screenshotone.com/docs/errors/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Caching / retention","grabbit":"Public unguessable image_url; retained until deletion is requested; no cache TTL control","competitor":"Best-effort cache, four hours by default and up to one month","grabbit_evidence_label":"Grabbit screenshot retention and delivery","grabbit_evidence_locator":"Data retention and screenshot storage","grabbit_source_url":"https://www.grabbit.live/privacy","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne caching documentation","evidence_locator":"Caching screenshots","source_url":"https://screenshotone.com/docs/caching/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Billing event","grabbit":"One credit per successful live capture; test-key placeholders are free","competitor":"Successful uncached renders count toward the monthly limit","grabbit_evidence_label":"Grabbit pricing","grabbit_evidence_locator":"Pricing section","grabbit_source_url":"https://www.grabbit.live/#pricing","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne billable-render policy","evidence_locator":"Pricing FAQ, failed and cached screenshots","source_url":"https://screenshotone.com/pricing/","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Machine-readable docs","grabbit":"OpenAPI 3.1, llms.txt, and JSON pricing packet","competitor":"llms.txt, SDK examples, and option reference","grabbit_evidence_label":"Grabbit machine-readable documentation","grabbit_evidence_locator":"Agent entry points, API reference, MCP, CLI, and pricing links","grabbit_source_url":"https://www.grabbit.live/llms.txt","grabbit_verified_on":"2026-09-29","evidence_label":"ScreenshotOne llms.txt","evidence_locator":"Documentation index","source_url":"https://screenshotone.com/llms.txt","evidence_status":"verified","verified_on":"2026-09-29"}]}],"agent_surfaces":[{"provider":"ScreenshotOne","comparison_url":"https://www.grabbit.live/compare/screenshotone","surfaces":[{"name":"REST API","availability":"Hosted screenshot API","grabbit_availability":"POST /v1/grabs with Bearer authentication","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","evidence_label":"ScreenshotOne documentation","evidence_locator":"Screenshot API and SDK examples","evidence_status":"verified","source_url":"https://screenshotone.com/docs/","verified_on":"2026-09-29"},{"name":"SDKs / examples","availability":"C#, Go, Java, Node.js, PHP, Python, and Ruby examples","grabbit_availability":"No SDK packages; OpenAPI 3.1 plus curl examples","grabbit_evidence_label":"Grabbit machine-readable documentation","grabbit_evidence_locator":"Agent entry points, API reference, MCP, CLI, and pricing links","grabbit_source_url":"https://www.grabbit.live/llms.txt","evidence_label":"ScreenshotOne documentation","evidence_locator":"Screenshot API and SDK examples","evidence_status":"verified","source_url":"https://screenshotone.com/docs/","verified_on":"2026-09-29"},{"name":"CLI","availability":"No standalone screenshot CLI found in the reviewed first-party docs","grabbit_availability":"npx grabbit.live","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","evidence_label":"ScreenshotOne standalone CLI documentation review","evidence_locator":"Documentation navigation and MCP guide","evidence_status":"not_found_in_public_first_party_docs","source_url":"https://screenshotone.com/docs/","verified_on":"2026-09-29"},{"name":"Hosted MCP","availability":"https://mcp.screenshotone.com over remote Streamable HTTP","grabbit_availability":"https://mcp.grabbit.live with OAuth or Bearer","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","evidence_label":"ScreenshotOne MCP","evidence_locator":"Hosted endpoint and FAQ","evidence_status":"verified","source_url":"https://screenshotone.com/mcp/","verified_on":"2026-09-29"},{"name":"Local MCP / skill","availability":"Open-source local command-line MCP server","grabbit_availability":"No published local MCP package","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","evidence_label":"ScreenshotOne MCP","evidence_locator":"Hosted endpoint and FAQ","evidence_status":"verified","source_url":"https://screenshotone.com/mcp/","verified_on":"2026-09-29"},{"name":"Auth","availability":"X-Access-Key for REST requests","grabbit_availability":"Bearer API keys and OAuth 2.1 for MCP","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","evidence_label":"ScreenshotOne documentation","evidence_locator":"Screenshot API and SDK examples","evidence_status":"verified","source_url":"https://screenshotone.com/docs/","verified_on":"2026-09-29"},{"name":"Result","availability":"Screenshot URLs, full-page slices, and Markdown through MCP","grabbit_availability":"JSON with image_url; MCP can return image content","grabbit_evidence_label":"Grabbit agent integrations","grabbit_evidence_locator":"Two ways to connect","grabbit_source_url":"https://www.grabbit.live/agents","evidence_label":"ScreenshotOne MCP","evidence_locator":"Hosted endpoint and FAQ","evidence_status":"verified","source_url":"https://screenshotone.com/mcp/","verified_on":"2026-09-29"},{"name":"Async / webhooks","availability":"async=true with signed webhooks; S3 storage is the primary documented workflow","grabbit_availability":"Live keys: Prefer: respond-async returns 202; poll by id or receive signed webhooks. Test keys return a synchronous 200 placeholder.","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","evidence_label":"ScreenshotOne async and webhook documentation","evidence_locator":"Asynchronous screenshots and webhooks","evidence_status":"verified","source_url":"https://screenshotone.com/docs/async-and-webhooks/","verified_on":"2026-09-29"},{"name":"Rate / concurrency","availability":"Plan-specific request-start bucket that resets each minute","grabbit_availability":"60 requests per minute; async queue limit is reported with HTTP 429","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","evidence_label":"ScreenshotOne concurrency documentation","evidence_locator":"Concurrency limits","evidence_status":"verified","source_url":"https://screenshotone.com/docs/concurrency/","verified_on":"2026-09-29"},{"name":"Errors / retries","availability":"HTTP status plus JSON error code, message, and documentation URL","grabbit_availability":"Structured error codes and Idempotency-Key for safe request replay","grabbit_evidence_label":"Grabbit API operations","grabbit_evidence_locator":"Async requests, errors, limits, and idempotency","grabbit_source_url":"https://www.grabbit.live/docs","evidence_label":"ScreenshotOne error reference","evidence_locator":"Overview and codes with explanations","evidence_status":"verified","source_url":"https://screenshotone.com/docs/errors/","verified_on":"2026-09-29"},{"name":"Caching / retention","availability":"Best-effort cache, four hours by default and up to one month","grabbit_availability":"Public unguessable image_url; retained until deletion is requested; no cache TTL control","grabbit_evidence_label":"Grabbit screenshot retention and delivery","grabbit_evidence_locator":"Data retention and screenshot storage","grabbit_source_url":"https://www.grabbit.live/privacy","evidence_label":"ScreenshotOne caching documentation","evidence_locator":"Caching screenshots","evidence_status":"verified","source_url":"https://screenshotone.com/docs/caching/","verified_on":"2026-09-29"},{"name":"Billing event","availability":"Successful uncached renders count toward the monthly limit","grabbit_availability":"One credit per successful live capture; test-key placeholders are free","grabbit_evidence_label":"Grabbit pricing","grabbit_evidence_locator":"Pricing section","grabbit_source_url":"https://www.grabbit.live/#pricing","evidence_label":"ScreenshotOne billable-render policy","evidence_locator":"Pricing FAQ, failed and cached screenshots","evidence_status":"verified","source_url":"https://screenshotone.com/pricing/","verified_on":"2026-09-29"},{"name":"Machine-readable docs","availability":"llms.txt, SDK examples, and option reference","grabbit_availability":"OpenAPI 3.1, llms.txt, and JSON pricing packet","grabbit_evidence_label":"Grabbit machine-readable documentation","grabbit_evidence_locator":"Agent entry points, API reference, MCP, CLI, and pricing links","grabbit_source_url":"https://www.grabbit.live/llms.txt","evidence_label":"ScreenshotOne llms.txt","evidence_locator":"Documentation index","evidence_status":"verified","source_url":"https://screenshotone.com/llms.txt","verified_on":"2026-09-29"}]}],"sources":[{"label":"Grabbit pricing","url":"https://www.grabbit.live/#pricing","locator":"Pricing section","claim_group":"pricing","verified_on":"2026-09-29","note":"$50 per year includes 25,000 credits at $0.002 per live capture.","evidence_status":"verified"},{"label":"Grabbit credit expiration policy","url":"https://www.grabbit.live/terms#credits-billing-and-payments","locator":"Section 6, Credits, Billing, and Payments","claim_group":"pricing","verified_on":"2026-09-29","note":"Unused annual subscription credits expire at the end of the subscription term. Cancellation takes effect at term end, and prepaid credits do not expire while the account remains active.","evidence_status":"verified"},{"label":"Grabbit agent integrations","url":"https://www.grabbit.live/agents","locator":"Two ways to connect","claim_group":"agent-tools","verified_on":"2026-09-29","note":"Hosted Streamable HTTP MCP, REST API, npx CLI, JSON image_url results, and MCP image content are documented.","evidence_status":"verified"},{"label":"Grabbit machine-readable documentation","url":"https://www.grabbit.live/llms.txt","locator":"Agent entry points, API reference, MCP, CLI, and pricing links","claim_group":"agent-tools","verified_on":"2026-09-29","note":"The first-party llms.txt file indexes the REST API, OpenAPI, hosted MCP tools, CLI, pricing packet, and agent guides.","evidence_status":"verified"},{"label":"Grabbit capture parameters","url":"https://www.grabbit.live/screenshot-api","locator":"Capture controls and automatic cookie handling","claim_group":"capture","verified_on":"2026-09-29","note":"The screenshot API guide documents full-page capture, viewport size, delay, selector targeting, PNG, JPEG, or WebP output, and automatic handling for common cookie-consent dialogs.","evidence_status":"verified"},{"label":"Grabbit API operations","url":"https://www.grabbit.live/docs","locator":"Async requests, errors, limits, and idempotency","claim_group":"api","verified_on":"2026-09-29","note":"Documents a 25-second synchronous timeout, async polling, signed webhooks, idempotency keys, a 60-request-per-minute limit, public-URL restrictions, and structured error codes.","evidence_status":"verified"},{"label":"Grabbit screenshot retention and delivery","url":"https://www.grabbit.live/privacy","locator":"Data retention and screenshot storage","claim_group":"api","verified_on":"2026-09-29","note":"Rendered screenshots use public unguessable URLs and remain stored until the customer requests deletion; the public API does not expose a cache TTL control.","evidence_status":"verified"},{"label":"ScreenshotOne pricing","url":"https://screenshotone.com/pricing/","locator":"Basic, Growth, and Scale plans","claim_group":"pricing","verified_on":"2026-09-29","note":"Free includes 100 live screenshots. Basic is $17 for 2,000 with $0.009 overage, Growth is $79 for 10,000 with $0.006 overage, and Scale is $259 for 50,000 with $0.004 overage. Annual billing includes two months free.","evidence_status":"verified"},{"label":"ScreenshotOne MCP","url":"https://screenshotone.com/mcp/","locator":"Hosted endpoint and FAQ","claim_group":"agent-tools","verified_on":"2026-09-29","note":"Documents a hosted OAuth MCP endpoint plus an open-source local command-line server.","evidence_status":"verified"},{"label":"ScreenshotOne llms.txt","url":"https://screenshotone.com/llms.txt","locator":"Documentation index","claim_group":"agent-tools","verified_on":"2026-09-29","note":"The first-party llms.txt file indexes ScreenshotOne documentation, guides, references, and SDK examples for agents.","evidence_status":"verified"},{"label":"ScreenshotOne documentation","url":"https://screenshotone.com/docs/","locator":"Screenshot API and SDK examples","claim_group":"api","verified_on":"2026-09-29","note":"Public docs cover the API, language SDKs, query options, and binary image responses.","evidence_status":"verified"},{"label":"ScreenshotOne async and webhook documentation","url":"https://screenshotone.com/docs/async-and-webhooks/","locator":"Asynchronous screenshots and webhooks","claim_group":"api","verified_on":"2026-09-29","note":"Documents async=true, the screenshot_url result, webhook delivery, and webhook signature verification.","evidence_status":"verified"},{"label":"ScreenshotOne concurrency documentation","url":"https://screenshotone.com/docs/concurrency/","locator":"Concurrency limits","claim_group":"api","verified_on":"2026-09-29","note":"Documents plan-specific request-start buckets and minute-based resets.","evidence_status":"verified"},{"label":"ScreenshotOne error reference","url":"https://screenshotone.com/docs/errors/","locator":"Overview and codes with explanations","claim_group":"api","verified_on":"2026-09-29","note":"Documents HTTP status semantics plus error_code, error_message, documentation_url, and retry guidance for transient failures.","evidence_status":"verified"},{"label":"ScreenshotOne caching documentation","url":"https://screenshotone.com/docs/caching/","locator":"Caching screenshots","claim_group":"api","verified_on":"2026-09-29","note":"Documents best-effort screenshot caching, a four-hour default, and cache intervals up to one month.","evidence_status":"verified"},{"label":"ScreenshotOne credits documentation","url":"https://screenshotone.com/docs/credits/","locator":"Credits and billing cycle","claim_group":"pricing","verified_on":"2026-09-29","note":"Documents that unused credits expire at each monthly cycle boundary, including when the subscription is paid annually.","evidence_status":"verified"},{"label":"ScreenshotOne billable-render policy","url":"https://screenshotone.com/pricing/","locator":"Pricing FAQ, failed and cached screenshots","claim_group":"pricing","verified_on":"2026-09-29","note":"The pricing FAQ says failed screenshots do not consume credits and cached screenshots do not count toward the monthly limit.","evidence_status":"verified"},{"label":"ScreenshotOne capture options","url":"https://screenshotone.com/docs/options/","locator":"Screenshot API options","claim_group":"capture","verified_on":"2026-09-29","note":"The options reference documents full-page capture, viewport controls, waits and selectors, cookie-banner handling, and common image formats.","evidence_status":"verified"},{"label":"ScreenshotOne standalone CLI documentation review","url":"https://screenshotone.com/docs/","locator":"Documentation navigation and MCP guide","claim_group":"agent-tools","verified_on":"2026-09-29","note":"A local command-line MCP server is documented, but no separate general-purpose screenshot CLI was found in the first-party documentation reviewed on this date.","evidence_status":"not_found_in_public_first_party_docs"}],"notes":"Public plan prices and included allowances verified September 29, 2026. Effective included rates divide the named plan price by its included allowance. They are not overage prices, benchmark results, or guarantees. ApiFlash Large lists $180 for 100,000 screenshots, or $0.0018 each, below Grabbit at that commitment. Browserless lists unit pricing below Grabbit, but a unit is not always one screenshot. Reset behavior is stated only where the cited first-party source documents it. Grabbit annual subscription credits expire at term end, while separately purchased top-up credits do not expire while the account remains active."},"links":{"signup":"https://www.grabbit.live/login","docs":"https://www.grabbit.live/docs","api":"https://api.grabbit.live/v1/grabs","mcp":"https://mcp.grabbit.live","cli":"npx grabbit.live","compare":"https://www.grabbit.live/compare","llms_txt":"https://www.grabbit.live/llms.txt"}}