API REST pública

Open Graph API

Verifique meta tags OG, Twitter Cards e metadados SEO de qualquer URL programaticamente. Grátis com limite de taxa.

Sem autenticação

Sem chave de API

10 req / hora

Limite por IP

Resposta JSON

Cache 5 min

URL base

GET  https://www.opengraph.to/api/v1/og

Endpoints

GET/api/v1/og

Extrai e analisa metadados Open Graph de qualquer URL.

Parâmetros de consulta

ParâmetroTipoObrigatórioDescrição
urlstringSimA URL a analisar (deve ser acessível publicamente)

Exemplo

$ curl "https://www.opengraph.to/api/v1/og?url=https://github.com"
POST/api/v1/og

Igual ao GET, mas aceita um corpo JSON. Útil para integrações e scripts.

Corpo da requisição

Content-Type: application/json

{
  "url": "https://github.com"
}

Exemplo

$ curl -X POST https://www.opengraph.to/api/v1/og \
  -H "Content-Type: application/json" \
  -d '{"url": "https://github.com"}'

Resposta

200Sucesso

Retorna os dados OG extraídos, análise com pontuação e meta tags sugeridas.

Campos da resposta

CampoTipoDescrição
urlstringURL normalizada que foi analisada
titlestringTítulo da página (de og:title ou <title>)
descriptionstringDescrição da página (de og:description ou meta description)
imageobject | nullImagem OG com url, width, height, alt
twitterobjectDados de Twitter Card (card, site, title, description, image)
analysisobjectPontuação (0-100), resumo e lista de problemas encontrados
suggestedTagsstringCódigo HTML de meta tags para copiar e colar

Resposta de exemplo

{
  "url": "https://github.com",
  "title": "GitHub: Let's build from here",
  "description": "GitHub is where over 100 million developers shape the future of software...",
  "siteName": "GitHub",
  "type": "website",
  "locale": "en_US",
  "image": {
    "url": "https://github.githubassets.com/assets/campaign-social.png",
    "width": 1200,
    "height": 630,
    "alt": "GitHub",
    "type": ""
  },
  "twitter": {
    "card": "summary_large_image",
    "site": "@github",
    "creator": "",
    "title": "GitHub: Let's build from here",
    "description": "GitHub is where over 100 million developers shape the future...",
    "image": "https://github.githubassets.com/assets/campaign-social.png"
  },
  "favicon": "https://github.githubassets.com/favicons/favicon.svg",
  "canonical": "https://github.com/",
  "analysis": {
    "score": 82,
    "summary": "Good setup, but there are some improvements you can make.",
    "issues": [
      {
        "severity": "info",
        "category": "image",
        "slug": "missing-og-image-alt",
        "title": "Missing og:image:alt",
        "description": "Adding alt text to your OG image improves accessibility and SEO."
      }
    ]
  },
  "suggestedTags": "<meta property=\"og:title\" content=\"GitHub\" />..."
}
429Limite excedido
{
  "error": "Rate limit exceeded",
  "message": "Maximum 10 requests per hour. Try again later.",
  "retryAfter": 2847
}
502Extração falhou
{
  "error": "HTTP 404: Not Found"
}

Limites de taxa

A API aplica um limite estrito de 10 requisições por hora por endereço IP. Isso é rastreado no servidor e não pode ser contornado com cabeçalhos.

Cada resposta inclui cabeçalhos de limite de taxa para você acompanhar o uso:

CabeçalhoDescrição
X-RateLimit-LimitMáximo de requisições permitidas na janela (10)
X-RateLimit-RemainingRequisições restantes na janela atual
X-RateLimit-ResetTimestamp Unix quando a janela reinicia
Retry-AfterSegundos a esperar (somente em respostas 429)

Exemplos de código

JS
JavaScript / TypeScript
const response = await fetch(
  'https://www.opengraph.to/api/v1/og?url=https://github.com'
);

const data = await response.json();

console.log(data.title);          // "GitHub: Let's build from here"
console.log(data.analysis.score); // 82
console.log(data.image?.url);      // "https://github.githubassets.com/..."

// Check rate limit
const remaining = response.headers.get('X-RateLimit-Remaining');
console.log(`Requests left: ${remaining}`);
PY
Python
import requests

response = requests.get(
    "https://www.opengraph.to/api/v1/og",
    params={"url": "https://github.com"}
)

data = response.json()

print(data["title"])            # "GitHub: Let's build from here"
print(data["analysis"]["score"]) # 82

# Check remaining quota
remaining = response.headers.get("X-RateLimit-Remaining")
print(f"Requests left: {remaining}")
cURL
cURL
# GET request
curl "https://www.opengraph.to/api/v1/og?url=https://github.com"

# POST request
curl -X POST https://www.opengraph.to/api/v1/og \
  -H "Content-Type: application/json" \
  -d '{"url": "https://github.com"}'

# Show response headers (rate limit info)
curl -i "https://www.opengraph.to/api/v1/og?url=https://github.com"

Casos de uso

Pipelines CI/CD

Valide as tags OG após cada deploy. Falhe o build se a pontuação cair abaixo de um limiar.

Dashboards

Construa ferramentas internas que monitorem as tags OG das suas páginas e acompanhem mudanças de pontuação.

Pré-visualizações de links

Obtenha dados OG para renderizar pré-visualizações ricas no seu app, chat ou CMS.

Auditorias SEO

Automatize verificações OG e SEO em várias páginas e gere relatórios.