Referenční příručka k OG image API
Referenční příručka k OG image API pokrývá endpoint, parametry a katalog šablon pro generování dynamických Open Graph obrázků s FastOG. API je podmíněno předplatným — vyžaduje aktivní plán Dynamic API, ale samotná vykreslení se neměří: neexistuje žádná měsíční kvóta na vykreslení ani účtování nadlimitního čerpání. URL podepsané pomocí HMAC zajišťují bezpečnost každého požadavku. Zaregistruj se, zvol plán Dynamic API a poté si v dashboardu vytvoř API klíč a HMAC secret; placená vykreslení přes API jsou čistá. Vygenerovaný kontrakt OpenAPI je závazný strojově čitelný seznam parametrů, chybových kódů a slugů šablon.
Základní URL
https://fastog.com/api/v1/og
Autentizace
Všechny požadavky vyžadují autentizaci podpisem HMAC-SHA256. Veřejný key a podpis s jsou query parametry; autentizace pomocí hlaviček momentálně není podporována. Podrobnosti najdeš v dokumentaci k HMAC.
Endpoint
GET /api/v1/og
Generuje dynamický OG obrázek na základě zadaných parametrů.
Parametry dotazu
| Parametr | Typ | Povinný | Popis |
|---|---|---|---|
template |
string | Ne | Název šablony (výchozí: default) |
title |
string | Ano | Hlavní nadpis. Povinný — náhled bez titulku není užitečný. |
subtitle |
string | Ne | Podtitulek nebo popisný text |
key |
string | Ano | Celý API klíč |
s |
string | Ano | HMAC-SHA256 podpis (64 hex znaků) |
Parametry specifické pro šablonu
Každá šablona přijímá níže uvedené společné parametry plus své parametry specifické pro šablonu (viz tabulka indexu). Parametr dotazu template určuje, které rozložení se použije (výchozí: default).
Společné parametry (všechny šablony)
| Parametr | Typ | Popis |
|---|---|---|
title |
string | Text hlavního nadpisu |
subtitle |
string | Doplňující text |
tags |
list | Štítky oddělené čárkou |
theme |
string | dark | light | glass | solid | midnight | vivid | paper | glass_light | custom |
gradient_preset |
string | Pojmenovaný preset přechodu (např. indigo, ocean, sunset, cosmic) |
gradient_direction |
number | Úhel přechodu ve stupních (výchozí 135) |
bg_color |
hex | Barva plného pozadí |
pattern |
string | Vzor pozadí (grid, dots, noise, none, …) |
pattern_color |
hex | Barva vzoru |
pattern_intensity |
number | Průhlednost vzoru (1–30) |
font_family |
string | font-sans, font-jakarta, font-dm, font-outfit, font-space, font-playfair, font-merriweather, font-instrument, font-jetbrains, font-fira |
accent_color |
hex | Barva zvýraznění pro akcenty |
auto_text_color |
bool | Odvodit barvu textu z pozadí (výchozí true) |
title_color |
hex | Přepsat barvu titulku |
subtitle_color |
hex | Přepsat barvu podtitulku |
brand_name |
string | Text značky/loga (výchozí FastOG) |
brand_logo |
string | URL obrázku loga značky |
layout_mode |
string | split | centered | banner (platí varianty specifické pro šablonu) |
Přehled šablon — 67 vykreslitelných slugů, 48 volitelných. Tabulka níže dokumentuje
nejpoužívanější vzhledy a jejich props specifické pro šablonu; vyčerpávající, generovaný seznam (label, kategorie,
příznak retired a každý akceptovaný slug) je v /openapi.json pod
x-template-catalogue a editační pole každé šablony (key, label, type, default, options a
URL formát) jsou pod x-template-fields. Retired slugy zůstávají vykreslitelné, takže URL, které už jsou
venku, dál fungují, ale pickery je nenabízejí.
template |
Šablona | Kategorie | Další parametry |
|---|---|---|---|
default |
Default | Brand | — |
blog |
Blog Post | Content | author, date, domain |
ecommerce |
E-commerce | Commerce | price, original_price, rating, rating_total, features, badge, cta, image, domain |
company |
Company | Brand | domain, logo, tag |
launch |
Product Launch | Brand | kicker, version, tag, cta, domain |
saaslaunch |
SaaS Launch | Brand | kicker, cta, domain |
devtool |
Developer Tool | Developer | version, badge, domain |
game |
Game | Content | price, rating, image, domain |
event |
Event | Social | location, host, date, domain |
quote |
Quote | Social | quote, author_name, author_title |
job |
Job Posting | Social | location, department, salary, job_type, domain |
stats |
Stats | Data | metric, metric_label, delta |
pricing |
Pricing | Commerce | price, period, cta |
podcast |
Podcast | Media | episode_number, guest_name, guest_role, duration |
video |
Video | Media | duration, channel, views |
editorial |
Editorial | Content | kicker, author, date, domain |
minimal |
Minimal | Brand | domain |
changelog |
Changelog | Developer | version, tag |
corporate |
Corporate | Brand | kicker, tag, domain |
hero |
Hero | Brand | kicker, cta, status, domain |
imageright |
Image Right | Commerce | kicker, price, original_price, rating, rating_total, badge, cta, image, domain |
specgrid |
Spec Grid | Commerce | specs (seznam `Label |
logos |
Logo Wall | Brand | kicker, brand_logos, domain |
notice |
Notice | Social | notice_status, notice_icon, notice_text, date, domain |
testimonial |
Testimonial | Social | quote, author_name, author_title, company, author_avatar, rating, rating_total, quote_style |
logofocus |
Logo Focus | Content | kicker, domain |
xheader |
X Header | Social | size, handle, followers, location, website, avatar |
bento |
Bento | Data | kicker, tiles, domain |
comparison |
Comparison | Commerce | kicker, left_label, left_desc, left_points, right_label, right_desc, right_points, verdict |
timeline |
Timeline | Content | kicker, milestones, domain |
countdown |
Countdown | Brand | kicker, target_date, cta, domain |
news |
News | Content | headline, byline, author, date, source, image |
code |
Code | Developer | code, language, terminal_title, author, domain |
testimonialpro |
Testimonial Pro | Social | quote, author_name, author_title, company, author_avatar, rating, rating_total, cta |
product |
Product | Commerce | badge, title, price, original_price, rating, rating_total, features, cta, image, layout_mode |
promo |
Promo | Brand | brand_name, benefits, title, subtitle, domain, layout_mode |
devblog |
Dev Blog | Content | category, title, subtitle, tags, author, author_title, date, read_time, views, likes, comments, code, language, file_path |
codepost |
Code Post | Content | category, date, title, subtitle, author, read_time, code, file_path, language |
statsbar |
Stats Bar | Data | kicker, metric, metric_label, delta, stats, domain |
changelogpro |
Changelog Pro | Developer | version, tag, title, changes, features, domain |
quotecta |
Quote CTA | Social | quote, author_name, author_title, company, cta, domain |
appscreenshot |
App Screenshot | Media | badge, title, subtitle, app_name, rating, screenshot, domain |
realestate |
Real Estate | Commerce | title, subtitle, price, beds, baths, sqft, cta_text, status, image_url, domain |
autorental |
Auto Rental | Commerce | title, subtitle, rate_badge, cta_text, fleet_tag, image_url, domain |
restaurant |
Restaurant | Commerce | kicker, title, subtitle, price, cta_text, badge, image_url, domain |
hospitality |
Hospitality | Media | kicker, title, subtitle, rate, cta_text, image_url, domain |
saasspend |
SaaS Spend | Brand | status_pill, title, subtitle, cta_text, stat_callout, dashboard_image, domain |
brutalist |
Brutalist | Brand | agency_tag, title, subtitle, cta_text, footer_note, domain |
training |
Training | Social | track, dates, title, subtitle, cta_text, location, image_url, domain |
ecosystem |
Ecosystem | Developer | kicker, title, subtitle, apps_list, dock_label, domain |
glassproduct také přijímá cta. Šablony ecommerce, product, glassproduct a imageright
ve výchozím nastavení zobrazují „Shop now“; nastav cta na prázdnou hodnotu, abys vizuální pilulku skryl.
Typy strukturovaných parametrů
| Typ | Formát | Příklad |
|---|---|---|
list |
Hodnoty oddělené čárkou | features=Fast,Cheap,Secure |
tiles |
Dvojice label|value oddělené řádkem |
tiles=Requests|12.4M\nUptime|99.99% |
milestones |
date|title|description oddělené řádkem |
milestones=Q3 2026|Alpha|Invite-only |
changes |
type|text oddělené řádkem (added,fixed,improved,removed) |
changes=added|Bento templates |
Odpověď
- 200 OK — Vrací data obrázku PNG
- 401 Unauthorized — Neplatná nebo chybějící autentizace
- 422 Unprocessable — Neplatné parametry šablony
Chybové odpovědi
| Kód chyby | Stav HTTP | Popis |
|---|---|---|
missing_signature |
401 | Chybí parametr key nebo s |
invalid_signature |
401 | Ověření podpisu selhalo |
Příklad požadavku
GET /api/v1/og?template=blog&title=Hello%20World&subtitle=A%20test%20post&key=sk_quick_123abc&s=a1b2c3...
Příklad cURL
curl "https://fastog.com/api/v1/og?template=blog&title=Hello%20World&key=sk_quick_123abc&s=<signature>"
Ceny a limity
FastOG je vázaný na předplatné: vyžaduje aktivní plán Dynamic API. Vykreslování není měřené — neexistuje žádná měsíční kvóta na vykreslování ani účtování za překročení. Plán je podmínkou přístupu a každá úroveň vykresluje bez počítadla. Aktuální úrovně a ceny najdeš v Ceny.
Uložené obrázky v cache jsou zdarma: požadavky obsloužené z edge cache Cloudflare (stejná
šablona + parametry, bez ohledu na s podpis u dříve uložené URL) se nikdy nedostanou do originu,
takže identická URL nespotřebuje další vykreslení.
Čisté ve výchozím nastavení: každé vykreslení je čisté — žádný vodoznak v žádném plánu a žádný
ani v bezplatném OG Image Testeru, náhledech ve Studiu nebo exportech ze Studia. Vlastnost
vykreslování fastog_watermark je stále podporovaná pro volající, kteří výslovně požadují odznak „Made with
FastOG“, ale nic ji nenastavuje automaticky.
Související
- Dokumentace — Všechny příručky a reference FastOG
- Bezplatný tester OG obrázků — Náhled bez účtu
- Průvodce rychlým startem — obsahuje tok architektury (podpis při vykreslování)
- Průvodce HMAC podpisem
- Validace HMAC
- JavaScript tutoriál