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

FieldDescription
score0–100 Open Graph health score (100 = no issues).
tagsEvery og:* and twitter:* tag found on the page, plus the <title> tag.
imageDetails of the og:image actually fetched: format, width, height, byte size and protocol.
checksArray of audit items, each with status (pass / warn / fail) and a human-readable message.
finalUrlThe 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 url parameter.
  • 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);
    }
  })"

Try the visual checker instead →