OG-image-API-referentie
De OG-image-API-referentie behandelt het endpoint, de parameters en de templatecatalogus voor het genereren van dynamische Open Graph-afbeeldingen met FastOG. De API is alleen beschikbaar met een abonnement — een actief Dynamic API-plan is vereist, maar renders zelf worden niet geteld: er is geen maandelijkse renderc quota en geen facturering voor overschrijding. HMAC-ondertekende URL's houden elk verzoek beveiligd. Meld je aan, kies een Dynamic API-plan en maak vervolgens je API-sleutel en HMAC-secret aan in het dashboard; betaalde API-renders zijn schoon. Het gegenereerde OpenAPI-contract is de gezaghebbende, machineleesbare lijst van parameters, foutcodes en template-slugs.
Basis-URL
https://fastog.com/api/v1/og
Authenticatie
Alle verzoeken vereisen HMAC-SHA256-handtekeningauthenticatie. De publieke key en de s-handtekening zijn queryparameters; authenticatie via headers wordt momenteel niet ondersteund. Zie de HMAC-documentatie voor details.
Endpoint
GET /api/v1/og
Genereert een dynamische Open Graph-afbeelding op basis van de opgegeven parameters.
Queryparameters
| Parameter | Type | Vereist | Beschrijving |
|---|---|---|---|
template |
string | Nee | Naam van de template (standaard: default) |
title |
string | Ja | Hoofdkop. Vereist — een cover zonder titel is geen nuttige preview. |
subtitle |
string | Nee | Subtitel of beschrijvingstekst |
key |
string | Ja | Volledige API-sleutel |
s |
string | Ja | HMAC-SHA256-signatuur (64 hex-tekens) |
Template-specifieke parameters
Elke template accepteert de gedeelde parameters hieronder plus de template-specifieke parameters (zie de indextabel). De queryparameter template bepaalt welke layout wordt gebruikt (standaard: default).
Gedeelde parameters (alle templates)
| Parameter | Type | Beschrijving |
|---|---|---|
title |
string | Tekst van de hoofdkop |
subtitle |
string | Ondersteunende tekst |
tags |
list | Komma-gescheiden taglabels |
theme |
string | dark | light | glass | solid | midnight | vivid | paper | glass_light | custom |
gradient_preset |
string | Benoemd gradiëntpreset (bijv. indigo, ocean, sunset, cosmic) |
gradient_direction |
number | Gradiënthoek in graden (standaard 135) |
bg_color |
hex | Effen achtergrondkleur |
pattern |
string | Achtergrondpatroon (grid, dots, noise, none, …) |
pattern_color |
hex | Patroonkleur |
pattern_intensity |
number | Patroondichtheid (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 | Accentkleur voor highlights |
auto_text_color |
bool | Tekstkleur afleiden van de achtergrond (standaard true) |
title_color |
hex | Titelkleur overschrijven |
subtitle_color |
hex | Subtitelkleur overschrijven |
brand_name |
string | Merk-/logotekst (standaard FastOG) |
brand_logo |
string | URL van het merklogo |
layout_mode |
string | split | centered | banner (template-specifieke varianten zijn van toepassing) |
Template-index — 67 renderbare slugs, 48 selecteerbare. De onderstaande tabel documenteert de
meest gebruikte looks en hun template-specifieke props; de volledige, gegenereerde lijst (label, categorie,
retired-flag en elke geaccepteerde slug) staat in /openapi.json onder
x-template-catalogue, en de editorvelden van elke template (key, label, type, default, options en
URL-formaat) staan onder x-template-fields. Retired slugs blijven renderbaar zodat URL's die al in omloop zijn
blijven werken, maar ze worden niet aangeboden door de pickers.
template |
Template | Categorie | Extra parameters |
|---|---|---|---|
default |
Standaard | Merk | — |
blog |
Blogbericht | Content | author, date, domain |
ecommerce |
E-commerce | Commerce | price, original_price, rating, rating_total, features, badge, cta, image, domain |
company |
Bedrijf | Merk | domain, logo, tag |
launch |
Productlancering | Merk | kicker, version, tag, cta, domain |
saaslaunch |
SaaS-lancering | Merk | kicker, cta, domain |
devtool |
Developertool | Developer | version, badge, domain |
game |
Game | Content | price, rating, image, domain |
event |
Evenement | Social | location, host, date, domain |
quote |
Citaat | Social | quote, author_name, author_title |
job |
Vacature | Social | location, department, salary, job_type, domain |
stats |
Statistieken | Data | metric, metric_label, delta |
pricing |
Prijzen | Commerce | price, period, cta |
podcast |
Podcast | Media | episode_number, guest_name, guest_role, duration |
video |
Video | Media | duration, channel, views |
editorial |
Redactioneel | Content | kicker, author, date, domain |
minimal |
Minimaal | Merk | domain |
changelog |
Changelog | Developer | version, tag |
corporate |
Corporate | Merk | kicker, tag, domain |
hero |
Hero | Merk | kicker, cta, status, domain |
imageright |
Afbeelding rechts | Commerce | kicker, price, original_price, rating, rating_total, badge, cta, image, domain |
specgrid |
Spec-raster | Commerce | specs (lijst van `Label |
logos |
Logomuur | Merk | kicker, brand_logos, domain |
notice |
Melding | Social | notice_status, notice_icon, notice_text, date, domain |
testimonial |
Getuigenis | Social | quote, author_name, author_title, company, author_avatar, rating, rating_total, quote_style |
logofocus |
Logofocus | Content | kicker, domain |
xheader |
X-header | Social | size, handle, followers, location, website, avatar |
bento |
Bento | Data | kicker, tiles, domain |
comparison |
Vergelijking | Commerce | kicker, left_label, left_desc, left_points, right_label, right_desc, right_points, verdict |
timeline |
Tijdlijn | Content | kicker, milestones, domain |
countdown |
Aftellen | Merk | kicker, target_date, cta, domain |
news |
Nieuws | Content | headline, byline, author, date, source, image |
code |
Code | Developer | code, language, terminal_title, author, domain |
testimonialpro |
Getuigenis 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 | Merk | 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 |
Codebericht | Content | category, date, title, subtitle, author, read_time, code, file_path, language |
statsbar |
Statistiekenbalk | Data | kicker, metric, metric_label, delta, stats, domain |
changelogpro |
Changelog Pro | Developer | version, tag, title, changes, features, domain |
quotecta |
Citaat-CTA | Social | quote, author_name, author_title, company, cta, domain |
appscreenshot |
App-screenshot | Media | badge, title, subtitle, app_name, rating, screenshot, domain |
realestate |
Vastgoed | Commerce | title, subtitle, price, beds, baths, sqft, cta_text, status, image_url, domain |
autorental |
Autoverhuur | 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 |
Horeca | Media | kicker, title, subtitle, rate, cta_text, image_url, domain |
saasspend |
SaaS-uitgaven | Merk | status_pill, title, subtitle, cta_text, stat_callout, dashboard_image, domain |
brutalist |
Brutalistisch | Merk | agency_tag, title, subtitle, cta_text, footer_note, domain |
training |
Training | Social | track, dates, title, subtitle, cta_text, location, image_url, domain |
ecosystem |
Ecosysteem | Developer | kicker, title, subtitle, apps_list, dock_label, domain |
glassproduct accepteert ook cta. De templates ecommerce, product, glassproduct en imageright
tonen standaard "Shop now"; stel cta in op een lege waarde om de visuele pill te verbergen.
Gestructureerde parametertypes
| Type | Formaat | Voorbeeld |
|---|---|---|
list |
Door komma's gescheiden waarden | features=Fast,Cheap,Secure |
tiles |
Door regels gescheiden label|value-paren |
tiles=Requests|12.4M\nUptime|99.99% |
milestones |
Door regels gescheiden date|title|description |
milestones=Q3 2026|Alpha|Invite-only |
changes |
Door regels gescheiden type|text (added,fixed,improved,removed) |
changes=added|Bento templates |
Respons
- 200 OK — Retourneert PNG-afbeeldingsgegevens
- 401 Unauthorized — Ongeldige of ontbrekende authenticatie
- 422 Unprocessable — Ongeldige templateparameters
Foutresponses
| Foutcode | HTTP-status | Beschrijving |
|---|---|---|
missing_signature |
401 | Ontbrekende parameter key of s |
invalid_signature |
401 | Signatuurverificatie mislukt |
Voorbeeldverzoek
GET /api/v1/og?template=blog&title=Hello%20World&subtitle=A%20test%20post&key=sk_quick_123abc&s=a1b2c3...
Voorbeeld cURL
curl "https://fastog.com/api/v1/og?template=blog&title=Hello%20World&key=sk_quick_123abc&s=<signature>"
Prijzen & limieten
FastOG is alleen toegankelijk met een abonnement: er is een actief Dynamic API-plan vereist. Renders worden niet gemeten — er is geen maandelijkse renderc quota en geen facturering voor overschrijding. Het plan is de toegangspoort, en elke tier rendert zonder teller. Zie Prijzen voor de actuele tiers en prijzen.
Gecachte afbeeldingen zijn gratis: verzoeken die worden geserveerd uit de Cloudflare edge-cache (dezelfde template + params, ongeacht de s-signatuur op een eerder gecachte URL) bereiken nooit de origin, dus een identieke URL verbruikt geen extra render.
Standaard schoon: elke render is schoon — geen watermerk op welk plan dan ook, en geen watermerk op de gratis OG Image Tester, Studio-previews of Studio-exports. Een render-prop fastog_watermark wordt nog steeds ondersteund voor aanroepers die expliciet een "Made with FastOG"-badge aanvragen, maar niets stelt die automatisch in.
Gerelateerd
- Documentatie — Alle FastOG-handleidingen en -referenties
- Gratis OG-afbeeldingstester — Preview zonder account
- Snelstartgids — bevat de architectuurflow (ondertekenen op rendermoment)
- HMAC-handleiding voor handtekeningen
- HMAC-validatie
- JavaScript-tutorial