GLINT RENDERWEB RENDERING & EVIDENCE PLATFORM
One REST API that sees, remembers and proves — pixel-perfect screenshots and PDFs, page-change monitoring, and tamper-evident evidence with trusted timestamps. Built for developers and the AI agents acting on their behalf.
THREE LAYERS
01 — SEE
Pixel-perfect captures, structured data and AI answers from any URL — machine-readable, stitch-free, at any resolution up to 4K.
/v1/screenshot · /v1/pdf · /v1/og · /v1/extract · /v1/ai/*
02 — REMEMBER
Scheduled re-renders, pixel-level diffs, field-level data extraction and signed change alerts. The page's history, kept for you.
/v1/watch · /v1/diff · /v1/perf · /v1/record
03 — PROVE
SHA-256 evidence archives, RFC 3161 trusted timestamps, signed action receipts and AI-answer tracking. Tamper-evident by design.
/v1/evidence · /v1/act · /v1/geo
Every option is one JSON field. Every claim maps to an endpoint you can call today — the product is the proof.
EXTRACT · MARKDOWN
One call returns clean Markdown, headings, links, images and word counts from any URL — structured data ready for RAG pipelines and AI agents.
FULL-PAGE
Viewport, full-page, or a single element — at any width you name. Long pages come back whole, stitch-free.
2× RETINA
Device scale factor two on request. Crisp on studio displays and phone screens alike.
DARK MODE
Emulate the dark color scheme on any capture. Same URL, both worlds.
ELEMENT-LEVEL
Pass a CSS selector and get that element alone — cards, charts, receipts — cropped to the pixel.
PDF ENGINE
A4 to Legal, real margins, print backgrounds on. Invoices, reports and tickets straight from HTML.
AGENT LAYER
A semantic tree of every interactive element, action chains with signed receipts, and logo extraction — built for autonomous browsers.
THE TOOLBOX
Whole-site crawls to Markdown, page video recording, AI vision analysis, QR codes, code beauty shots, device presets, session injection, BYO proxy.
QUICKSTART
curl -X POST https://api.ottersnap.com/v1/screenshot \
-H "Authorization: Bearer otter_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://github.com", "fullPage": true}' \
--output shot.pngTRY IT LIVE
Run any endpoint right here, download the result, and take the exact cURL with you — swap in your key and it's production.
Pick an endpoint, drop in a URL, hit RUN — no key needed.
curl -X POST https://api.ottersnap.com/v1/screenshot \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format":"png","width":1280,"height":800,"url":"https://github.com"}'Free to try — 12 runs per hour from the demo key. Get your own key for 100 renders / month.
RECIPES
CRON · MONITORING
A dated PNG of every rival page, on your desk by 6 AM.
for (const url of targets) {
const res = await fetch(API + "/v1/screenshot", {
method: "POST",
headers: { Authorization: "Bearer " + KEY,
"Content-Type": "application/json" },
body: JSON.stringify({ url, fullPage: true,
cookieBlock: true }),
});
fs.writeFileSync("shots/" + today + "-" + host(url)
+ ".png", Buffer.from(await res.arrayBuffer()));
}BILLING · PDF
Every invoice ID becomes a printer-ready A4 in one call.
const res = await fetch(API + "/v1/pdf", {
method: "POST",
headers: { Authorization: "Bearer " + KEY,
"Content-Type": "application/json" },
body: JSON.stringify({
url: app + "/invoices/" + inv.id,
paper: "A4",
}),
});
attach(inv.email, await res.arrayBuffer());AI · RAG PIPELINES
Clean Markdown from any URL, ready to embed and query.
const res = await fetch(API + "/v1/extract", {
method: "POST",
headers: { Authorization: "Bearer " + KEY,
"Content-Type": "application/json" },
body: JSON.stringify({ url, format: "markdown" }),
});
corpus.push({ url, text: await res.text() });AGENT · EVIDENCE
An action receipt with SHA-256 and a trusted timestamp.
const res = await fetch(API + "/v1/act", {
method: "POST",
headers: { Authorization: "Bearer " + KEY,
"Content-Type": "application/json" },
body: JSON.stringify({ url, evidence: true,
actions: [{ fill: { selector: "#email",
value: user.email }},
{ click: "#submit" }] }),
});
// res.receipt = { image_sha256, manifest_sha256, tsa }PRICING
For side projects and weekend hacks. Free forever.
For products in production.
2 MONTHS FREE · CREDITS ON OK RENDERS ONLY
For growing apps and heavy workloads.
2 MONTHS FREE · CREDITS ON OK RENDERS ONLY
1 RENDER = 1 CREDIT · DIFF 2 · ACT 2 (EVIDENCE RECEIPT +1) · EVIDENCE CAPTURE 3 · WATCH CHECK 1 · CACHE HITS & FAILED RENDERS FREE · CARD / PAYPAL / APPLE PAY / GOOGLE PAY VIA PADDLE
FAQ
Glint Render is a web rendering and evidence API built by Moyu, a one-person independent studio. One REST API turns any URL into pixel-perfect screenshots, print-ready PDFs, Open Graph social cards and structured Markdown — and adds page-change monitoring, pixel diffs and tamper-evident evidence archives with RFC 3161 trusted timestamps. The free plan includes 100 renders per month, no credit card required.
One successful screenshot, PDF or OG image response consumes one credit. Cached responses (5-minute cache) and failed renders are free and never count against your monthly quota.
Most pages render in a few seconds with full JavaScript execution and fonts settled. Repeat renders of the same URL hit a 5-minute cache — those are faster and free. Pass fresh: true to skip the cache.
PNG and JPEG screenshots up to 3840×2160 (viewport, full-page or element-level, 2× retina, dark mode), PDFs in A4, Letter and Legal with real margins and print backgrounds, and 1200×630 Open Graph cards. Every option is a single JSON field.
Yes. Glint Render ships an official MCP server (npm: ottersnap-mcp) that plugs into Claude, Cursor, Codex and other MCP clients, plus an n8n community node. The agent layer adds GET /v1/tree (semantic page tree), POST /v1/act (action chains with signed receipts) and POST /v1/logo.
Glint Render collects the minimum: your email, request counts and the URLs you render. Rendered content is never sold; API keys are stored hashed. Payments run through Paddle (card, PayPal, Apple Pay, Google Pay) and every paid plan has a 14-day full-refund policy.
Free forever tier, no credit card. Upgrade when your pipeline outgrows it — every claim on this page is an endpoint away.