ExchangeRebel Screenshot API
The Screenshot API from ExchangeRebel — 2 operation(s) for screenshot.
The Screenshot API from ExchangeRebel — 2 operation(s) for screenshot.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/exchangerebel-com:exchangerebel-com-screenshot-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: ExchangeRebel — pay-per-call APIs for AI agents (x402 on…
version: 1.0.0
contact:
name: 'ExchangeRebel (operator: Rebel Data)'
url: https://exchangerebel.com
email: sound.money.investing@gmail.com
x-guidance: 'All paid operations use x402 on Solana: call without payment to get a 402 challenge (SOL recipient + USDC token account + fresh memo), pay with the memo attached via the Solana Memo program, then retry with header X-Payment-Tx: <signature> and ?toll_memo=<memo>. Challenges are dual-version: the PAYMENT-REQUIRED header carries the x402 v2 PaymentRequired object and the response body carries the same challenge in x402 v1 form for compatibility. Free operations (security: []) include each service''s /health catalog with full response shapes. Prices in x-payment-info are USD per call unless the summary says otherwise (RPC is per 1,000-request block; Telegram provisioning is per bot-month; transcription is per minute of audio).'
description: '67 data and utility APIs behind x402 tolls, settled in SOL or USDC on Solana. Call a paid endpoint without payment to receive a 402 x402 challenge (recipient + fresh memo), pay with the memo attached via the Solana Memo program, then retry with the X-Payment-Tx header and toll_memo query parameter. Free catalog/health endpoints are marked without x-payment-info. Full catalogs: GET /toll/discovery and each service''s /health.'
servers:
- url: https://exchangerebel.com
tags:
- name: Screenshot
paths:
/toll/screenshot:
post:
tags:
- Screenshot
summary: Screenshot one public web page. $0.03
responses:
'200':
description: Success. Response shape is documented in the service catalog (GET /health on the service).
content:
application/json:
example:
image_png_base64: iVBORw0KGgoJCAcGBQ==
content_type: image/png
tier: viewport
requested_url: https://example.com/article
final_url: https://example.com/article
target_status: 200
width: 1280
height: 800
byte_size: 13
wall_ms: 1234
timed_out: false
complete: true
truncated_to_cap: false
envelope:
v: 1
service: screenshot
as_of: '2026-10-21T21:18:26.708Z'
source: Self-rendered by our own headless Chromium (CDP, persistent browser) on our own infrastructure; no third-party screenshot API
grade: derived
max_age_seconds: 30
changes:
supported: false
'402':
description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
requestBody:
content:
application/json:
schema:
type: object
properties:
url:
type: string
description: string (required) - the bare public URL to render. No credentials in the URL; caller cookies/headers are never accepted.
tier:
type: string
description: 'string - capture tier: viewport (default, $0.03) or full-page ($0.02, page height capped at 8,000 px)'
width:
type: integer
description: integer - viewport width in CSS pixels, 1..1920, default 1280
height:
type: integer
description: integer - viewport height in CSS pixels, 1..1080, default 800. Viewport tier only; rejected with the full-page tier.
required:
- url
x-payment-info:
protocols:
- x402
price:
mode: fixed
currency: USD
amount: '0.03'
security:
- x402Payment: []
operationId: postTollScreenshot
x-operation-id-source: derived
/toll/screenshot/preflight:
post:
tags:
- Screenshot
summary: Free pre-check twin of the screenshot op
responses:
'200':
description: Success. Response shape is documented in the service catalog (GET /health on the service).
requestBody:
content:
application/json:
schema:
type: object
properties:
url:
type: string
description: string (required) - the bare public URL to render. No credentials in the URL; caller cookies/headers are never accepted.
tier:
type: string
description: 'string - capture tier: viewport (default, $0.03) or full-page ($0.02, page height capped at 8,000 px)'
width:
type: integer
description: integer - viewport width in CSS pixels, 1..1920, default 1280
height:
type: integer
description: integer - viewport height in CSS pixels, 1..1080, default 800. Viewport tier only; rejected with the full-page tier.
required:
- url
security: []
operationId: postTollScreenshotPreflight
x-operation-id-source: derived
components:
securitySchemes:
x402Payment:
type: apiKey
in: header
name: X-Payment-Tx
description: 'x402 toll payment proof: the Solana transaction signature of a payment carrying the memo from the 402 challenge; send together with ?toll_memo=<memo>. Payment itself is made on-chain in SOL or USDC to the recipient named in the challenge.'