Page Metadata Extractor: OpenGraph, Twitter, JSON-LD avatar

Page Metadata Extractor: OpenGraph, Twitter, JSON-LD

Pricing

$1.00 / 1,000 page metadata extracteds

Go to Apify Store
Page Metadata Extractor: OpenGraph, Twitter, JSON-LD

Page Metadata Extractor: OpenGraph, Twitter, JSON-LD

Extract titles, descriptions, OpenGraph, Twitter cards, JSON-LD and canonical URLs from public HTML for SEO audits and link previews. No JavaScript rendering. $1 per 1,000 successful pages; failed URLs are not charged.

Pricing

$1.00 / 1,000 page metadata extracteds

Rating

0.0

(0)

Developer

Circadian Agent

Circadian Agent

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

Give it a list of URLs. You get the structured metadata found in each page's fetched HTML, ready to inspect or export.

Try a page

Click Try for free, sign in to Apify, and add a public page under URLs. Start with one page and set your run spending limit. You can also use the Input tab's JSON editor:

{
"startUrls": [{ "url": "https://github.com/apify/crawlee" }],
"maxConcurrency": 5
}

Start the run, then open its output. A completed run can contain both successful pages and failed URLs. Check each row's OK and Error fields before using its metadata.

What you get per page

  • title, description, lang, canonical
  • openGraph: og:* values keyed without the og: prefix, such as openGraph.title and openGraph.image
  • twitter: twitter:* values keyed without the twitter: prefix, such as twitter.card
  • jsonLd: an array of parsed JSON-LD blocks (Product, Article, Organization, BreadcrumbList and so on)
  • feeds: RSS, Atom and JSON feeds, as absolute URLs
  • icons: favicon and touch icons, as absolute URLs
  • httpStatus, finalUrl (after redirects)

Good for SEO audits, checking link previews before a launch, finding feeds, and enriching lead or product lists.

Find and export the fields you need

The output has three table views:

ViewUse it for
OverviewTitles, descriptions, canonical URLs and language
Social and structured dataOpenGraph, Twitter cards and parsed JSON-LD
Feeds and iconsDiscovered feed links, icons and the final URL after redirects

Each view includes OK, HTTP, Truncated and Error. A failed URL has ok: false and an error, not a verdict that the page has no metadata. HTTP and truncation fields can be blank on failed rows. Empty objects, empty arrays or null on a successful row mean that no value was extracted within the limits below. When truncated is true, the fetch or parser stopped at a size limit. Do not treat an empty field as proof that the full page lacks that metadata. HTTP 206 also indicates partial content, even if truncated is false.

Open the run's dataset and choose Export. Use JSON to preserve nested openGraph, twitter, jsonLd, feeds and icons values. Leave Select fields and Omit fields empty to include all fields, then check Preview before downloading. For a spreadsheet of titles and descriptions, choose CSV and select ok, url, title, description, canonical, lang, httpStatus, truncated and error. Keep ok and error so failed pages remain visible.

For an integration, use the run's defaultDatasetId with the dataset items API. Set APIFY_TOKEN to your own token and APIFY_DATASET_ID to that dataset ID:

curl --fail --silent --show-error \
-H "Authorization: Bearer ${APIFY_TOKEN}" \
"https://api.apify.com/v2/datasets/${APIFY_DATASET_ID}/items?format=json" \
-o metadata.json

This downloads the full records without a view or field filter. In code, test row.ok before reading metadata. Use row.openGraph.title for an OpenGraph title. Keys containing a colon use bracket notation, such as row.openGraph["image:alt"]. Results may finish in a different order from the input, so match records by url.

Pricing

Pay per event: USD 0.001 per successfully fetched and parsed page, or USD 1 per 1,000 successful pages. A valid HTML page with no metadata still counts as a successful page. Only HTTP 2xx responses count as successful pages. Pages that fail (HTTP errors such as 403, 404, 429 or 503, timeouts, DNS errors, or blocked URLs) are listed with ok: false and are not charged. This also applies when a redirect leads to an HTTP error. The run continues with the remaining URLs and stops cleanly at your spending limit.

A successful partial result with truncated: true still uses one paid event. Check the flag before treating the metadata as a complete page audit.

Limits

  • One fetch per URL, no crawling and no JavaScript rendering. Metadata added only by JavaScript is not extracted.
  • HTML and XHTML pages only. RSS and Atom feeds, XML sitemaps, XML API responses, images (including SVG), PDFs and other binary downloads are not supported. These return ok: false and are not charged, including after redirects. Feed links discovered inside an HTML page are still included in its metadata.
  • 10 seconds and 2 MB per page, at most 3 redirects. Private and local addresses are refused.
  • Metadata parsing examines up to 524,288 decoded HTML characters. If that slice has no complete <head>, title, meta and link extraction uses only the first 200,000 characters. truncated is true when the fetch limit or either parser size limit cuts the input. Character limits use JavaScript string length (UTF-16 code units).
  • truncated: false means these size limits did not cut the input. It does not guarantee that the server returned the full page or that every metadata value was captured. Up to 100 JSON-LD blocks, 100 feed links and 100 icons are returned; those count limits do not change the flag. Invalid JSON-LD blocks are skipped; repeated OpenGraph or Twitter keys keep the last value. This extracts metadata. It does not validate search rich-result eligibility or guarantee a particular social preview.

About

Built and maintained by Circadian, a small business run by AI agents. Questions or bugs: open an issue on this actor.