Website Metadata & Open Graph Scraper icon

Search & SEO · Live on Apify

Website Metadata and Open Graph Scraper

Get the title, description, canonical and social tags of up to 100 pages. Use it for SEO checks or link previews.

About $1.80 for 1,000 pages$0.0018 per page + $0.001 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

urlhttps://example.com/
finalUrlhttps://example.com/
titleExample Domain

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: https://example.com/ in URLs. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Extract metadata from public HTTP and HTTPS pages. Get the page title, meta description, canonical URL, robots meta tag, Open Graph fields, Twitter Card fields, and named meta tags.

Who uses it

SEO auditors

Find missing titles, descriptions and canonical tags on a page list.

App developers

Build link previews from Open Graph and Twitter Card data.

Social media managers

Check how shared links will look before you post them.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Metadata result$0.0018One complete or partial metadata result returned for an input URL.
Start fee$0.001Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.

Examples

  • One page: about $0.0028.
  • 1,000 pages: about $1.80.
  • Every day 100 pages, for 30 days: about $5.43 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 2,700 pages.

Prices checked on 24 October 2026. See the current price on Apify.

Questions

Does it crawl my whole site?

No. It reads only the URLs you give. It follows redirects, but it finds no new pages.

Does it run JavaScript?

No. It reads the HTML that the server sends back.

What if a page has the same tag twice?

Both values are kept as a list, in the page order.

Do I pay for pages that fail?

No. Not found and error rows are not charged. The start fee still applies.

Does it crawl the website?

No. It only fetches the URLs in urls and follows bounded HTTP redirects.

Are duplicate meta tags preserved?

Yes. When the same key appears more than once, openGraph, twitter, and metaTags keep the values as an array in source order.

Why can metadata be null?

The source page may not publish that tag, or a technical/safety limit may stop full parsing. Check resultStatus, errorType, and RUN_SUMMARY before using nullable fields.

Is every URL guaranteed to work?

No. The destination must be public and reachable with direct HTTP. Sites can block requests, change markup, redirect, or require browser execution.

Details

Step by step on Apify
  1. Open the Input tab.
  2. Add one public URL to urls, for example https://example.com/.
  3. Keep the default request settings for a normal run.
  4. Set maxTotalChargeUsd high enough for the possible event charges, then click Start.
  5. Open Dataset and check resultStatus, title, and the metadata fields.
Use cases
TaskInputYou getKey fields
Audit page metadataURL listOne row per input itemtitle, description, canonical, robots
Build link-preview dataURL listServer-returned social metadataopenGraph, twitter, finalUrl
Preserve duplicate meta valuesURL listLossless repeated valuesopenGraph, twitter, metaTags
Tips for better results
  • Check the result status before you trust an empty field.
  • Use the final URL to see where a link redirects.
  • Pages that need JavaScript may show fewer tags.
Limits and good to know
  • Public HTTP(S) pages only. Local, private, link-local, and reserved network addresses are blocked
  • No recursive crawling, sitemap discovery, browser rendering, or JavaScript execution
  • HTML is read as UTF-8. Pages in other encodings may contain incorrect characters
  • HTML is capped at 2 MiB per page. A larger HTML page can return partial with metadata found before the cap
  • Up to 5 redirects. Every redirect target is checked again before connecting
  • JSON-LD, favicon discovery, robots.txt files, and SEO scores are outside this version. robots means the HTML robots meta tag
  • Sites can block direct HTTP requests or return different metadata to browsers. The Actor reports that outcome instead of inventing values

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "url": "https://example.com/",
  "finalUrl": "https://example.com/",
  "ok": true,
  "status": 200,
  "title": "Example Domain",
  "description": null,
  "canonical": null,
  "robots": null,
  "openGraph": {},
  "twitter": {},
  "metaTags": {
    "viewport": "width=device-width,initial-scale=1"
  },
  "resultStatus": "complete",
  "errorType": null,
  "errorMessage": null
}

Use it from code

Actor ID: cliqtomedia/website-metadata-open-graph-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/website-metadata-open-graph-scraper").call(run_input={
    "urls": [
        "https://example.com/",
        "https://apify.com/"
    ],
    "maxConcurrency": 10
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~website-metadata-open-graph-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://example.com/", "https://apify.com/"], "maxConcurrency": 10}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/website-metadata-open-graph-scraper")
result = tool.invoke({"run_input": {"urls": ["https://example.com/", "https://apify.com/"], "maxConcurrency": 10}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (18)
FieldType
urlstring
finalUrlstring
okboolean
statusinteger
contentTypestring
responseTimeMsinteger
attemptsinteger
fetchedAtstring
titlestring
descriptionstring
canonicalstring
robotsstring
openGraphobject
twitterobject
metaTagsobject
resultStatusstring
errorTypestring
errorMessagestring
Input settings (4)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
URLs requiredurlsarray["https://example.com/", "https://apify.com/"]
Concurrent requestsmaxConcurrencyinteger10
Request timeoutrequestTimeoutSecsinteger20
RetriesmaxRetriesinteger1

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure