Open Graph & Link Preview Extractor avatar

Open Graph & Link Preview Extractor

Pricing

$1.00 / 1,000 results

Go to Apify Store
Open Graph & Link Preview Extractor

Open Graph & Link Preview Extractor

Extract the link-preview metadata a page publishes for itself - what Slack, Twitter/X and LinkedIn read when you paste a URL. Returns title, description, Open Graph & Twitter-card tags, favicon, JSON-LD, images. Pure code, no proxy/AI. Reads PUBLIC meta only; does NOT scrape private social accounts.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Moussa

Ahmed Moussa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

23 days ago

Last modified

Categories

Share

Turn any public URL into the link-preview / social-share card it publishes for itself — the exact metadata Slack, Twitter/X, LinkedIn, Discord and iMessage read when you paste a link. Deterministic, cost-safe, no AI.

Honest scope: this actor reads the public Open Graph / Twitter-card / meta tags a page voluntarily publishes in its own HTML <head>. It does NOT scrape private social accounts, followers, posts, engagement or feeds. Real social-account scraping is ToS-blocked and needs paid proxies/headless browsers — that is not cost-safe and is not what this does.

What it does

Given a public URL (or a small bounded batch), it fetches the page once and deterministically extracts:

  • title, description, canonical_url, site_name, lang, theme_color, favicon
  • og — Open Graph block: {title, description, image, type, url}
  • twitter — Twitter Card block: {card, title, description, image, creator, site}
  • json_ld[] — schema.org JSON-LD objects the page publishes
  • images[] — representative image URLs (og/twitter image first, then page <img> sources), absolutized & deduped
  • method (which layer produced the data) and a code-owned parse_confidence

No proxy, no headless browser, no LLM, no paid API. $0 idle, $0 uncovered beyond Apify compute.

Input

FieldTypeDescription
urlstringA single public URL to build a preview for (include https://).
urlsarrayOptional bounded list of additional URLs (capped at 50/run).
{
"url": "https://github.com/apify/apify-sdk-python",
"urls": [
"https://www.theverge.com/",
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
]
}

Output

One record per URL in the dataset:

{
"url": "https://github.com/apify/apify-sdk-python",
"status": "completed",
"title": "GitHub - apify/apify-sdk-python: The Apify SDK for Python ...",
"description": "The Apify SDK for Python is the official library for creating Apify Actors ...",
"canonical_url": "https://github.com/apify/apify-sdk-python",
"site_name": "GitHub",
"og": {
"title": "GitHub - apify/apify-sdk-python: The Apify SDK for Python ...",
"description": "The Apify SDK for Python ...",
"image": "https://opengraph.githubassets.com/.../apify/apify-sdk-python",
"type": "object",
"url": "https://github.com/apify/apify-sdk-python"
},
"twitter": {
"card": "summary_large_image",
"title": "GitHub - apify/apify-sdk-python ...",
"description": "The Apify SDK for Python ...",
"image": "https://opengraph.githubassets.com/.../apify/apify-sdk-python",
"creator": null,
"site": "@github"
},
"favicon": "https://github.com/favicon.ico",
"json_ld": [ { "@type": "WebSite", "...": "..." } ],
"theme_color": "#1e2327",
"lang": "en",
"images": [ "https://opengraph.githubassets.com/.../apify/apify-sdk-python" ],
"parse_confidence": "high",
"method": "opengraph",
"extracted_at": "2026-06-24T10:00:00+00:00",
"error": null
}

Use cases

  • Link previews — render unfurled share cards for any URL in your own app/chat/CMS.
  • SEO & social audit — check that pages publish valid og:title/og:image/twitter:card before they go live.
  • Card validation — catch missing or oversized preview images and broken canonical/site-name tags in bulk.

How it works

  1. SSRF-guarded fetch — the target host is resolved and rejected if it points at a private/loopback/reserved IP; a domain blocklist refuses login-walled/ToS-hostile hosts; redirects are re-validated per hop. A single streamed GET with hard size (2 MB) and time caps fetches the page.
  2. Deterministic parse — pure-code extraction of <meta> (Open Graph + Twitter + standard), <title>, <link rel=canonical/icon>, <html lang>, JSON-LD and <img> sources. First occurrence wins (matches how preview platforms read tags). Image URLs are absolutized against the final URL.
  3. Honest confidenceparse_confidence is computed in code from how many Open Graph / Twitter signals were actually present (high/medium/low/none); method reports the richest layer used.

Limitations (honest)

  • Reads only what the page publishes server-side in its HTML. Pages that render Open Graph tags client-side via JavaScript (no SSR) will return little — there is no headless browser by design (cost-safety).
  • No private social data. Followers, posts, engagement, DMs, private profiles, paginated feeds: out of scope and not possible without paid proxies/ToS violations.
  • Login-walled / ToS-restricted hosts (e.g. linkedin.com, facebook.com, instagram.com) are intentionally blocked and return status: "blocked".
  • One page per record — the actor never follows links or paginates.
  • parse_confidence/method are heuristics over which tags were found, not a guarantee of correctness of the publisher's own values.