Referência da API de imagens OG
A referência da API de imagens OG abrange o endpoint, os parâmetros e o catálogo de templates para gerar imagens dinâmicas do Open Graph com o FastOG. A API é restrita a assinatura — é necessário um plano Dynamic API ativo, mas as renderizações em si não são medidas: não há cota mensal de renderizações nem cobrança por excedente. URLs assinadas com HMAC mantêm cada requisição segura. Cadastre-se, escolha um plano Dynamic API e então crie sua chave de API e seu segredo HMAC no dashboard; as renderizações pagas da API são limpas. O contrato OpenAPI gerado é a lista autoritativa legível por máquina de parâmetros, códigos de erro e slugs de templates.
URL base
https://fastog.com/api/v1/og
Autenticação
Todas as requisições exigem autenticação por assinatura HMAC-SHA256. A key pública e a assinatura s são parâmetros de query; a autenticação baseada em header não é suportada no momento. Consulte a Documentação de HMAC para mais detalhes.
Endpoint
GET /api/v1/og
Gera uma imagem Open Graph dinâmica com base nos parâmetros fornecidos.
Parâmetros de consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
template |
string | Não | Nome do template (padrão: default) |
title |
string | Sim | Título principal. Obrigatório — uma capa sem título não é uma prévia útil. |
subtitle |
string | Não | Texto de subtítulo ou descrição |
key |
string | Sim | Chave de API completa |
s |
string | Sim | Assinatura HMAC-SHA256 (64 caracteres hex) |
Parâmetros específicos de template
Cada template aceita os parâmetros compartilhados abaixo mais seus parâmetros específicos de template (consulte a tabela de índice). O parâmetro de consulta template seleciona qual layout é usado (padrão: default).
Parâmetros compartilhados (todos os templates)
| Parâmetro | Tipo | Descrição |
|---|---|---|
title |
string | Texto do título principal |
subtitle |
string | Texto de apoio |
tags |
list | Rótulos de tags separados por vírgula |
theme |
string | dark | light | glass | solid | midnight | vivid | paper | glass_light | custom |
gradient_preset |
string | Preset de gradiente nomeado (ex.: indigo, ocean, sunset, cosmic) |
gradient_direction |
number | Ângulo do gradiente em graus (padrão 135) |
bg_color |
hex | Cor de fundo sólida |
pattern |
string | Padrão de fundo (grid, dots, noise, none, …) |
pattern_color |
hex | Cor do padrão |
pattern_intensity |
number | Opacidade do padrão (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 | Cor de destaque para realces |
auto_text_color |
bool | Deriva a cor do texto a partir do fundo (padrão true) |
title_color |
hex | Sobrescreve a cor do título |
subtitle_color |
hex | Sobrescreve a cor do subtítulo |
brand_name |
string | Texto da marca/logo (padrão FastOG) |
brand_logo |
string | URL da imagem do logo da marca |
layout_mode |
string | split | centered | banner (variantes específicas de template se aplicam) |
Índice de templates — 67 slugs renderizáveis, 48 selecionáveis. A tabela abaixo documenta os
visuais mais usados e suas props específicas de template; a lista exaustiva e gerada (label, categoria,
flag de descontinuado e todos os slugs aceitos) está em /openapi.json em
x-template-catalogue, e os campos de editor de cada template (key, label, type, default, options e
formato de URL) estão em x-template-fields. Slugs descontinuados continuam renderizáveis para que URLs já em
uso continuem funcionando, mas eles não são oferecidos pelos seletores.
template |
Template | Categoria | Parâmetros adicionais |
|---|---|---|---|
default |
Default | Marca | — |
blog |
Blog Post | Conteúdo | author, date, domain |
ecommerce |
E-commerce | Comércio | price, original_price, rating, rating_total, features, badge, cta, image, domain |
company |
Company | Marca | domain, logo, tag |
launch |
Product Launch | Marca | kicker, version, tag, cta, domain |
saaslaunch |
SaaS Launch | Marca | kicker, cta, domain |
devtool |
Developer Tool | Desenvolvedor | version, badge, domain |
game |
Game | Conteúdo | 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 | Dados | metric, metric_label, delta |
pricing |
Pricing | Comércio | price, period, cta |
podcast |
Podcast | Mídia | episode_number, guest_name, guest_role, duration |
video |
Video | Mídia | duration, channel, views |
editorial |
Editorial | Conteúdo | kicker, author, date, domain |
minimal |
Minimal | Marca | domain |
changelog |
Changelog | Desenvolvedor | version, tag |
corporate |
Corporate | Marca | kicker, tag, domain |
hero |
Hero | Marca | kicker, cta, status, domain |
imageright |
Image Right | Comércio | kicker, price, original_price, rating, rating_total, badge, cta, image, domain |
specgrid |
Spec Grid | Comércio | specs (lista de `Label |
logos |
Logo Wall | Marca | 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 | Conteúdo | kicker, domain |
xheader |
X Header | Social | size, handle, followers, location, website, avatar |
bento |
Bento | Dados | kicker, tiles, domain |
comparison |
Comparison | Comércio | kicker, left_label, left_desc, left_points, right_label, right_desc, right_points, verdict |
timeline |
Timeline | Conteúdo | kicker, milestones, domain |
countdown |
Countdown | Marca | kicker, target_date, cta, domain |
news |
News | Conteúdo | headline, byline, author, date, source, image |
code |
Code | Desenvolvedor | code, language, terminal_title, author, domain |
testimonialpro |
Testimonial Pro | Social | quote, author_name, author_title, company, author_avatar, rating, rating_total, cta |
product |
Product | Comércio | badge, title, price, original_price, rating, rating_total, features, cta, image, layout_mode |
promo |
Promo | Marca | brand_name, benefits, title, subtitle, domain, layout_mode |
devblog |
Dev Blog | Conteúdo | category, title, subtitle, tags, author, author_title, date, read_time, views, likes, comments, code, language, file_path |
codepost |
Code Post | Conteúdo | category, date, title, subtitle, author, read_time, code, file_path, language |
statsbar |
Stats Bar | Dados | kicker, metric, metric_label, delta, stats, domain |
changelogpro |
Changelog Pro | Desenvolvedor | version, tag, title, changes, features, domain |
quotecta |
Quote CTA | Social | quote, author_name, author_title, company, cta, domain |
appscreenshot |
App Screenshot | Mídia | badge, title, subtitle, app_name, rating, screenshot, domain |
realestate |
Real Estate | Comércio | title, subtitle, price, beds, baths, sqft, cta_text, status, image_url, domain |
autorental |
Auto Rental | Comércio | title, subtitle, rate_badge, cta_text, fleet_tag, image_url, domain |
restaurant |
Restaurant | Comércio | kicker, title, subtitle, price, cta_text, badge, image_url, domain |
hospitality |
Hospitality | Mídia | kicker, title, subtitle, rate, cta_text, image_url, domain |
saasspend |
SaaS Spend | Marca | status_pill, title, subtitle, cta_text, stat_callout, dashboard_image, domain |
brutalist |
Brutalist | Marca | agency_tag, title, subtitle, cta_text, footer_note, domain |
training |
Training | Social | track, dates, title, subtitle, cta_text, location, image_url, domain |
ecosystem |
Ecosystem | Desenvolvedor | kicker, title, subtitle, apps_list, dock_label, domain |
glassproduct também aceita cta. Os templates ecommerce, product, glassproduct e imageright
exibem "Shop now" por padrão; defina cta com um valor vazio para ocultar a pílula visual.
Tipos de parâmetros estruturados
| Tipo | Formato | Exemplo |
|---|---|---|
list |
Valores separados por vírgula | features=Fast,Cheap,Secure |
tiles |
Pares label|value separados por linha |
tiles=Requests|12.4M\nUptime|99.99% |
milestones |
date|title|description separados por linha |
milestones=Q3 2026|Alpha|Invite-only |
changes |
type|text separados por linha (added,fixed,improved,removed) |
changes=added|Bento templates |
Resposta
- 200 OK — Retorna dados de imagem PNG
- 401 Unauthorized — Autenticação inválida ou ausente
- 422 Unprocessable — Parâmetros de template inválidos
Respostas de erro
| Código de erro | Status HTTP | Descrição |
|---|---|---|
missing_signature |
401 | Parâmetro key ou s ausente |
invalid_signature |
401 | Falha na verificação da assinatura |
Exemplo de requisição
GET /api/v1/og?template=blog&title=Hello%20World&subtitle=A%20test%20post&key=sk_quick_123abc&s=a1b2c3...
Exemplo de cURL
curl "https://fastog.com/api/v1/og?template=blog&title=Hello%20World&key=sk_quick_123abc&s=<signature>"
Preços e limites
O FastOG é condicionado à assinatura: é necessário um plano Dynamic API ativo. As renderizações não são medidas — não há cota mensal de renderizações nem cobrança por excedente. O plano é o requisito, e todos os níveis renderizam sem contador. Consulte Preços para os níveis e preços atuais.
Imagens em cache são gratuitas: as requisições atendidas pelo cache de borda da Cloudflare (mesmo template + parâmetros,
independentemente da assinatura s em uma URL previamente armazenada em cache) nunca chegam à origem, então uma URL idêntica
não consome outra renderização.
Limpo por padrão: toda renderização é limpa — sem marca d'água em nenhum plano, e nenhuma no
OG Image Tester gratuito, nas prévias do Studio ou nas exportações do Studio. Uma prop de renderização fastog_watermark ainda é
suportada para chamadores que solicitam explicitamente um selo "Made with FastOG", mas nada a define
automaticamente.
Relacionados
- Documentação — Todos os guias e referências do FastOG
- Testador de imagem OG gratuito — Visualize sem uma conta
- Guia de início rápido — inclui o fluxo de arquitetura (assinatura no momento da renderização)
- Guia de assinatura HMAC
- Validação HMAC
- Tutorial de JavaScript