getsnap
Official Python SDK for getSnap.dev — Screenshot & PDF API.
Zero dependencies. Uses only Python's standard library (urllib).
Installation
pip install getsnap
Quick Start
from getsnap import GetSnap
snap = GetSnap("sk_live_YOUR_KEY")
# Take a screenshot
result = snap.screenshot(url="https://github.com", format="png")
print(result["url"]) # CDN URL to your screenshot
Features
- Zero external dependencies (uses
urllib) - Python 3.8+
- Screenshot capture (URL or HTML)
- Binary response (raw image bytes)
- Batch capture (up to 100 URLs)
- Usage tracking
- All API parameters supported:
lazy_load,wait_for_selector,hide_selectors,remove_selectors,extract_text,extract_html,click_selector,scroll_to_selector, and more
API
GetSnap(api_key, base_url=None)
Create a client instance.
api_key— Your getSnap.dev key (starts withsk_live_orsk_test_)base_url— Custom base URL (default:https://api.getsnap.dev)
snap.screenshot(**kwargs)
Take a screenshot. Returns a dict with url, cached, request_id, and optionally extracted_text/extracted_html.
result = snap.screenshot(
url="https://example.com",
format="png",
full_page=True,
remove_popups=True,
lazy_load=True,
extract_text=True,
)
print(result["url"])
print(result["extracted_text"])
snap.screenshot_binary(**kwargs)
Get raw image/PDF bytes.
data = snap.screenshot_binary(url="https://example.com", format="webp", quality=90)
with open("screenshot.webp", "wb") as f:
f.write(data)
snap.batch(urls, **kwargs)
Capture multiple URLs in one request.
result = snap.batch(
urls=["https://github.com", "https://stripe.com", "https://vercel.com"],
format="png",
remove_popups=True,
)
print(f"{result['succeeded']}/{result['count']} captured")
for r in result["results"]:
print(f"{r['source_url']} -> {r['url']}")
snap.usage()
Check current usage and quota.
usage = snap.usage()
print(f"{usage['used']}/{usage['limit']} ({usage['plan']})")
snap.status(request_id)
Check status of an async (webhook) request.
status = snap.status("req_abc123")
Error Handling
from getsnap import GetSnap, GetSnapError
snap = GetSnap("sk_live_YOUR_KEY")
try:
snap.screenshot(url="https://example.com", format="png")
except GetSnapError as e:
print(e.status, e.error, str(e))
# 402, "quota_exceeded", "Monthly limit reached..."
License
MIT
Metadata
Release files for getsnap 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| getsnap-1.4.0.tar.gz | 6.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| getsnap-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.8 kB
Release files / getsnap-1.4.0.tar.gz
| Download URL | getsnap-1.4.0.tar.gz |
|---|---|
| Size | 6.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5abaaf962b2bb6e8788ed19ef642eed2ea1355e38de6d35cf91da4fe7c58414e
|
|
BLAKE2b-256 checksum How to use checksums |
7f56e64c95209517c3f6d4fdb612e355d150b4be9d97e0b4d9fce782d86c6162
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / getsnap-1.4.0-py3-none-any.whl
| Download URL | getsnap-1.4.0-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e42b68d52ff415ccd66279d00fe1d137c14597d551ac40d4622e48ffcf34acad
|
|
BLAKE2b-256 checksum How to use checksums |
cd697ce9f7d50e91626f5caba7997d4a4e713848f34443585501da3a94a4bec9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|