diff --git a/.gitignore b/.gitignore
index 7c8df19..44098f3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,4 +34,4 @@ Thumbs.db
# Temporary files
*.tmp
*.temp
-.cache/
\ No newline at end of file
+.cache/*.pyc
diff --git a/public/changelog.html b/public/changelog.html
index 991b815..ce68f87 100644
--- a/public/changelog.html
+++ b/public/changelog.html
@@ -127,10 +127,29 @@ footer{border-top:1px solid var(--border);padding:48px 24px 32px;background:var(
+
+
+
+ - ✨ New:
darkMode parameter — emulate prefers-color-scheme: dark for dark mode screenshots
+ - ✨ New:
hideSelectors parameter — hide elements by CSS selector before capture (max 10, 200 chars each)
+ - 🔒 Fixed: Cancelled subscriptions now properly blocked (was incorrectly getting free tier)
+ - 🔒 Fixed: Recovery endpoint no longer logs full API keys
+ - 🛡️ Added: Rate limiting on billing endpoints (10 req/15min)
+ - 🐛 Fixed: FAQ accordion double-toggle
+ - 🐛 Fixed: Privacy/Terms/Impressum 404s on extensionless URLs
+ - 📊 355 tests passing
+
+
+
+
+
diff --git a/public/compare.html b/public/compare.html
index 6ee3091..c02891e 100644
--- a/public/compare.html
+++ b/public/compare.html
@@ -129,6 +129,8 @@ footer{border-top:1px solid var(--border);padding:48px 24px 32px;background:var(
- EU data residency (Germany)
- POST & GET endpoints
+ - Dark mode capture support
+ - Element hiding (CSS selectors)
- Built-in response caching
- Free playground, no signup
- Node.js & Python SDKs
@@ -189,6 +191,8 @@ footer{border-top:1px solid var(--border);padding:48px 24px 32px;background:var(
- 🇪🇺 EU-hosted & GDPR compliant — All rendering happens on servers in Germany. Your data never leaves the EU. No extra DPAs or compliance headaches.
- 💶 Simple EUR pricing — No currency conversion, no hidden fees. Plans start at €9/month with clear per-screenshot pricing.
+ - 🌙 Dark mode capture — Take screenshots in dark mode with a single parameter. Perfect for showcasing dark themes and modern designs.
+ - 👁️🗨️ Element hiding — Hide cookie banners, popups, and ads before capture using CSS selectors for clean results.
- 🔗 GET & POST endpoints — Use GET requests to embed screenshots directly in
<img> tags. No server-side code needed for simple use cases.
- ⚡ Built-in caching — Response caching out of the box. Repeated requests for the same URL return cached results instantly.
- 🎮 Free playground — Try the API in your browser without creating an account or entering payment details.
diff --git a/public/guides/quick-start.html b/public/guides/quick-start.html
index 4f11bf7..9904dda 100644
--- a/public/guides/quick-start.html
+++ b/public/guides/quick-start.html
@@ -196,6 +196,36 @@ screenshot = client.take(
+
+
6
+
Dark Mode and Element Hiding
+
Take advantage of SnapAPI's newest features for cleaner, more professional screenshots:
+
+
Dark Mode Screenshots
+
Capture websites in dark mode by setting darkMode: true:
+
+
+
cURL
+
curl -X POST https://snapapi.eu/v1/screenshot \
+ -H "Content-Type: application/json" \
+ -H "X-API-Key: YOUR_API_KEY" \
+ -d '{"url": "https://example.com", "darkMode": true}'
+
+
+
Hide Unwanted Elements
+
Remove cookie banners, popups, and ads using CSS selectors:
+
+
+
cURL
+
curl -X POST https://snapapi.eu/v1/screenshot \
+ -H "Content-Type: application/json" \
+ -H "X-API-Key: YOUR_API_KEY" \
+ -d '{"url": "https://example.com", "hideSelectors": ["#cookie-banner", ".popup", ".ads"]}'
+
+
+
You can combine both features for clean dark mode screenshots without distractions.
+
+
Ready to Build?
Get your API key and start capturing screenshots in production.
diff --git a/public/index.html b/public/index.html
index 7693281..c955018 100644
--- a/public/index.html
+++ b/public/index.html
@@ -293,8 +293,14 @@ footer{border-top:1px solid var(--border);padding:48px 24px 32px;background:var(
curl -X POST https://snapapi.eu/v1/screenshot \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-
-d '{"url":"https://example.com","format":"png"}' \
+
-d '{"url":"https://example.com","format":"png","darkMode":true}' \
-o screenshot.png
+
+
# Hide elements before capture
+
curl -X POST https://snapapi.eu/v1/screenshot \
+
-H "Authorization: Bearer YOUR_API_KEY" \
+
-H "Content-Type: application/json" \
+
-d '{"url":"https://example.com","hideSelectors":["#cookie-banner",".popup"]}'
# GET request with query parameters
@@ -319,6 +325,8 @@ footer{border-top:1px solid var(--border);padding:48px 24px 32px;background:var(
format: 'png',
width: 1920,
fullPage: true,
+ darkMode: true,
+ hideSelectors: ['#cookie-banner', '.popup'],
});
@@ -332,6 +340,8 @@ screenshot = snap.capture(
format="png",
width=1920,
full_page=True,
+ dark_mode=True,
+ hide_selectors=["#cookie-banner", ".popup"],
)
@@ -474,6 +484,16 @@ screenshot = snap.Use CSS selectors to wait for specific elements before capturing. Ideal for SPAs and dynamic content.
+
+
🌙
+
Dark Mode Capture
+
Capture websites in dark mode with a single parameter. Perfect for design previews, marketing materials, and app stores.
+
+
+
👁️🗨️
+
Element Hiding
+
Hide cookie banners, popups, and ads before capture. Get clean screenshots every time with CSS selector-based hiding.
+