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 hour per IP (HTTP 429 with a JSON error body when exceeded) — enough for monitoring and CI on personal projects; get in touch if you need more.
- 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);
}
})"Or drop this into .github/workflows/og-check.yml and every push to main gets gate-checked:
name: OG image check
on:
push:
branches: [main]
jobs:
og:
runs-on: ubuntu-latest
steps:
- name: Fail if the OG score drops below 70
env:
SITE_URL: https://your-site.com
run: |
score=$(curl -s "https://ogimagechecker.com/api/check?url=$SITE_URL" | jq '.score')
echo "OG score: $score"
[ "$score" -ge 70 ]The free tier allows 10 checks per hour per IP — more than enough for CI. PointSITE_URL at your deploy preview for post-deploy verification.