OG-billede API-reference
OG-billede API-referencen dækker endpointet, parametrene og skabelonkataloget til generering af dynamiske Open Graph-billeder med FastOG. API'et er abonnementsbaseret — et aktivt Dynamic API-abonnement er påkrævet, men selve renderingerne måles ikke: der er ingen månedlig render-kvote og ingen fakturering for merforbrug. HMAC-signerede URL'er holder hver anmodning sikker. Tilmeld dig, vælg et Dynamic API-abonnement, og opret derefter din API-nøgle og HMAC-hemmelighed i dashboardet; betalte API-renderinger er rene. Den genererede OpenAPI-kontrakt er den autoritative maskinlæsbare liste over parametre, fejlkoder og skabelon-slugs.
Basis-URL
https://fastog.com/api/v1/og
Godkendelse
Alle anmodninger kræver HMAC-SHA256-signaturgodkendelse. Den offentlige key og signaturen s er query-parametre; header-baseret godkendelse understøttes ikke i øjeblikket. Se HMAC-dokumentationen for detaljer.
Endpoint
GET /api/v1/og
Genererer et dynamisk OG-billede (Open Graph image) baseret på de angivne parametre.
Query-parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
template |
string | Nej | Skabelonnavn (standard: default) |
title |
string | Ja | Hovedoverskrift. Påkrævet — et cover uden titel er ikke et brugbart preview. |
subtitle |
string | Nej | Undertekst eller beskrivelsestekst |
key |
string | Ja | Fuld API-nøgle |
s |
string | Ja | HMAC-SHA256-signatur (64 hex-tegn) |
Skabelonspecifikke parametre
Hver skabelon accepterer de fælles parametre nedenfor plus sine skabelonspecifikke parametre (se indekstabellen). Query-parameteren template vælger, hvilket layout der bruges (standard: default).
Fælles parametre (alle skabeloner)
| Parameter | Type | Beskrivelse |
|---|---|---|
title |
string | Hovedoverskriftstekst |
subtitle |
string | Supplerende tekst |
tags |
list | Kommaseparerede tag-labels |
theme |
string | dark | light | glass | solid | midnight | vivid | paper | glass_light | custom |
gradient_preset |
string | Navngivet gradient-preset (f.eks. indigo, ocean, sunset, cosmic) |
gradient_direction |
number | Gradientvinkel i grader (standard 135) |
bg_color |
hex | Ensartet baggrundsfarve |
pattern |
string | Baggrundsmønster (grid, dots, noise, none, …) |
pattern_color |
hex | Mønsterfarve |
pattern_intensity |
number | Mønsterets uigennemsigtighed (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 | Accentfarve til fremhævninger |
auto_text_color |
bool | Udled tekstfarve fra baggrunden (standard true) |
title_color |
hex | Tilsidesæt titelfarve |
subtitle_color |
hex | Tilsidesæt undertekstfarve |
brand_name |
string | Brand-/logotekst (standard FastOG) |
brand_logo |
string | URL til brandlogo |
layout_mode |
string | split | centered | banner (skabelonspecifikke varianter gælder) |
Skabelonindeks — 67 renderbare slugs, 48 valgbare. Tabellen nedenfor dokumenterer
de mest brugte udseender og deres skabelonspecifikke props; den udtømmende, genererede liste (label, kategori,
retired-flag og hver accepteret slug) findes i /openapi.json under
x-template-catalogue, og hver skabelons editor-felter (key, label, type, default, options og
URL-format) findes under x-template-fields. Retired slugs forbliver renderbare, så URL'er, der allerede er i
brug, fortsat virker, men de tilbydes ikke af pickerne.
template |
Skabelon | Kategori | Yderligere parametre |
|---|---|---|---|
default |
Standard | Brand | — |
blog |
Blogindlæg | Indhold | author, date, domain |
ecommerce |
E-handel | Handel | price, original_price, rating, rating_total, features, badge, cta, image, domain |
company |
Virksomhed | Brand | domain, logo, tag |
launch |
Produktlancering | Brand | kicker, version, tag, cta, domain |
saaslaunch |
SaaS-lancering | Brand | kicker, cta, domain |
devtool |
Udviklerværktøj | Udvikler | version, badge, domain |
game |
Spil | Indhold | price, rating, image, domain |
event |
Begivenhed | Social | location, host, date, domain |
quote |
Citat | Social | quote, author_name, author_title |
job |
Jobopslag | Social | location, department, salary, job_type, domain |
stats |
Statistik | Data | metric, metric_label, delta |
pricing |
Priser | Handel | price, period, cta |
podcast |
Podcast | Medier | episode_number, guest_name, guest_role, duration |
video |
Video | Medier | duration, channel, views |
editorial |
Redaktionelt | Indhold | kicker, author, date, domain |
minimal |
Minimal | Brand | domain |
changelog |
Ændringslog | Udvikler | version, tag |
corporate |
Virksomhed | Brand | kicker, tag, domain |
hero |
Hero | Brand | kicker, cta, status, domain |
imageright |
Billede til højre | Handel | kicker, price, original_price, rating, rating_total, badge, cta, image, domain |
specgrid |
Specifikationsgitter | Handel | specs (liste af `Label |
logos |
Logovæg | Brand | kicker, brand_logos, domain |
notice |
Meddelelse | Social | notice_status, notice_icon, notice_text, date, domain |
testimonial |
Udtalelse | Social | quote, author_name, author_title, company, author_avatar, rating, rating_total, quote_style |
logofocus |
Logofokus | Indhold | kicker, domain |
xheader |
X-header | Social | size, handle, followers, location, website, avatar |
bento |
Bento | Data | kicker, tiles, domain |
comparison |
Sammenligning | Handel | kicker, left_label, left_desc, left_points, right_label, right_desc, right_points, verdict |
timeline |
Tidslinje | Indhold | kicker, milestones, domain |
countdown |
Nedtælling | Brand | kicker, target_date, cta, domain |
news |
Nyheder | Indhold | headline, byline, author, date, source, image |
code |
Kode | Udvikler | code, language, terminal_title, author, domain |
testimonialpro |
Udtalelse Pro | Social | quote, author_name, author_title, company, author_avatar, rating, rating_total, cta |
product |
Produkt | Handel | badge, title, price, original_price, rating, rating_total, features, cta, image, layout_mode |
promo |
Kampagne | Brand | brand_name, benefits, title, subtitle, domain, layout_mode |
devblog |
Udviklerblog | Indhold | category, title, subtitle, tags, author, author_title, date, read_time, views, likes, comments, code, language, file_path |
codepost |
Kodeindlæg | Indhold | category, date, title, subtitle, author, read_time, code, file_path, language |
statsbar |
Statistikbjælke | Data | kicker, metric, metric_label, delta, stats, domain |
changelogpro |
Ændringslog Pro | Udvikler | version, tag, title, changes, features, domain |
quotecta |
Citat-CTA | Social | quote, author_name, author_title, company, cta, domain |
appscreenshot |
App-skærmbillede | Medier | badge, title, subtitle, app_name, rating, screenshot, domain |
realestate |
Ejendomme | Handel | title, subtitle, price, beds, baths, sqft, cta_text, status, image_url, domain |
autorental |
Biludlejning | Handel | title, subtitle, rate_badge, cta_text, fleet_tag, image_url, domain |
restaurant |
Restaurant | Handel | kicker, title, subtitle, price, cta_text, badge, image_url, domain |
hospitality |
Hotel og restauration | Medier | kicker, title, subtitle, rate, cta_text, image_url, domain |
saasspend |
SaaS-forbrug | Brand | status_pill, title, subtitle, cta_text, stat_callout, dashboard_image, domain |
brutalist |
Brutalistisk | Brand | agency_tag, title, subtitle, cta_text, footer_note, domain |
training |
Træning | Social | track, dates, title, subtitle, cta_text, location, image_url, domain |
ecosystem |
Økosystem | Udvikler | kicker, title, subtitle, apps_list, dock_label, domain |
glassproduct accepterer også cta. Skabelonerne ecommerce, product, glassproduct og imageright
viser "Shop now" som standard; sæt cta til en tom værdi for at skjule den visuelle pill.
Strukturerede parametertyper
| Type | Format | Eksempel |
|---|---|---|
list |
Kommaseparerede værdier | features=Fast,Cheap,Secure |
tiles |
Linjeseparerede label|value-par |
tiles=Requests|12.4M\nUptime|99.99% |
milestones |
Linjeseparerede date|title|description |
milestones=Q3 2026|Alpha|Invite-only |
changes |
Linjeseparerede type|text (added,fixed,improved,removed) |
changes=added|Bento templates |
Svar
- 200 OK — Returnerer PNG-billeddata
- 401 Unauthorized — Ugyldig eller manglende godkendelse
- 422 Unprocessable — Ugyldige skabelonparametre
Fejlsvar
| Fejlkode | HTTP-status | Beskrivelse |
|---|---|---|
missing_signature |
401 | Manglende key- eller s-parameter |
invalid_signature |
401 | Signaturverifikation mislykkedes |
Eksempel på anmodning
GET /api/v1/og?template=blog&title=Hello%20World&subtitle=A%20test%20post&key=sk_quick_123abc&s=a1b2c3...
Eksempel med cURL
curl "https://fastog.com/api/v1/og?template=blog&title=Hello%20World&key=sk_quick_123abc&s=<signature>"
Priser og grænser
FastOG er abonnementsbaseret: der kræves et aktivt Dynamic API-abonnement. Renderinger er ikke målt — der er ingen månedlig render-kvote og ingen fakturering for overforbrug. Abonnementet er adgangsbetingelsen, og alle niveauer renderer uden en tæller. Se Priser for de aktuelle niveauer og priser.
Cachelagrede billeder er gratis: forespørgsler, der betjenes fra Cloudflare-edge-cachen (samme skabelon + parametre,
uanset s-signaturen på en tidligere cachelagret URL), når aldrig origin, så en identisk
URL bruger ikke endnu en rendering.
Rent som standard: hver rendering er ren — intet vandmærke på noget abonnement og ingen på den gratis OG
Image Tester, Studio-forhåndsvisninger eller Studio-eksporter. En fastog_watermark render-prop understøttes
stadig for kaldere, der udtrykkeligt anmoder om et "Made with FastOG"-badge, men intet sætter det
automatisk.
Relateret
- Dokumentation — Alle FastOG-guides og -referencer
- Gratis OG-billedtester— Forhåndsvis uden en konto
- Hurtig startguide — inkluderer arkitekturflowet (signér ved rendering)
- Guide til HMAC-signatur
- HMAC-validering
- JavaScript-vejledning