New The MCP server is live: all 45 APIs in Claude, Cursor or any MCP client. Connect your agent

Open Graph, Twitter Card & SEO extraction from any URL

URL Metadata API

The URL Metadata API turns any web page into clean, structured JSON. Give it a URL and it fetches the page with a real browser User-Agent, follows redirects, and parses the HTML to extract the title, meta description and keywords, canonical link, charset, html lang, every Open Graph tag, every Twitter Card tag, and all favicons.

Built on Cloudflare's edge network with a streaming HTMLRewriter parser, it never buffers giant pages into memory and responds in milliseconds. Relative canonical, og:image and favicon URLs are automatically resolved to absolute URLs against the final post-redirect address, and non-HTML responses are detected and returned gracefully instead of producing garbage.

Free tier included, no credit card required. One key works across every API.

At a glance

URL Metadata API

5 credits / call
Free calls / month
200
Response Time
<300ms
Metadata Fields
10+
Uptime SLA
99.9%
Get your free API key

200 free calls on the free plan

Key features

  • Title, description, keywords, canonical, charset and html lang extraction
  • Every Open Graph (og:*) tag returned as structured key/value pairs
  • Every Twitter Card (twitter:*) tag captured
  • All favicons with rel, href, sizes and type, plus optional /favicon.ico fallback
  • Relative og:image, canonical and favicon URLs resolved to absolute
  • Follows redirects and reports both the original and final URL
  • Streaming HTMLRewriter parser — large pages never fully buffered
  • Built-in SSRF guard rejects localhost and private-range hosts

Built for

  • Rich link previews in chat and social apps
  • Generating share cards and unfurled URLs
  • Bulk SEO and metadata audits
  • Competitor and brand page monitoring
  • Enriching URL-based datasets and bookmarks
  • Content pipelines and CMS imports
  • Validating Open Graph and Twitter Card markup
  • Building reading lists and content aggregators

MCP · for your agent

Hand the URL Metadata API to your agent

Connect Claude, Cursor or any MCP client once, then ask in plain words. Your agent finds this API, reads its docs and makes the call: 5 credits per call, the same as REST, from your team's balance.

Fix broken link previews

“Our blog posts show blank previews when shared on Slack. Check the Open Graph and Twitter tags on our latest post.”

list_apis · get_api_docsfree

api_request GET /url-metadata/v1/extract?url=https://www.example.com/blog/launch 5 cr

The title, description, OG and Twitter tags found, and the missing ones that break previews.

Audit SEO basics across pages

“Audit the 25 URLs in our sitemap: flag missing meta descriptions, missing canonicals and titles over 60 characters.”

list_apis · get_api_docsfree

api_request GET /url-metadata/v1/extract?url=https://www.example.com/pricing 5 cr

A table of title, description and canonical per page, with SEO issues flagged.

Build a reading list from links

“Turn these 15 links from our research channel into a reading list with title, site, image and a two-line summary each.”

list_apis · get_api_docsfree

api_request GET /url-metadata/v1/extract?url=https://www.example.org/reports/state-of-apis 5 cr

+ Web Scraper API25 cr

Each link with title, site name, preview image and a short summary, as a formatted list.

$ claude mcp add --transport http apicodex https://mcp.apicodex.io

Illustrative asks; the calls and prices are real. Claude, Cursor, VS Code and Windsurf setup: mcp.apicodex.io

Try it

Build the request for your data

Edit the parameters below and see the exact request and curl command you'd send. No key required to preview.

GET /url-metadata/v1/extract
Open in Playground

Parameters

Request · HTTP
GET /url-metadata/v1/extract?url=https://www.example.com/blog/launch&apikey=YOUR_KEY HTTP/1.1
Host: api.apicodex.io
Response · JSON 200 OK
{
"url": "https://www.example.com/blog/launch",
"final_url": "https://www.example.com/blog/launch",
"status": 200,
"content_type": "text/html; charset=utf-8",
"title": "We just launched — Example Blog",
"description": "Read about our brand new product launch and what it means for you.",
"keywords": ["launch", "product", "example", "news"],
"canonical": "https://www.example.com/blog/launch",
"lang": "en",
"charset": "utf-8",
"open_graph": {
  "og:title": "We just launched",
  "og:type": "article",
  "og:image": "https://www.example.com/img/launch-hero.png"
},
"twitter": {
  "twitter:card": "summary_large_image",
  "twitter:image": "https://www.example.com/img/launch-hero.png"
},
"favicons": [
  { "rel": "icon", "href": "https://www.example.com/favicon-32.png", "sizes": "32x32", "type": "image/png" }
],
"images": ["https://www.example.com/img/launch-hero.png"]
}

