Extract metadata from any URL.
One API call.
Get titles, descriptions, Open Graph tags, Twitter Cards, favicons, and JSON-LD structured data. Build link previews in minutes, not days.
Try it now

GitHub: Let's build from here
GitHub is where over 100 million developers shape the future of software, together.
Embed link previews anywhere
Customize the widget, preview it live, then copy two lines of HTML.
Customize
<div class="metascrape-card"
data-url="https://example.com"
data-key="msk_your_key"
data-theme="dark">
</div>
<script src="https://metascrape.shanecode.org/embed.js" async></script>data-theme "light" or "dark" data-width any CSS widthOfficial SDKs
Install our official client libraries. Zero dependencies. Full API coverage.
npm install @shanecode/metascrapeimport { MetaScrape } from '@shanecode/metascrape';
const ms = new MetaScrape('msk_your_key');
const meta = await ms.extract('https://github.com');
console.log(meta.title, meta.og.image);pip install metascrapefrom metascrape import MetaScrape
ms = MetaScrape("msk_your_key")
meta = ms.extract("https://github.com")
print(meta["title"], meta["og"]["image"])Integrate in minutes
curl "https://api.shanecode.org/v1/extract\ ?url=https://github.com" \ -H "X-API-Key: msk_your_key_here"
const res = await fetch(
'https://api.shanecode.org/v1/extract?url=https://github.com',
{ headers: { 'X-API-Key': 'msk_your_key' } }
);
const { data } = await res.json();import requests
r = requests.get(
"https://api.shanecode.org/v1/extract",
params={"url": "https://github.com"},
headers={"X-API-Key": "msk_your_key"}
)
data = r.json()["data"]import MetaScrape from '@shanecode/metascrape';
const ms = new MetaScrape('msk_your_key');
const data = await ms.extract('https://github.com');
console.log(data.title, data.og.image);Simple pricing
Start free. Upgrade when you need more.
Free
100 requests/month
- All metadata fields
- 1hr response caching
- Community support
API Reference
GET /v1/extract
Extract metadata from a URL.
url string, required The URL to extract metadata fromX-API-Key string, required Your API key (starts with msk_){
"data": {
"url": "https://github.com",
"domain": "github.com",
"title": "GitHub: Let's build from here",
"description": "GitHub is where over 100 million developers...",
"canonical_url": "https://github.com",
"favicon": "https://github.com/favicon.ico",
"language": "en",
"og": {
"title": "GitHub: Let's build from here",
"description": "GitHub is where over 100 million developers...",
"image": "https://github.githubassets.com/assets/campaign-social.png",
"type": "website",
"site_name": "GitHub"
},
"twitter": {
"card": "summary_large_image",
"title": "GitHub: Let's build from here",
"image": "https://github.githubassets.com/assets/campaign-social.png",
"site": "@github"
},
"structured_data": [
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "GitHub",
"url": "https://github.com"
}
],
"response_time_ms": 245
},
"cached": false
}GET /v1/usage
Check your current month's usage and remaining quota.
{
"plan": "hobby",
"used": 142,
"limit": 1000,
"remaining": 858
}Built by a developer, for developers
I needed a reliable way to extract link previews and OG metadata for a side project. Every existing API was either expensive, unreliable, or both. MetaScrape is my answer to that.
— Shane Burrell · [email protected]