API REST pública

Open Graph API

Verifica meta tags OG, Twitter Cards y metadatos SEO de cualquier URL programáticamente. Gratis con límite de tasa.

Sin autenticación

Sin clave API

10 req / hora

Límite por IP

Respuesta JSON

Caché 5 min

URL base

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

Endpoints

GET /api/v1/og

Extrae y analiza metadatos Open Graph de cualquier URL.

Parámetros de consulta

Parámetro Tipo Requerido Descripción
url string La URL a analizar (debe ser accesible públicamente)

Ejemplo

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

Igual que GET pero acepta un cuerpo JSON. Útil para integraciones y scripts.

Cuerpo de la petición

Content-Type: application/json

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

Ejemplo

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

Respuesta

200 Éxito

Devuelve los datos OG extraídos, análisis con puntuación y meta tags sugeridos.

Campos de respuesta

Campo Tipo Descripción
url string URL normalizada que fue analizada
title string Título de la página (de og:title o <title>)
description string Descripción de la página (de og:description o meta description)
image object | null Imagen OG con url, width, height, alt
twitter object Datos de Twitter Card (card, site, title, description, image)
analysis object Puntuación (0-100), resumen y lista de problemas encontrados
suggestedTags string Código HTML de meta tags para copiar y pegar

Respuesta de ejemplo

{
  "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\" />..."
}
429 Límite excedido
{
  "error": "Rate limit exceeded",
  "message": "Maximum 10 requests per hour. Try again later.",
  "retryAfter": 2847
}
502 Extracción fallida
{
  "error": "HTTP 404: Not Found"
}

Límites de tasa

La API aplica un límite estricto de 10 peticiones por hora por dirección IP. Esto se rastrea del lado del servidor y no puede ser eludido con cabeceras.

Cada respuesta incluye cabeceras de límite de tasa para que puedas rastrear tu uso:

Cabecera Descripción
X-RateLimit-Limit Máximo de peticiones permitidas en la ventana (10)
X-RateLimit-Remaining Peticiones restantes en la ventana actual
X-RateLimit-Reset Timestamp Unix cuando la ventana se reinicia
Retry-After Segundos a esperar (solo en respuestas 429)

Ejemplos 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

Valida los tags OG después de cada despliegue. Falla el build si la puntuación baja de un umbral.

Dashboards

Construye herramientas internas que monitoreen los tags OG de tus páginas y rastreen cambios de puntuación.

Previsualizaciones de enlaces

Obtén datos OG para renderizar previsualizaciones enriquecidas en tu app, chat o CMS.

Auditorías SEO

Automatiza verificaciones OG y SEO en múltiples páginas y genera informes.