Screenshot & OG Image API
Generate images with a simple API call
Screenshots, OG images, and HTML-to-image rendering. One API, instant results. Built for developers who ship fast.
curl -X POST https://rendly-api.fly.dev/api/v1/screenshots \
-H "Authorization: Bearer ren_live_abc123" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "format": "png"}'
How it works
Three steps. That's it.
No SDKs to install. No browsers to manage. Just HTTP requests.
Get your API key
Sign up for free and get your API key in seconds. No credit card required.
Make an API call
Send a POST request with your URL or HTML. We render it with a real Chromium browser.
Get your image
Receive a CDN-hosted image URL instantly. Cached for fast repeated access.
Use cases
Built for real workflows
From OG images to automated screenshots, Rendly handles it all.
OG & Social Images
Auto-generate Open Graph images for every blog post, product page, or profile. Dynamic, always up-to-date, zero design work.
URL Screenshots
Capture any webpage as a high-res image. Perfect for link previews, monitoring dashboards, and competitor tracking.
HTML → Image
Render any HTML/CSS to a pixel-perfect image. Certificates, invoices, reports, email headers — design in code, export as image.
Code examples
Works with any language
Simple HTTP requests from any language or framework.
curl -X POST https://rendly-api.fly.dev/api/v1/screenshots \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://github.com/rendly",
"viewport": {"width": 1280, "height": 720},
"format": "png"
}'
const response = await fetch('https://rendly-api.fly.dev/api/v1/screenshots', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://github.com/rendly',
viewport: { width: 1280, height: 720 },
format: 'png',
}),
});
const data = await response.json();
console.log(data.url); // CDN image URL
import requests
response = requests.post(
'https://rendly-api.fly.dev/api/v1/screenshots',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'url': 'https://github.com/rendly',
'viewport': {'width': 1280, 'height': 720},
'format': 'png',
}
)
data = response.json()
print(data['url']) # CDN image URL
require 'net/http'
require 'json'
uri = URI('https://rendly-api.fly.dev/api/v1/screenshots')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = {
url: 'https://github.com/rendly',
viewport: { width: 1280, height: 720 },
format: 'png'
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts data['url'] # CDN image URL
Templates
Pre-built templates, ready to go
Pass your variables, get a beautiful image. No design skills needed.
Blog Post OG
Title, author, date, reading time
Product Card
Name, price, image, description
Tweet Card
Avatar, handle, tweet text
GitHub Card
Repo name, stars, language
Social Profile
Name, bio, avatar, stats
Custom
Create your own with HTML/CSS
Pricing
Simple, transparent pricing
Start free. Scale when you need to.
- Everything in Starter
- Priority rendering
- Priority support
Overage: $0.01 per render beyond your plan limit