# Website Metadata and Open Graph Scraper

> Open Graph scraper: get title, meta description, canonical, robots, OG and Twitter Card tags from up to 100 URLs. $0.0018 per result, no login.

URL: https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/

Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/website-metadata-open-graph-scraper?fpr=cliqto

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

## How to use it: 3 steps

1. **Make a free Apify account.** Apify 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 Start.** No 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 results.** When 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.

## 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.





## Price

Pay per event. Apify bills you, not us.

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

- 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.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/website-metadata-open-graph-scraper?fpr=cliqto

## 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.

## Data fields

- `url` (string)
- `finalUrl` (string)
- `ok` (boolean)
- `status` (integer)
- `contentType` (string)
- `responseTimeMs` (integer)
- `attempts` (integer)
- `fetchedAt` (string)
- `title` (string)
- `description` (string)
- `canonical` (string)
- `robots` (string)
- `openGraph` (object)
- `twitter` (object)
- `metaTags` (object)
- `resultStatus` (string)
- `errorType` (string)
- `errorMessage` (string)

## Input settings

- `urls` (array, required): Add 1–100 public HTTP(S) page URLs. Exact duplicates share one network fetch but still return one row per input item.
- `maxConcurrency` (integer): Maximum number of URLs fetched at the same time.
- `requestTimeoutSecs` (integer): Maximum time for one HTTP attempt, in seconds.
- `maxRetries` (integer): Retries for temporary network errors, HTTP 429 and HTTP 5xx responses.

## 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

| Task | Input | You get | Key fields |
|---|---|---|---|
| Audit page metadata | URL list | One row per input item | `title`, `description`, `canonical`, `robots` |
| Build link-preview data | URL list | Server-returned social metadata | `openGraph`, `twitter`, `finalUrl` |
| Preserve duplicate meta values | URL list | Lossless repeated values | `openGraph`, `twitter`, `metaTags` |

## Tips

- 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



- 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.

## Sample 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`

```python
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)
```

```bash
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}'
```

```python
# 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)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites.
- [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon.

## Similar tools

- [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/)
- [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/)
- [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/)
- [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/)
- [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/)
- [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/)
