Documentation
Generate dynamic open graph images programmatically with a simple URL structure. Output is JPEG (1200x630, q=85) and cached at the edge.
⚡ Quick Start
🔐 Authentication & Rate Limits
✅ No API Key Required!
The /api/render endpoint works without authentication:
- Anonymous users: Rate-limited automatically (Free tier)
- Signed-in users: Automatic plan detection (Free/Pro/Lifetime)
- Edge-optimized: All responses cached globally for instant delivery
⚡ Rate Limits
Perfect for testing & small projects
20x more — ideal for production sites
60x more — maximum performance
📊 Additional Limits:
- URL Auto-Import: Free 10/day • Pro 50/day • Lifetime 500/day
- Saved Designs: Free 30 • Pro 200 • Lifetime 500
- Image Size: 5MB maximum per upload
📈 Monitoring Your Usage
All responses include usage metrics in HTTP headers:
X-RateLimit-LimitYour plan's max requests/min
X-RateLimit-RemainingRequests left in current window
X-RateLimit-ResetUnix timestamp when limit resets
X-RateLimit-PlanCurrent plan (free/pro/lifetime)
View detailed usage statistics on your Account page.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| title | string | Your Awesome Title Here | The main heading text. Must be URL encoded. |
| description | string | Create stunning OG images in seconds | Subheading text. Also accepts 'desc' as alias. |
| template | string | minimal | Template ID: minimal, gradient, tech, centered-blue, hero-dark, blog-minimal, podcast-classic, product-clean. See available templates. |
| logo | url | - | Brand logo URL (PNG, JPG, SVG). |
| logoPosition | string | top-right | Logo position: top-left, top-right, bottom-left, bottom-right. |
| bgImage | url | - | Background image URL. Works with most templates. |
| author | string | Author Name | Author name (blog/article templates). |
| category | string | - | Category or tag (blog templates). |
| publishDate | string | - | Publication date (blog templates). |
| readingTime | string | - | Reading time, e.g. '5 min read' (blog templates). |
| episode | number | - | Episode number (podcast templates). |
| duration | string | - | Duration, e.g. '45 min' (podcast templates). |
| price | string | - | Product price (product templates). |
| badge | string | - | Badge text, e.g. 'NEW', 'SALE' (product templates). |
| authorAvatar | url | - | Author avatar image URL (blog templates). |
| eventDate | string | - | Event date, e.g. 'Dec 15, 2024' (event templates). |
| eventTime | string | - | Event time, e.g. '2:00 PM EST' (event templates). |
| location | string | - | Event location (event templates). |
| showName | string | - | Podcast show name (podcast templates). |
| originalPrice | string | - | Original price before discount (product templates). |
| rating | number | - | Product rating, e.g. 4.5 (product templates). |
| reviewCount | string | - | Number of reviews, e.g. '1,234' (product templates). |
💡 Tip: For advanced customization (colors, gradients, patterns), use the Studio.
API Templates
All templates are available via API. Each template has a unique layout optimized for different use cases.
🎨 Want more? Customize all templates with brand colors, gradients, and patterns in the Studio.
Framework Integration
Next.js App Router
layout.tsxexport const metadata = {
openGraph: {
images: [{
url: 'https://ogify.site/api/render?title=' +
encodeURIComponent(title),
width: 1200,
height: 630,
}]
}
}Standard HTML
index.html<meta property="og:image" content=" https://ogify.site/api/render? title=Hello%20World& template=modern ">