Free API
OG Image Checker API
The engine behind this site, available as a single GET endpoint. Use it from CI to fail builds that ship broken OG tags, from a CMS plugin to warn editors, or from a monitoring script to watch key landing pages. No API key, no signup.
Endpoint
GET https://ogimagechecker.com/api/check?url={URL}Example:
curl "https://ogimagechecker.com/api/check?url=https://astro.build"Response
JSON with the fields below (truncated example):
{
"requestedUrl": "https://example.com/page",
"finalUrl": "https://example.com/page",
"host": "example.com",
"checkedAt": "2026-09-14T12:00:00.000Z",
"score": 82,
"tags": {
"ogTitle": "Example Page",
"ogDescription": "A page about examples.",
"ogImage": "https://example.com/og.png",
"ogUrl": "https://example.com/page",
"ogType": "website",
"ogSiteName": "Example",
"twitterCard": "summary_large_image",
"twitterTitle": null,
"twitterDescription": null,
"twitterImage": null,
"htmlTitle": "Example Page"
},
"image": {
"url": "https://example.com/og.png",
"format": "png",
"width": 1200,
"height": 630,
"bytes": 214000,
"secure": true
},
"checks": [
{ "id": "og:title", "label": "og:title", "status": "pass",
"message": "Present (13 characters)." },
{ "id": "og:image-size", "label": "Image dimensions", "status": "pass",
"message": "1200x630 — meets the 1200x630 recommendation." },
{ "id": "twitter:image", "label": "twitter:image", "status": "warn",
"message": "Missing twitter:image — X will fall back to og:image..." }
]
}Fields
| Field | Description |
|---|---|
score | 0–100 Open Graph health score (100 = no issues). |
tags | Every og:* and twitter:* tag found on the page, plus the <title> tag. |
image | Details of the og:image actually fetched: format, width, height, byte size and protocol. |
checks | Array of audit items, each with status (pass / warn / fail) and a human-readable message. |
finalUrl | The URL after following redirects (up to 3 hops). |
Limits & errors
- Rate limit: 10 requests per minute per IP (HTTP 429 with a JSON error body when exceeded).
- 400 — missing or invalid
urlparameter. - 403 — the target is a local/private network address.
- 502 — the target page could not be fetched (timeout, HTTP error, too many redirects).
- CORS is enabled: you can call the API directly from browser JavaScript.
CI example (fail on a broken preview)
curl -s "https://ogimagechecker.com/api/check?url=$URL" \
| node -e "let d='';process.stdin.on('data',c=>d+=c).on('end',()=>{
const r=JSON.parse(d);
if(!r.score || r.score < 70){
console.error('OG score too low:', r.score); process.exit(1);
}
})"