Store every screenshot and PDF directly in your own S3-compatible bucket. Configure once in the dashboard — no code changes, no per-request parameters.
How it works
Enter your bucket name, region, and credentials in the dashboard. We encrypt everything with AES-256-GCM before storing.
Click "Test Connection" to verify access. We upload and delete a tiny test file to confirm permissions.
Every screenshot and PDF is automatically uploaded to your bucket. No per-request configuration needed.
API response
When custom S3 is enabled, every screenshot and PDF response includes a storage_url field with the S3 URI of the uploaded file. Webhook payloads include it too.
Your existing API calls work unchanged — no new parameters needed. The upload happens automatically in the background.
{
"id": "a1b2c3d4-...",
"url": "https://example.com",
"status": "completed",
"storage_url": "s3://my-bucket/screenshots/abc.png",
"metadata": {
"width": 1280,
"height": 720,
"format": "png",
"size_bytes": 245000,
"render_time_ms": 850,
"cached": false
}
}Compatibility
If it speaks the S3 API, it works. Just set a custom endpoint.
Amazon's industry-standard object storage
Default (s3.amazonaws.com)
Zero egress fees, S3-compatible
https://<account>.r2.cloudflarestorage.com
Affordable, S3-compatible storage
https://s3.<region>.backblazeb2.com
Simple, scalable object storage
https://<region>.digitaloceanspaces.com
Self-hosted, S3-compatible
Your MinIO endpoint
Works with any service that speaks S3
Custom endpoint
Security
Your S3 credentials are encrypted at rest with AES-256-GCM. The encryption key never leaves your server.
We only need PutObject. Create a dedicated IAM user with a single permission for maximum isolation.
Access keys are masked in the dashboard and never appear in logs, responses, or error messages.
Remove your S3 configuration with one click. Credentials are immediately wiped from the database.
Recommended setup
Create a dedicated IAM user with only s3:PutObject permission. No read access, no delete access, no list access. Just write.
This way, even if credentials were ever compromised, the blast radius is limited to uploading files to a single bucket prefix.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}Available on Pro and Enterprise plans. Set up in under a minute.