Open Graph Image Validator avatar

Open Graph Image Validator

Pricing

Pay per usage

Go to Apify Store
Open Graph Image Validator

Open Graph Image Validator

Validate Open Graph and Twitter Card social preview images on one public page. Verify og:image and twitter:image URLs load with a valid image content type and reasonable size.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Sanskar Jaiswal

Sanskar Jaiswal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

Open Graph Image Validator fetches one public web page, extracts Open Graph and Twitter Card social preview image URLs, and verifies each image loads with a valid image content type and reasonable size. It returns structured JSON for social media launch QA, marketing automation, and scheduled preview monitoring.

Use cases

  • Validate social share previews before a product launch or campaign.
  • Add focused og:image and twitter:image checks to site migration and CMS template QA.
  • Monitor high-value landing pages for broken or replaced social preview images.
  • Feed social preview validation results into QA dashboards and issue triage.

Input

FieldTypeRequiredDescription
startUrlstringYesPublic HTTP or HTTPS page URL to audit. Credentials and private network targets are rejected.
timeoutSecondsintegerNoRequest timeout for page and image fetches. Default: 10, range: 3 to 30.
maxImagesintegerNoMaximum unique image URLs to verify. Default: 10, range: 1 to 20.
maxHtmlBytesintegerNoMaximum page bytes to read before parsing. Default: 1048576, range: 100000 to 2097152.

Output

The actor pushes one dataset item per run.

FieldTypeDescription
inputUrlstringOriginal submitted URL.
normalizedInputUrlstringURL after adding a default scheme if needed.
finalUrlstringFinal page URL after safe redirects.
okbooleanTrue when at least one image was found, all images loaded with a valid image content type and reasonable size, and no broken images were detected.
checkedAtstringISO timestamp for the audit.
scoreintegerReadiness score from 0 to 100.
gradestringLetter grade from A to F.
imageCountintegerNumber of unique social preview images checked.
validImageCountintegerNumber of checked images that loaded with a valid image response.
brokenImageCountintegerNumber of checked images that failed validation.
imagesarrayPer-image check results: source meta property, URL, ok flag, HTTP status, content type, content length, redirect flag, issues, and error.
declaredWidthstring or nullValue of og:image:width if declared.
declaredHeightstring or nullValue of og:image:height if declared.
declaredAltstring or nullValue of og:image:alt or twitter:image:alt if declared.
issuesarrayHuman-readable findings.
recommendationsarrayActionable fixes.
errorstring or nullFetch or validation error when present.

Example input

{
"startUrl": "https://example.com/blog/launch",
"timeoutSeconds": 10,
"maxImages": 10
}

Example output

{
"inputUrl": "https://example.com/blog/launch",
"normalizedInputUrl": "https://example.com/blog/launch",
"finalUrl": "https://example.com/blog/launch",
"ok": true,
"checkedAt": "2026-08-02T00:00:00.000Z",
"score": 95,
"grade": "A",
"imageCount": 2,
"validImageCount": 2,
"brokenImageCount": 0,
"images": [
{
"source": "og:image",
"url": "https://example.com/img/og.png",
"ok": true,
"status": 200,
"contentType": "image/png",
"contentLength": 204800,
"redirected": false
},
{
"source": "twitter:image",
"url": "https://example.com/img/twitter.png",
"ok": true,
"status": 200,
"contentType": "image/png",
"contentLength": 102400,
"redirected": false
}
],
"declaredWidth": "1200",
"declaredHeight": "630",
"declaredAlt": "Product launch preview",
"issues": [],
"recommendations": [],
"error": null
}

Security

  • Fetches only public HTTP and HTTPS URLs.
  • Rejects URL credentials.
  • Blocks localhost, private IPv4 ranges, link-local IPv4, loopback, private IPv6, and link-local IPv6 targets.
  • Resolves hostnames before fetching and blocks DNS results that point to private networks.
  • Revalidates redirects before following them.
  • Reads a bounded response body to avoid oversized page or image runs.

Pricing

Suggested pay-per-event pricing:

EventSuggested price
Actor start$0.005
Page audited$0.01

Typical one-page run cost: about $0.015 before Apify platform charges. Apify keeps its standard commission and the actor owner receives the remainder.

FAQ

Does this render the page with a browser?

No. It fetches static HTML and parses meta tags. It does not execute JavaScript or render client-side content.

Which image meta tags are checked?

og:image, og:image:url, og:image:secure_url, twitter:image, and twitter:image:src. Duplicate URLs are deduplicated.

What makes an image valid?

The image URL must return HTTP 200 with a recognized image content type (png, jpeg, gif, webp, avif, svg, bmp, or ico) and a content length between 200 bytes and 8 MB. If the Content-Type header is missing or unclear, the actor sniffs the first response bytes for image magic bytes.

Can it crawl a whole site?

No. It audits one submitted page. Schedule multiple runs or pass pages through your own queue when site-wide coverage is needed.