Async & Batch Rendering with Signed Webhooks
Fire 500 URLs at a single endpoint. Receive HMAC-signed webhook callbacks as each capture finishes — or poll job status on demand. No workers to run, no queues to monitor.
The Problem
Synchronous screenshot APIs hold your thread open for 5–30 seconds per URL. That's fine for one render, crippling for 500. Building your own async pipeline means a queue, workers, retry logic, webhook delivery, idempotency keys, and dead-letter handling — weeks of infrastructure work to capture a nightly batch.
The Solution
Rendex ships first-class async and batch endpoints with signed webhooks. Submit one URL in async mode or up to 500 URLs as a batch, receive a job ID immediately, and get HMAC-SHA256-signed webhook deliveries when each render completes. Status polling, automatic retries, and idempotent job submission are built in.
See it in action


Get Started in Minutes
curl -X POST "https://api.rendex.dev/v1/screenshot/batch" \
-H "X-API-Key: $RENDEX_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://example.com/page1", "https://example.com/page2"],
"defaults": { "fullPage": true, "format": "png" },
"webhookUrl": "https://your-app.com/hooks/rendex"
}'
# => { "batchId": "btc_01HX...", "jobs": [{ "jobId": "job_01..." }, ...] }from rendex import Rendex
rendex = Rendex("YOUR_API_KEY")
batch = rendex.batch(
urls=["https://example.com/1", "https://example.com/2"],
defaults={"full_page": True, "format": "png"},
webhook_url="https://your-app.com/hooks/rendex",
)
print(f"Batch {batch['data']['batchId']} submitted with {len(batch['data']['jobs'])} jobs")
# Or poll status directly:
status = rendex.batch_status(batch["data"]["batchId"])
for job in status["data"]["jobs"]:
print(job["jobId"], job["status"], job.get("resultUrl"))100 free API calls/month — no credit card required. Get your API key and start building.
Built for This Use Case
Batch up to 500 URLs
Submit a single request with up to 500 URLs. Enterprise plans lift batch caps. Every URL gets its own job ID for independent tracking and retries.
HMAC-Signed Webhooks
Receive HTTP POST callbacks as each capture finishes. Every webhook is signed with HMAC-SHA256 over the body — verify and trust the delivery.
Status Polling
Prefer pull over push? Poll /v1/jobs/:id or /v1/batches/:id for real-time status, result URLs, and per-job metadata.
Custom S3 / R2 Storage (Pro+)
Pro and Enterprise plans can deliver batch results directly to your own S3-compatible bucket (AWS, R2, Wasabi, Minio) — skip the download step entirely.
Start Free, Scale as You Grow
100 calls/month free. Starter at $69/mo for 10K calls (or $58/mo billed annually — 2 months free). Pro at $179/mo for 100K calls.