ShotOG

Screenshot & OG Images. One API Call.

9 Beautiful Templates
Edge-Native (140ms)
PNG & SVG Output
Custom Fonts
Batch API (20 imgs)
500 Free/month
ShotOG example

Quick Start

Generate an OG image with a single HTTP request:

# Simple GET request
curl "https://karta-shotog.royal-dew-cbe4.workers.dev/v1/og?title=Hello%20World&template=basic"

# With all options
curl "https://karta-shotog.royal-dew-cbe4.workers.dev/v1/og?title=My%20Post&subtitle=A%20great%20read&template=blog&eyebrow=Tech&author=Jane"

# Or use POST with JSON
curl -X POST https://karta-shotog.royal-dew-cbe4.workers.dev/v1/og \
  -H "Content-Type: application/json" \
  -d '{"title":"Hello","template":"product","eyebrow":"NEW"}'

Custom Fonts

Use any TTF or OTF font by passing a URL. No upload needed — just point to your font file.

# Use a custom font via URL
curl "https://karta-shotog.royal-dew-cbe4.workers.dev/v1/og?title=Hello%20World&fontUrl=https://example.com/fonts/Poppins-Regular.ttf"

# Works with Google Fonts direct links, GitHub raw URLs, etc.
curl "https://karta-shotog.royal-dew-cbe4.workers.dev/v1/og?title=Hello&fontUrl=https://github.com/google/fonts/raw/main/ofl/poppins/Poppins-Regular.ttf"

# Graceful fallback: if the font URL fails, Inter is used automatically
# Check X-Font-Fallback: true header to detect fallback

Batch Generation

Generate up to 20 OG images in a single API call. Perfect for blog indexes, sitemaps, and CI/CD pipelines.

# Generate multiple images at once
curl -X POST https://karta-shotog.royal-dew-cbe4.workers.dev/v1/og/batch \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: sk_..." \
  -d '{
  "images": [
    {"id": "hero", "title": "My Product", "template": "product"},
    {"id": "blog-1", "title": "First Post", "template": "blog", "author": "Alice"},
    {"id": "blog-2", "title": "Second Post", "template": "blog", "author": "Bob"}
  ],
  "defaults": {"format": "png", "width": 1200, "domain": "example.com"}
}'

# Returns JSON with base64 data URIs for each image
# { "results": [{ "id": "hero", "success": true, "dataUri": "data:image/png;base64,..." }, ...] }

Templates

Choose from 9 built-in templates, including a Berlin Type WordPress cover:

Basic template
basic
Blog template
blog
Product template
product
Social template
social
Event template
event
Changelog template
changelog
Testimonial template
testimonial
Announcement template
announcement
WordPress template
wordpress

Playground

Try it live — customize and preview your OG image:

Click "Generate Preview" to see your image

Pricing

Free

$0/mo
500 images/month
Custom fonts via URL

Pro

$29/mo
20,000 images/month
Custom fonts via URL

Scale

$79/mo
100,000 images/month
Custom fonts via URL

Get API Key

curl -X POST https://karta-shotog.royal-dew-cbe4.workers.dev/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com"}'

# Returns: { "key": "sk_...", "tier": "free", "monthly_limit": 500 }
Try it now — no signup needed