Reference
API documentation
Two GET endpoints, one API key. Generate dynamic Open Graph images and capture full-page screenshots with a single request — no SDK, no headless browser to run yourself.
Base URL
All endpoints are served from a single origin. Every response is a image/png.
https://ogle.talrax.comAuthentication
Every request must include an API key. Pass it either as an x-api-key request header or as a ?key= query parameter (handy for <img> tags and og:image meta URLs).
| Method | Example |
|---|---|
| header | x-api-key: YOUR_API_KEY |
| query | ?key=YOUR_API_KEY |
Get your personal key (prefixed ogs_) from your dashboard. Want to try before signing up? The no-code Studio renders live previews on this site — no key of your own required.
/api/og
Renders a 1200×630 PNG social card on the fly. Responds with 200 and image/png, cached for one hour. Each successful call counts against your monthly quota.
Query parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| title | string | Yes | — | Headline text. Truncated at 160 characters. |
| subtitle | string | No | — | Secondary line under the title. Truncated at 200 characters. |
| theme | light | dark | No | dark | Color scheme for the generated card. |
| bg | hex color | No | themed gradient | Solid background color, with or without a leading # (e.g. 0A1120). Overrides the theme gradient. |
Examples
curl "https://ogle.talrax.com/api/og?title=Hello&subtitle=World&theme=dark" \
-H "x-api-key: YOUR_API_KEY" \
-o og.pngconst res = await fetch(
"https://ogle.talrax.com/api/og?title=Hello&subtitle=World",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
);
const blob = await res.blob(); // image/png<!-- Drop straight into a page or an og:image meta tag -->
<img
src="https://ogle.talrax.com/api/og?title=Hello&subtitle=World&key=YOUR_API_KEY"
width="1200"
height="630"
alt="Open Graph card"
/>/api/screenshot
Captures any public URL as a PNG using a headless browser. Responds with 200 and image/png. Each successful call counts against your monthly quota.
Query parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | Yes | — | Public http(s) URL to capture. The scheme is optional — vercel.com is normalized to https://vercel.com. |
| fullPage | boolean | No | true | Capture the entire scrollable page. Set fullPage=false for a viewport-only shot. |
Examples
curl "https://ogle.talrax.com/api/screenshot?url=vercel.com&fullPage=true" \
-H "x-api-key: YOUR_API_KEY" \
-o shot.pngconst res = await fetch(
"https://ogle.talrax.com/api/screenshot?url=https://vercel.com",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
);
const blob = await res.blob(); // image/png<img
src="https://ogle.talrax.com/api/screenshot?url=vercel.com&key=YOUR_API_KEY"
alt="Full-page screenshot of vercel.com"
/>Error responses
Errors are returned as JSON with an error message and the relevant HTTP status code. Successful responses are always image/png.
| Status | Meaning |
|---|---|
| 401 | Missing or invalid API key. Provide a valid key via the x-api-key header or ?key= param. |
| 402 | Monthly limit reached. Your plan’s quota is exhausted — upgrade your plan or wait for the monthly reset. |
| 400 | Bad request. A required parameter is missing or invalid (for example, no url on /api/screenshot). |
| 5xx | Server error. Rendering or capture failed unexpectedly — retry the request; if it persists, contact support. |
Plans & limits
Each plan includes a combined monthly request quota across /api/og and /api/screenshot. Once you hit the cap, requests return 402 until the next monthly reset.
| Plan | Price | Requests / month |
|---|---|---|
| Free | $0 | 100 |
| Pro | $19 | 50,000 |
| Scale | $99 | 1,000,000 |