Rendex
Use Case

Safe URL Rendering — Backed by Google Safe Browsing

Every URL is checked against Google Safe Browsing before Rendex spins up a browser. Known malware, phishing, and social-engineering sites are refused with a structured error — no hostile payload ever reaches your pipeline.

The Problem

Rendering arbitrary user-submitted URLs is a security liability. Malware-hosting pages can exploit headless Chromium. Phishing sites create legal and compliance exposure when captured images are stored or redistributed. Social-engineering pages can steal session credentials if stealth UA or proxies are misconfigured. Running your own safety gate means constant threat-feed maintenance.

The Solution

Rendex pre-checks every URL against the Google Safe Browsing API before rendering begins. Malware, phishing, and unwanted-software URLs return a structured 400 with an UNSAFE_URL error code — so your pipeline can log, escalate, or reject. On Enterprise plans, custom allow/deny lists and private threat feeds can be layered on top.

See it in action

A suspicious URL submitted on the left, and a Blocked-before-render card on the right showing it was flagged by Google Safe Browsing, returned an UNSAFE_URL error, and charged zero credits.

Get Started in Minutes

safe-render.sh
curl -G "https://api.rendex.dev/v1/screenshot" \
  -H "X-API-Key: $RENDEX_KEY" \
  --data-urlencode "url=https://suspected-phishing.example"

# Safe Browsing match — response:
# HTTP/1.1 400 Bad Request
# {
#   "success": false,
#   "error": {
#     "code": "UNSAFE_URL",
#     "message": "URL blocked: flagged as SOCIAL_ENGINEERING by Google Safe Browsing."
#   },
#   "meta": { "requestId": "req_abc123", "timestamp": "2026-04-07T12:00:00Z" }
# }
safe_render.py
from rendex import Rendex, RendexApiError

rendex = Rendex("YOUR_API_KEY")

try:
    result = rendex.screenshot(url=submitted_url)
    open("capture.png", "wb").write(result.image)
except RendexApiError as e:
    if e.error_code == "UNSAFE_URL":
        log.warning("Rendex refused %s: %s", submitted_url, e.message)
    # Escalate, reject, or flag for review — never retry silently

100 free API calls/month — no credit card required. Get your API key and start building.

Built for This Use Case

Safe Browsing Pre-Check

Every URL is checked against Google Safe Browsing threat lists before a browser spins up. Malware, phishing, unwanted software, and social engineering are refused at the edge.

Structured Rejection

Blocked URLs return a 400 with an UNSAFE_URL error code and a message naming the flagged threat categories (malware, social engineering, unwanted software) so your logs, SIEM, and incident response can route correctly.

SSRF Protection

Private IP ranges, loopback, link-local, and metadata endpoints (169.254.169.254) are rejected before the render pipeline runs. Protects internal networks from user-submitted URLs.

Audit-Grade Headers

Every capture returns response headers with load time, final URL, HTTP status, truncation flags, and (for geo-routed captures) the country used — giving you the audit trail compliance teams require.

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.

Frequently Asked Questions

Related Resources