Gere tags Open Graph para compartilhamento social
Este gerador de tags Open Graph transforma quatro campos essenciais de compartilhamento em um bloco HTML limpo para o cabeçalho da sua página.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Informe título, descrição, URL da imagem e tipo do objeto para receber a marcação completa e também cada tag separadamente. A ferramenta confirma que a imagem usa HTTP ou HTTPS, remove espaços nas extremidades e escapa caracteres capazes de quebrar um atributo HTML. O resultado é determinístico, pronto para modelos e sistemas de publicação, e pode ser obtido pela API por US$ 0,002 por solicitação.
Escolha conteúdo que descreva a página compartilhada
Comece pela própria página, e não pela rede social em que ela poderá aparecer. O título Open Graph deve identificar o artigo, produto, perfil ou página de destino específica, enquanto a descrição deve oferecer ao leitor um motivo concreto para abrir o link. Mantenha os dois textos precisos e independentes, pois um link compartilhado pode surgir sem o contexto do seu site. O gerador exige valores preenchidos e remove espaços nas extremidades, mas não reescreve, encurta nem inventa texto publicitário. Assim, você preserva o controle editorial e obtém resultados previsíveis em fluxos automatizados. Embora os limites aceitos acomodem práticas diferentes entre plataformas, textos concisos são mais fáceis de ler e menos sujeitos a cortes. Não deixe uma informação essencial apenas no final de uma descrição longa. Os metadados também devem corresponder ao conteúdo visível; a prévia não deve prometer algo que a página de destino não entrega.
Forneça uma imagem pública e o tipo correto
A URL da imagem precisa ser um endereço absoluto com o esquema http ou https. Caminhos relativos, arquivos locais, URLs de dados, endereços FTP e URLs malformadas são rejeitados porque rastreadores sociais precisam acessar o recurso pela web. A verificação confirma somente o formato e o protocolo: ela não baixa a imagem, mede dimensões, inspeciona o tipo de mídia nem prova que um rastreador externo consegue acessá-la. Prefira uma URL de produção estável a um endereço temporário de prévia e verifique se autenticação, regras de robôs ou proteção contra hotlink não bloqueiam os serviços que montam os cartões. O campo type se torna o valor de og:type. Opções comuns incluem website para uma página geral e article para conteúdo editorial. O gerador aceita qualquer tipo não vazio para permitir valores com namespace e extensões compatíveis.
Instale as tags e confira o resultado publicado
A resposta inclui um campo html com quatro elementos meta separados por quebras de linha e um array tags com os mesmos elementos individualmente. Insira-os no cabeçalho do documento pelo sistema de metadados de rota, pelo modelo do servidor ou pela etapa de build estático responsável pela página. A ordem é fixa: título, descrição, imagem e tipo. E comercial, sinais de menor e maior, aspas e apóstrofos são escapados para que os valores não quebrem a marcação. Não escape novamente o bloco retornado ao colocá-lo em um modelo HTML. Depois da publicação, examine o código-fonte entregue e confirme que existe apenas um valor principal para cada propriedade; temas, plugins e padrões de frameworks às vezes produzem tags concorrentes. Por fim, use os depuradores de compartilhamento das plataformas relevantes. Uma marcação válida fornece dados claros, mas cada plataforma ainda controla corte, truncamento, cache e apresentação.
Casos de uso
Publique um artigo
Transforme título, resumo, imagem principal e tipo aprovados em um bloco de metadados sociais pronto para inserir.
Crie páginas de produto
Gere marcação Open Graph consistente a partir de registros estruturados durante um build estático ou no servidor.
Padronize a saída do CMS
Ofereça aos editores um formatador determinístico que valide protocolos de imagem e escape todos os valores.
Perguntas frequentes
Quais tags são geradas?
O resultado contém os elementos meta og:title, og:description, og:image e og:type.
Por que a URL da minha imagem foi rejeitada?
A imagem deve ser uma URL absoluta válida com esquema http ou https; caminhos relativos e outros esquemas são rejeitados.
O gerador verifica se a imagem existe?
Não. Ele não faz requisições de rede; valida o formato e o protocolo, mas não disponibilidade, dimensões ou acesso do rastreador.
Posso usar um tipo Open Graph diferente de website ou article?
Sim. Qualquer tipo não vazio dentro do limite declarado é aceito, inclusive valores de extensões Open Graph compatíveis.
Quanto custa a API?
A API custa US$ 0,002 por solicitação. A versão para navegador está disponível gratuitamente nesta página.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/web/open-graph-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"A Practical Guide to Urban Gardening","description":"Learn how to grow herbs and vegetables in a small city space.","image_url":"https://example.com/images/urban-garden.jpg","type":"article"}'const res = await fetch("https://api.kit.forhosting.com/web/open-graph-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"title": "A Practical Guide to Urban Gardening",
"description": "Learn how to grow herbs and vegetables in a small city space.",
"image_url": "https://example.com/images/urban-garden.jpg",
"type": "article"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/open-graph-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"title": "A Practical Guide to Urban Gardening",
"description": "Learn how to grow herbs and vegetables in a small city space.",
"image_url": "https://example.com/images/urban-garden.jpg",
"type": "article"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/open-graph-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"title":"A Practical Guide to Urban Gardening","description":"Learn how to grow herbs and vegetables in a small city space.","image_url":"https://example.com/images/urban-garden.jpg","type":"article"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"title":"A Practical Guide to Urban Gardening","description":"Learn how to grow herbs and vegetables in a small city space.","image_url":"https://example.com/images/urban-garden.jpg","type":"article"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/open-graph-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"title": "A Practical Guide to Urban Gardening",
"description": "Learn how to grow herbs and vegetables in a small city space.",
"image_url": "https://example.com/images/urban-garden.jpg",
"type": "article"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.open_graph_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |