{"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":"ApiFlash","plan":"Lite, $7 monthly","per_grab":"$0.007","billing":"Monthly","billing_unit":"Included screenshots","quota_note":"The public plan allowance resets monthly.","included":"1,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":"API only in reviewed first-party docs","source_url":"https://apiflash.com/#pricing","verified_on":"2026-09-29","evidence_status":"verified","pricing_evidence":{"source_url":"https://apiflash.com/#pricing","locator":"Free, Lite, Medium, and Large plans","note":"Free includes 100 screenshots. Lite is $7 per month for 1,000; Medium is $35 for 10,000; Large is $180 for 100,000.","status":"verified"},"quota_evidence":{"source_url":"https://apiflash.com/documentation","locator":"Parameters, Rate limits, Quota, and Errors","note":"Documents a 20-request-per-second leaky-bucket rate with a 400-request burst, cache TTL up to 30 days, quota headers and billing-period quota reset, and HTTP 400, 401, 402, 403, 429, and 500 errors.","status":"verified"},"capture_evidence":{"source_url":"https://apiflash.com/documentation","locator":"Parameters","note":"The parameter reference documents full-page capture, viewport dimensions, delay and selector controls, cookie-banner handling, and image formats.","status":"verified"},"agent_evidence":{"source_url":"https://apiflash.com/documentation","locator":"Documentation navigation and examples","note":"The public HTML documentation includes language examples. No first-party CLI, MCP server, or agent skill was found in the linked documentation and guides reviewed on this date.","status":"not_found_in_public_first_party_docs"},"is_grabbit":false}],"decision_pages":[{"competitor":"ApiFlash","url":"https://www.grabbit.live/compare/apiflash","verdict":"Choose Grabbit when an AI client needs a hosted MCP tool, a CLI, or annual credits that do not reset monthly. Choose ApiFlash for a conventional GET or POST screenshot API with a 100-shot free plan and low-cost monthly tiers.","methodology":["Pricing uses the public Lite monthly plan and included allowance, checked September 29, 2026.","API claims come from the ApiFlash method, response, and parameter reference.","Agent-tool absences are bounded to the first-party documentation reviewed on that date."],"pricing_tiers":[{"name":"Free","price":"$0","price_usd":0,"currency":"USD","cadence":"monthly","allowance":"100 screenshots","allowance_units":100,"allowance_unit":"published plan units","effective_included_rate_usd":0,"quota_note":"The public free plan includes live screenshots and the core capture controls.","source_url":"https://apiflash.com/#pricing","verified_on":"2026-09-29"},{"name":"Lite","price":"$7","price_usd":7,"currency":"USD","cadence":"monthly","allowance":"1,000 screenshots","allowance_units":1000,"allowance_unit":"published plan units","effective_included_rate_usd":0.007,"quota_note":"Monthly included screenshot allowance.","source_url":"https://apiflash.com/#pricing","verified_on":"2026-09-29"},{"name":"Medium","price":"$35","price_usd":35,"currency":"USD","cadence":"monthly","allowance":"10,000 screenshots","allowance_units":10000,"allowance_unit":"published plan units","effective_included_rate_usd":0.0035,"quota_note":"Monthly included screenshot allowance.","source_url":"https://apiflash.com/#pricing","verified_on":"2026-09-29"},{"name":"Large","price":"$180","price_usd":180,"currency":"USD","cadence":"monthly","allowance":"100,000 screenshots","allowance_units":100000,"allowance_unit":"published plan units","effective_included_rate_usd":0.0018,"quota_note":"Monthly included screenshot allowance.","source_url":"https://apiflash.com/#pricing","verified_on":"2026-09-29"},{"name":"Enterprise","price":"Custom","currency":"USD","cadence":"monthly","allowance":"Custom, millions supported","allowance_unit":"published plan units","quota_note":"Custom screenshot volume, managed proxies, and IP geolocation.","source_url":"https://apiflash.com/#pricing","verified_on":"2026-09-29"}],"capture_capabilities":["GET and POST capture requests with viewport, delay, selector, and full-page controls","Binary image responses or JSON containing screenshot links","A 100-screenshot free live plan for low-volume evaluation"],"best_fit":["Use ApiFlash for a conventional HTTP integration and a small free live allowance.","Use Grabbit when the caller needs a first-party CLI, hosted MCP, or annual credits."],"migration_notes":["Move access_key from the query or form body to an Authorization Bearer header.","Send capture parameters as JSON to POST /v1/grabs instead of GET query parameters.","Read image_url from the Grabbit JSON response rather than expecting image bytes by default."],"workload_costs":[{"workload":"Evaluation","capturesPerMonth":100,"grabbitAnnualCost":"$50 for live captures","competitorAnnualCost":"$0","competitorPlan":"ApiFlash Free","note":"ApiFlash 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":"$420","competitorPlan":"ApiFlash Medium","note":"The published Lite allowance stops at 1,000. Medium is the lowest named plan that covers 2,000 each month."},{"workload":"Growing production","capturesPerMonth":10000,"grabbitAnnualCost":"$250","competitorAnnualCost":"$420","competitorPlan":"ApiFlash Medium","note":"Grabbit uses the annual grant plus four 25,000-credit top-ups. ApiFlash Medium supplies 10,000 screenshots each month."},{"workload":"High-volume production","capturesPerMonth":100000,"grabbitAnnualCost":"$2,400","competitorAnnualCost":"$2,160","competitorPlan":"ApiFlash Large","note":"ApiFlash is $240 lower at this published commitment. Grabbit uses its annual grant plus the lowest-cost mix of published top-ups; ApiFlash supplies a fresh 100,000-shot allowance each month."}],"workload_assumptions":"Twelve equal months, one successful fresh screenshot per requested capture, public list prices, no tax, and no cache reuse. ApiFlash uses the listed monthly rates because no annual discount is applied. Grabbit annual subscription credits expire at term end; separately purchased top-up credits do not expire while the account remains active. ApiFlash cached requests with identical parameters can reduce quota use.","migration":{"competitorRequest":"curl -G https://api.apiflash.com/v1/urltoimage \\\n  --data-urlencode \"access_key=$APIFLASH_ACCESS_KEY\" \\\n  --data-urlencode \"url=https://example.com\" \\\n  --data \"format=webp\" --data \"width=1440\" --data \"height=900\" \\\n  --data \"full_page=true\" --data \"response_type=json\"","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":"{\n  \"url\": \"https://url_of_screenshot...\"\n}","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":"width, 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":"element","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 ApiFlash bytes need a second GET of Grabbit image_url."},{"intent":"Cache","competitor":"fresh and ttl, up to 30 days","grabbit":"No request cache control","caveat":"Keep ApiFlash when quota-saving cache reuse is part of the design."}]},"agent_decisions":[{"question":"Can an agent call ApiFlash?","answer":"Yes, through its HTTP API or a custom wrapper. No first-party MCP server, CLI, or agent skill was found in the public docs reviewed on September 29, 2026."},{"question":"What does Grabbit add for an agent?","answer":"A hosted MCP endpoint, OAuth, a first-party npx CLI, get_usage, and image content plus image_url from the same tool surface."},{"question":"How should an agent recover from quota errors?","answer":"ApiFlash exposes quota headers and a quota endpoint. Grabbit agents call get_usage and handle credits_exhausted as HTTP 402 before retrying with available live credits."}],"limitations":["ApiFlash has a 100-shot free live plan; Grabbit test keys return placeholders.","ApiFlash exposes both direct image bytes and optional JSON links.","No first-party CLI or MCP page was found in the ApiFlash documentation and guide navigation reviewed September 29, 2026.","ApiFlash publishes a larger viewport ceiling, response caching, extracted text and HTML, custom headers, proxies, geolocation, and S3 options that Grabbit does not document."],"surfaces":[{"name":"REST API","grabbit":"POST /v1/grabs with Bearer authentication","competitor":"GET or POST https://api.apiflash.com/v1/urltoimage","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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","source_url":"https://apiflash.com/documentation","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, JavaScript, 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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","source_url":"https://apiflash.com/documentation","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"CLI","grabbit":"npx grabbit.live","competitor":"Not found in reviewed first-party documentation","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":"ApiFlash public documentation agent-surface review","evidence_locator":"Documentation navigation and examples","source_url":"https://apiflash.com/documentation","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":"Not found in reviewed first-party documentation","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":"ApiFlash public documentation agent-surface review","evidence_locator":"Documentation navigation and examples","source_url":"https://apiflash.com/documentation","evidence_status":"not_found_in_public_first_party_docs","verified_on":"2026-09-29"},{"name":"Local MCP / skill","grabbit":"No published local MCP package","competitor":"Not found in reviewed first-party documentation","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":"ApiFlash public documentation agent-surface review","evidence_locator":"Documentation navigation and examples","source_url":"https://apiflash.com/documentation","evidence_status":"not_found_in_public_first_party_docs","verified_on":"2026-09-29"},{"name":"Auth","grabbit":"Bearer API keys and OAuth 2.1 for MCP","competitor":"access_key query parameter for GET or form field for POST","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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","source_url":"https://apiflash.com/documentation","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Result","grabbit":"JSON with image_url; MCP can return image content","competitor":"Binary image by default or JSON with screenshot links","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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","source_url":"https://apiflash.com/documentation","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":"No async job or webhook workflow documented on the reviewed reference","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":"ApiFlash async and webhook documentation review","evidence_locator":"Access, Parameters, Examples, Rate limits, Quota, and Errors","source_url":"https://apiflash.com/documentation","evidence_status":"not_found_in_public_first_party_docs","verified_on":"2026-09-29"},{"name":"Rate / concurrency","grabbit":"60 requests per minute; async queue limit is reported with HTTP 429","competitor":"20 requests per second with a 400-request burst; excess returns 429","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":"ApiFlash limits, cache, quota, and errors","evidence_locator":"Parameters, Rate limits, Quota, and Errors","source_url":"https://apiflash.com/documentation","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Errors / retries","grabbit":"Structured error codes and Idempotency-Key for safe request replay","competitor":"HTTP 400, 401, 402, 403, 429, and 500 with an explanatory body","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":"ApiFlash limits, cache, quota, and errors","evidence_locator":"Parameters, Rate limits, Quota, and Errors","source_url":"https://apiflash.com/documentation","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":"24-hour default TTL, configurable from zero to 30 days","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":"ApiFlash limits, cache, quota, and errors","evidence_locator":"Parameters, Rate limits, Quota, and Errors","source_url":"https://apiflash.com/documentation","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Billing event","grabbit":"One credit per successful live capture; test-key placeholders are free","competitor":"Identical cached requests do not count; quota resets each billing period","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":"ApiFlash cached-request billing rules","evidence_locator":"Cache and Quota sections","source_url":"https://apiflash.com/documentation","evidence_status":"verified","verified_on":"2026-09-29"},{"name":"Machine-readable docs","grabbit":"OpenAPI 3.1, llms.txt, and JSON pricing packet","competitor":"HTML documentation with language 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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","source_url":"https://apiflash.com/documentation","evidence_status":"verified","verified_on":"2026-09-29"}]}],"agent_surfaces":[{"provider":"ApiFlash","comparison_url":"https://www.grabbit.live/compare/apiflash","surfaces":[{"name":"REST API","availability":"GET or POST https://api.apiflash.com/v1/urltoimage","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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"SDKs / examples","availability":"C#, Go, Java, JavaScript, 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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"CLI","availability":"Not found in reviewed first-party documentation","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":"ApiFlash public documentation agent-surface review","evidence_locator":"Documentation navigation and examples","evidence_status":"not_found_in_public_first_party_docs","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Hosted MCP","availability":"Not found in reviewed first-party documentation","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":"ApiFlash public documentation agent-surface review","evidence_locator":"Documentation navigation and examples","evidence_status":"not_found_in_public_first_party_docs","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Local MCP / skill","availability":"Not found in reviewed first-party documentation","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":"ApiFlash public documentation agent-surface review","evidence_locator":"Documentation navigation and examples","evidence_status":"not_found_in_public_first_party_docs","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Auth","availability":"access_key query parameter for GET or form field for POST","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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Result","availability":"Binary image by default or JSON with screenshot links","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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Async / webhooks","availability":"No async job or webhook workflow documented on the reviewed reference","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":"ApiFlash async and webhook documentation review","evidence_locator":"Access, Parameters, Examples, Rate limits, Quota, and Errors","evidence_status":"not_found_in_public_first_party_docs","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Rate / concurrency","availability":"20 requests per second with a 400-request burst; excess returns 429","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":"ApiFlash limits, cache, quota, and errors","evidence_locator":"Parameters, Rate limits, Quota, and Errors","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Errors / retries","availability":"HTTP 400, 401, 402, 403, 429, and 500 with an explanatory body","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":"ApiFlash limits, cache, quota, and errors","evidence_locator":"Parameters, Rate limits, Quota, and Errors","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Caching / retention","availability":"24-hour default TTL, configurable from zero to 30 days","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":"ApiFlash limits, cache, quota, and errors","evidence_locator":"Parameters, Rate limits, Quota, and Errors","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Billing event","availability":"Identical cached requests do not count; quota resets each billing period","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":"ApiFlash cached-request billing rules","evidence_locator":"Cache and Quota sections","evidence_status":"verified","source_url":"https://apiflash.com/documentation","verified_on":"2026-09-29"},{"name":"Machine-readable docs","availability":"HTML documentation with language examples","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":"ApiFlash API documentation","evidence_locator":"API Access, Response, Parameters","evidence_status":"verified","source_url":"https://apiflash.com/documentation","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":"ApiFlash pricing","url":"https://apiflash.com/#pricing","locator":"Free, Lite, Medium, and Large plans","claim_group":"pricing","verified_on":"2026-09-29","note":"Free includes 100 screenshots. Lite is $7 per month for 1,000; Medium is $35 for 10,000; Large is $180 for 100,000.","evidence_status":"verified"},{"label":"ApiFlash API documentation","url":"https://apiflash.com/documentation","locator":"API Access, Response, Parameters","claim_group":"api","verified_on":"2026-09-29","note":"Documents GET and POST, access_key authentication, binary image output, optional JSON links, and capture parameters.","evidence_status":"verified"},{"label":"ApiFlash limits, cache, quota, and errors","url":"https://apiflash.com/documentation","locator":"Parameters, Rate limits, Quota, and Errors","claim_group":"api","verified_on":"2026-09-29","note":"Documents a 20-request-per-second leaky-bucket rate with a 400-request burst, cache TTL up to 30 days, quota headers and billing-period quota reset, and HTTP 400, 401, 402, 403, 429, and 500 errors.","evidence_status":"verified"},{"label":"ApiFlash cached-request billing rules","url":"https://apiflash.com/documentation","locator":"Cache and Quota sections","claim_group":"pricing","verified_on":"2026-09-29","note":"Identical requests served from the configured cache do not consume another screenshot from the plan quota.","evidence_status":"verified"},{"label":"ApiFlash capture parameters","url":"https://apiflash.com/documentation","locator":"Parameters","claim_group":"capture","verified_on":"2026-09-29","note":"The parameter reference documents full-page capture, viewport dimensions, delay and selector controls, cookie-banner handling, and image formats.","evidence_status":"verified"},{"label":"ApiFlash public documentation agent-surface review","url":"https://apiflash.com/documentation","locator":"Documentation navigation and examples","claim_group":"agent-tools","verified_on":"2026-09-29","note":"The public HTML documentation includes language examples. No first-party CLI, MCP server, or agent skill was found in the linked documentation and guides reviewed on this date.","evidence_status":"not_found_in_public_first_party_docs"},{"label":"ApiFlash async and webhook documentation review","url":"https://apiflash.com/documentation","locator":"Access, Parameters, Examples, Rate limits, Quota, and Errors","claim_group":"api","verified_on":"2026-09-29","note":"No first-party async job, polling, or webhook workflow was found in the public 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"}}