Riferimento API per le immagini OG
Il riferimento API per le immagini OG copre l'endpoint, i parametri e il catalogo dei template per generare immagini Open Graph dinamiche con FastOG. L'API è soggetta a sottoscrizione — è richiesto un piano Dynamic API attivo, ma i render stessi non sono conteggiati: non esiste una quota mensile di render né una fatturazione per eccedenza. Gli URL firmati con HMAC mantengono sicura ogni richiesta. Registrati, scegli un piano Dynamic API, poi crea la tua chiave API e il tuo segreto HMAC nella dashboard; i render API a pagamento sono puliti. Il contratto OpenAPI generato è l'elenco autorevole leggibile dalla macchina di parametri, codici di errore e slug dei template.
URL di base
https://fastog.com/api/v1/og
Autenticazione
Tutte le richieste richiedono l'autenticazione tramite firma HMAC-SHA256. La key pubblica e la firma s sono parametri di query; l'autenticazione basata su header non è attualmente supportata. Consulta la Documentazione HMAC per i dettagli.
Endpoint
GET /api/v1/og
Genera un'immagine Open Graph dinamica in base ai parametri forniti.
Query Parameters
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
template |
string | No | Nome del template (predefinito: default) |
title |
string | Sì | Titolo principale. Obbligatorio — una copertina senza titolo non è un'anteprima utile. |
subtitle |
string | No | Sottotitolo o testo descrittivo |
key |
string | Sì | API key completa |
s |
string | Sì | Firma HMAC-SHA256 (64 caratteri esadecimali) |
Parametri specifici del template
Ogni template accetta i parametri condivisi riportati di seguito più i propri parametri specifici (vedi la tabella dell'indice). Il parametro di query template seleziona il layout utilizzato (predefinito: default).
Parametri condivisi (tutti i template)
| Parametro | Tipo | Descrizione |
|---|---|---|
title |
string | Testo del titolo principale |
subtitle |
string | Testo di supporto |
tags |
list | Etichette dei tag separate da virgola |
theme |
string | dark | light | glass | solid | midnight | vivid | paper | glass_light | custom |
gradient_preset |
string | Preset di gradiente con nome (es. indigo, ocean, sunset, cosmic) |
gradient_direction |
number | Angolo del gradiente in gradi (predefinito 135) |
bg_color |
hex | Colore di sfondo a tinta unita |
pattern |
string | Pattern di sfondo (grid, dots, noise, none, …) |
pattern_color |
hex | Colore del pattern |
pattern_intensity |
number | Opacità del pattern (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 | Colore d'accento per le evidenziazioni |
auto_text_color |
bool | Deriva il colore del testo dallo sfondo (predefinito true) |
title_color |
hex | Sovrascrive il colore del titolo |
subtitle_color |
hex | Sovrascrive il colore del sottotitolo |
brand_name |
string | Testo del brand/logo (predefinito FastOG) |
brand_logo |
string | URL dell'immagine del logo del brand |
layout_mode |
string | split | centered | banner (si applicano le varianti specifiche del template) |
Indice dei template — 67 slug renderizzabili, 48 selezionabili. La tabella seguente documenta gli stili più usati e le prop relative a ciascun template; l'elenco esaustivo e generato (etichetta, categoria, flag di ritiro e ogni slug accettato) si trova in /openapi.json sotto x-template-catalogue, e i campi dell'editor di ogni template (chiave, etichetta, tipo, valore predefinito, opzioni e formato URL) sono sotto x-template-fields. Gli slug ritirati restano renderizzabili, così gli URL già in circolazione continuano a funzionare, ma non vengono offerti dai selettori.
template |
Template | Categoria | Parametri aggiuntivi |
|---|---|---|---|
default |
Default | Brand | — |
blog |
Blog Post | Contenuto | 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 | Contenuto | 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 | Dati | 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 | Contenuto | 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 (elenco di `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 | Contenuto | kicker, domain |
xheader |
X Header | Social | size, handle, followers, location, website, avatar |
bento |
Bento | Dati | kicker, tiles, domain |
comparison |
Comparison | Commerce | kicker, left_label, left_desc, left_points, right_label, right_desc, right_points, verdict |
timeline |
Timeline | Contenuto | kicker, milestones, domain |
countdown |
Countdown | Brand | kicker, target_date, cta, domain |
news |
News | Contenuto | 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 | Contenuto | category, title, subtitle, tags, author, author_title, date, read_time, views, likes, comments, code, language, file_path |
codepost |
Code Post | Contenuto | category, date, title, subtitle, author, read_time, code, file_path, language |
statsbar |
Stats Bar | Dati | 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 accetta anche cta. I template ecommerce, product, glassproduct e imageright
mostrano “Shop now” per impostazione predefinita; imposta cta su un valore vuoto per nascondere la pillola visiva.
Tipi di parametro strutturati
| Tipo | Formato | Esempio |
|---|---|---|
list |
Valori separati da virgola | features=Fast,Cheap,Secure |
tiles |
Coppie label|value separate da riga |
tiles=Requests|12.4M\nUptime|99.99% |
milestones |
date|title|description separati da riga |
milestones=Q3 2026|Alpha|Invite-only |
changes |
type|text separati da riga (added,fixed,improved,removed) |
changes=added|Bento templates |
Risposta
- 200 OK — Restituisce i dati dell'immagine PNG
- 401 Unauthorized — Autenticazione non valida o mancante
- 422 Unprocessable — Parametri del template non validi
Risposte di errore
| Codice di errore | Stato HTTP | Descrizione |
|---|---|---|
missing_signature |
401 | Parametro key o s mancante |
invalid_signature |
401 | Verifica della firma non riuscita |
Richiesta di esempio
GET /api/v1/og?template=blog&title=Hello%20World&subtitle=A%20test%20post&key=sk_quick_123abc&s=a1b2c3...
Esempio cURL
curl "https://fastog.com/api/v1/og?template=blog&title=Hello%20World&key=sk_quick_123abc&s=<signature>"
Prezzi e limiti
FastOG è subordinato all'abbonamento: è richiesto un piano Dynamic API attivo. I render non sono a consumo — non esiste una quota mensile di render né una fatturazione per eccedenza. Il piano è il requisito di accesso, e ogni livello esegue i render senza un contatore. Consulta Prezzi per i livelli e i prezzi attuali.
Le immagini in cache sono gratuite: le richieste servite dalla cache edge di Cloudflare (stesso template + parametri,
indipendentemente dalla firma s su un URL precedentemente messo in cache) non raggiungono mai l'origine, quindi un URL identico
non consuma un altro render.
Pulito per impostazione predefinita: ogni render è pulito — nessuna filigrana su alcun piano, e nessuna sul tester OG
Image gratuito, sulle anteprime di Studio o sulle esportazioni di Studio. Una render prop fastog_watermark è comunque
supportata per i chiamanti che richiedono esplicitamente un badge "Made with FastOG", ma nulla la imposta
automaticamente.
Correlati
- Documentazione — Tutte le guide e i riferimenti di FastOG
- Tester gratuito per immagini OG — Anteprima senza un account
- Guida rapida — include il flusso dell'architettura (firma al momento del render)
- Guida alla firma HMAC
- Validazione HMAC
- Tutorial JavaScript