Guides / Migrating to ScreenNabster
Migrating to ScreenNabster
ScreenNabster accepts many compatible aliases on top of native field names—your existing query strings often work with minimal edits.
Overview
Many screenshot API providers use a centralized third-party host with access-key signing. ScreenNabster runs directly on your product origin (production example: https://screennabster.com) with POST https://screennabster.com/api/v1/capture and GET https://screennabster.com/api/v1/capture.
If you migrate from URLs with query keys access_key, expires (Unix seconds), and signature, ScreenNabster uses the same HMAC-SHA256 embed pattern with your dashboard ak_live_* access key plus the signing secret (see API reference). Private server calls use X-API-Key: pk_….
ScreenNabster is also available on the RapidAPI marketplace; quotas for paid tiers remain authoritatively tied to your Billing subscription.
Host and auth cheat sheet
| Topic | Other screenshot APIs (typical) | ScreenNabster |
|---|---|---|
| Base URL | Third-party centralized host | https://screennabster.com/api/v1/capture (POST body or GET query) |
| Server SDK / API key | Often access key + secret signing | Header X-API-Key with pk_… |
| Public embed URLs | Signed query URLs | access_key, expires, and signature on GET (HMAC excludes signature fragment) |
| Official SDK | Multi-language SDKs | @screennabster/sdk (Getting started) + OpenAPI-generated clients |
Alias mapping table
Native ScreenNabster wins when both alias and native are sent. Rows below mirror normalizeCaptureInput semantics.
| Compatible alias | ScreenNabster native |
|---|---|
format | output (jpeg normalized to jpg) |
response_type | response_mode |
viewport_width / viewport_height | screen_width / screen_height |
full_page | page_full |
full_page_scroll* | page_full_scroll* |
delay | wait |
viewport_device | device |
dark_mode | theme_dark |
styles / scripts | inject_css / inject_js |
click / hover | click_selector / hover_selector |
cache, cache_ttl, cache_key | cached, cache_ttl, cache_key |
pdf_paper_format | pdf_format |
block_ads | strip_ads |
geolocation_latitude / geolocation_longitude | geo_lat / geo_lng |
block_cookie_banners / block_chats / block_trackers / block_banners_by_heuristics | filters / strip_ads merge |
Examples
Minimal GET PNG
curl -G "https://screennabster.com/api/v1/capture" \
--data-urlencode "url=https://example.com" \
-H "X-API-Key: pk_live_your_key" \
--output shot.pngJSON + metadata response
response_type=json is accepted as an alias for response_mode=json.
curl -X POST "https://screennabster.com/api/v1/capture" \
-H "Content-Type: application/json" \
-H "X-API-Key: pk_live_your_key" \
-d "{\"url\":\"https://example.com\",\"response_type\":\"json\"}"Bulk synchronous batch
Use POST https://screennabster.com/api/v1/capture/bulk with requests merged with optional options.
curl -X POST "https://screennabster.com/api/v1/capture/bulk" \
-H "Content-Type: application/json" \
-H "X-API-Key: pk_live_your_key" \
-d '{
"execute": true,
"options": { "format": "png", "viewport_width": 1440 },
"requests": [
{ "url": "https://example.com" },
{ "url": "https://another.example", "full_page": true }
]
}'Known caveats
- JP2 / HEIF output formats are not supported (runtime portability constraints).
full_page_algorithm=by_sectionsis accepted for compatibility; the worker primarily uses continuous Playwright full-page capture unless you negotiate a custom stitch pipeline.- Async jobs use ScreenNabster queue + webhook payloads (see Async jobs and webhooks); payloads and retry semantics may differ from your previous provider—migrate integration tests accordingly.