Documentation

URL Metadata API Documentation

The URL Metadata API fetches a target URL with a browser-like User-Agent (following redirects) and parses the HTML with Cloudflare's streaming HTMLRewriter to extract SEO, Open Graph, Twitter Card, favicon and page metadata. Relative canonical, og:image and favicon URLs are resolved to absolute against the final response URL. A single GET /v1/extract endpoint covers every use case.

Base URL

url
https://api.apicodex.io/url-metadata

Authentication

Pass your API key as the ?apikey= query parameter, or send it in an X-Api-Key header. Both work on every endpoint.

headers
# Query parameter
GET /url-metadata/v1/extract?url=https://example.com&apikey=YOUR_KEY

# Header
{
  "X-Api-Key": "YOUR_API_KEY"
}

Request and response

Illustrative values. Confirm current endpoint behavior, quotas, and data freshness in the API documentation before production use.

request · http
GET /url-metadata/v1/extract?url=https://www.example.com/blog/launch&apikey=YOUR_KEY HTTP/1.1
Host: api.apicodex.io
response · json
{
"url": "https://www.example.com/blog/launch",
"final_url": "https://www.example.com/blog/launch",
"status": 200,
"content_type": "text/html; charset=utf-8",
"title": "We just launched — Example Blog",
"description": "Read about our brand new product launch and what it means for you.",
"keywords": ["launch", "product", "example", "news"],
"canonical": "https://www.example.com/blog/launch",
"lang": "en",
"charset": "utf-8",
"open_graph": {
  "og:title": "We just launched",
  "og:type": "article",
  "og:image": "https://www.example.com/img/launch-hero.png"
},
"twitter": {
  "twitter:card": "summary_large_image",
  "twitter:image": "https://www.example.com/img/launch-hero.png"
},
"favicons": [
  { "rel": "icon", "href": "https://www.example.com/favicon-32.png", "sizes": "32x32", "type": "image/png" }
],
"images": ["https://www.example.com/img/launch-hero.png"]
}

Code examples

cURL
curl --request GET \
  --url 'https://api.apicodex.io/url-metadata/v1/extract?url=https://www.example.com/blog/launch' \
  --header 'X-Api-Key: YOUR_API_KEY'

Endpoints

GET /v1/extract

Fetch the target URL and extract title, meta description/keywords, canonical link, charset, html lang, all Open Graph tags, all Twitter Card tags, favicons and Open Graph images. Returns base fields with a note for non-HTML responses.

/v1/extract?url=https://www.example.com/blog/launch

Parameters

Required parameters

  • url The page URL to inspect. Must use http:// or https://.

Optional parameters

  • timeout_ms Upstream fetch timeout in milliseconds. Default 10000, capped at 20000.
  • favicon_fallback If no icon link is found in the HTML, include the conventional /favicon.ico guess (flagged with "default": true). Default true.

Pricing

URL Metadata API Pricing

This API costs 5 credits per request. Credits are shared across every API on your plan.

Cost estimator

requests per month → cheapest plan that covers it

Estimate your monthly cost

Drag the slider to match your expected request volume. We'll recommend the cheapest plan that covers it.

10,000

Recommended plan

Starter

$29.99 /month

Credits used
Credits included
Cost per 1K requests
Choose Starter

Free

Free
1,000 credits · ~200 requests/mo · 2 rps
  • All APIs included
  • No credit card required
  • Full documentation and examples
  • MCP server for your AI agents
  • Up to 5 active API keys
Start for free

Starter

Popular
$29.99 /month
50,000 credits · ~10,000 requests/mo · 10 rps
  • All APIs included
  • Email support
  • Usage dashboard and analytics
  • MCP server for your AI agents
  • Up to 5 active API keys
Start with Starter

Pro

$99.99 /month
250,000 credits · ~50,000 requests/mo · 25 rps
  • All APIs included
  • Priority support
  • MCP server for your AI agents
  • Up to 5 active API keys
Start with Pro

Need a different plan?

Tell us about your API, volume, or support requirements.

Contact us

FAQ

Frequently asked questions

Ready to integrate URL Metadata?