## Table of Contents

- [Turn any URL into normalized JSON. A single REST endpoint that executes JavaScript, merges Open Graph, JSON-LD, and HTML tags, and returns structured data instantly.](#turn-any-url-into-normalized-json-a-single-rest-endpoint-that-executes-javascript-merges-open-graph-json-ld-and-html-tags-and-returns-structured-data-instantly)
- [Send the URL Get the metadata back](#send-the-url-get-the-metadata-back)
- [Build social previews that actually render](#build-social-previews-that-actually-render)
- [Metadata API in JavaS](#metadata-api-in-javas)
  - [CLI Microlink API example](#cli-microlink-api-example)
  - [cURL Microlink API example](#curl-microlink-api-example)
  - [JavaScript Microlink API example](#javascript-microlink-api-example)
  - [Python Microlink API example](#python-microlink-api-example)
  - [Ruby Microlink API example](#ruby-microlink-api-example)
  - [PHP Microlink API example](#php-microlink-api-example)
  - [Golang Microlink API example](#golang-microlink-api-example)
- [Start free, scale when ready](#start-free-scale-when-ready)
  - [Free](#free)
  - [Pro](#pro)
  - [Business & Enterprise](#business--enterprise)
  - [metascraper](#metascraper)
  - [browserless](#browserless)
  - [sdk](#sdk)
- [Built on open source, trusted by developers](#built-on-open-source-trusted-by-developers)
- [Metadata is the foundation. Stack the rest on top.](#metadata-is-the-foundation-stack-the-rest-on-top)
- [Clean content for LLMs and RAG pipelines](#clean-content-for-llms-and-rag-pipelines)
- [Try it live, right now](#try-it-live-right-now)
  - [Skip the setup. Our sharing debugger tool lets you paste any URL, see every extracted metadata field, and preview how link unfurls render on Facebook, X, LinkedIn, WhatsApp, and Slack in real time.](#skip-the-setup-our-sharing-debugger-tool-lets-you-paste-any-url-see-every-extracted-metadata-field-and-preview-how-link-unfurls-render-on-facebook-x-linkedin-whatsapp-and-slack-in-real-time)
- [The most complete website metadata API built for production workloads](#the-most-complete-website-metadata-api-built-for-production-workloads)
- [The most complete website metadata API, with no compromises.](#the-most-complete-website-metadata-api-with-no-compromises)
  - [No more brittle scrapers, conflicting tag sources, or partial link previews — our website metadata API turns any URL to metadata in one predictable JSON response, with easy integration via the metadata API documentation.](#no-more-brittle-scrapers-conflicting-tag-sources-or-partial-link-previews--our-website-metadata-api-turns-any-url-to-metadata-in-one-predictable-json-response-with-easy-integration-via-the-metadata-api-documentation)
    - [Unified Metadata Extraction](#unified-metadata-extraction)
    - [Free to Start](#free-to-start)
    - [Global Edge Delivery](#global-edge-delivery)
    - [Language-Agnostic REST API](#language-agnostic-rest-api)
    - [Smart Color Palette Detection](#smart-color-palette-detection)
    - [Rich Media & Provider Support](#rich-media--provider-support)
    - [JavaScript-Rendered Pages](#javascript-rendered-pages)
    - [Smart TTL Caching](#smart-ttl-caching)
    - [Zero-Config Integration](#zero-config-integration)
    - [Unified Metadata Extraction](#unified-metadata-extraction-1)
    - [Free to Start](#free-to-start-1)
    - [Global Edge Delivery](#global-edge-delivery-1)
    - [Language-Agnostic REST API](#language-agnostic-rest-api-1)
    - [Smart Color Palette Detection](#smart-color-palette-detection-1)
    - [Rich Media & Provider Support](#rich-media--provider-support-1)
    - [JavaScript-Rendered Pages](#javascript-rendered-pages-1)
    - [Smart TTL Caching](#smart-ttl-caching-1)
    - [Zero-Config Integration](#zero-config-integration-1)
- [One metadata problem, one recipe.](#one-metadata-problem-one-recipe)
  - [Custom fields, broken og:image fixes, single-page apps, brand colors, blocked sites and link previews at scale. Each use case shows the exact options and the code to run.](#custom-fields-broken-ogimage-fixes-single-page-apps-brand-colors-blocked-sites-and-link-previews-at-scale-each-use-case-shows-the-exact-options-and-the-code-to-run)
  - [Custom fields alongside metadata](#custom-fields-alongside-metadata)
  - [Fix missing or wrong og:image](#fix-missing-or-wrong-ogimage)
  - [Metadata from single-page apps](#metadata-from-single-page-apps)
  - [Link previews for bot-protected sites](#link-previews-for-bot-protected-sites)
  - [Brand colors from images](#brand-colors-from-images)
  - [Link previews at scale](#link-previews-at-scale)
- [Start now](#start-now)
- [Product Information](#product-information)
  - [What is a website metadata API and how does it work?](#what-is-a-website-metadata-api-and-how-does-it-work)
  - [Which metadata sources does Microlink normalize?](#which-metadata-sources-does-microlink-normalize)
  - [How do I convert a URL to metadata or a link preview?](#how-do-i-convert-a-url-to-metadata-or-a-link-preview)
  - [Does Microlink handle JavaScript-rendered metadata?](#does-microlink-handle-javascript-rendered-metadata)
  - [Can I extract favicons, logos, and brand color palettes?](#can-i-extract-favicons-logos-and-brand-color-palettes)
  - [Why use a metadata API instead of scraping the HTML myself?](#why-use-a-metadata-api-instead-of-scraping-the-html-myself)
  - [Is there a free tier for the metadata API?](#is-there-a-free-tier-for-the-metadata-api)
  - [How do I integrate the metadata API with Node.js or Python?](#how-do-i-integrate-the-metadata-api-with-nodejs-or-python)
  - [What is metascraper and how does it power the API?](#what-is-metascraper-and-how-does-it-power-the-api)
  - [What is your uptime SLA and expected latency?](#what-is-your-uptime-sla-and-expected-latency)
  - [Other questions?](#other-questions)

---

## Turn any URL into normalized JSON. A single REST endpoint that executes JavaScript, merges Open Graph, JSON-LD, and HTML tags, and returns structured data instantly.

[Get Started](https://microlink.io/docs/guides/metadata)

Detected

- title
- description
- lang
- author
- publisher
- date
- url
- image
- logo
- video
- audio

Rate limit reached

You’ve reached your daily request limit. Wait for the quota to reset or [upgrade your plan](https://microlink.io/pricing) for higher limits.

https://api.microlink.io?**url=https://stripe.com**

## Send the URL Get the metadata back

2.0

secs

P95 cold response

22

ms

stripe.com · cached

99.9

%

SLA Guaranteed

Sources merged

Open GraphTwitter CardsJSON-LDoEmbedMicrodataHTML

https://api.microlink.io?**palette&url=https://stripe.com**

[Drop-in link previews in one line of code](https://microlink.io/embed)

## Build social previews that actually render

Microlink returns a unified JSON response — plus the brand color palette, logo, and favicon. Everything you need to render a pixel-perfect link preview or URL preview on the first try.

Every source merged, zero parsing

Open Graph, Twitter Cards, JSON-LD, oEmbed, microdata, RDFa, and HTML tags combined into **one unified schema**. Stop writing **per-site fallback logic** and ship consistent previews at scale.

Brand-ready visuals out of the box

Get high-resolution images, logos, favicons, and the **dominant color palette** for every URL — perfect for **rich link cards and theming** without manual art direction.

Real browser, SPA-ready rendering

Every request runs in a **real headless Chrome session** that executes JavaScript, hydrates SPAs, and waits for selectors — so you get accurate metadata from dynamic pages that **plain scrapers miss**.

Production-grade edge infrastructure

Global CDN caching, automatic retries, and **99.9% uptime** handle the scraping complexity for you — with a **free tier of 25 requests per day** to get started.

## Metadata API in JavaS

The Microlink website metadata API delivers unified structured data through a developer-friendly HTTP endpoint. One URL in, normalized metadata out — ready to power link previews, URL previews, content ingestion, and social card generation.

[Read the docs](https://microlink.io/docs/guides/metadata)

The following examples show how to use the Microlink API with CLI, cURL, JavaScript, Python, Ruby, PHP & Golang, targeting 'https://stripe.com' URL with 'meta' API parameter:

### CLI Microlink API example

```bash
microlink https://stripe.com&meta
```

### cURL Microlink API example

```bash
curl -G "https://api.microlink.io" \
  -d "url=https://stripe.com" \
  -d "meta=true"
```

### JavaScript Microlink API example

```javascript
import createClient from 'microlink.io'

const microlink = createClient()

const data = await microlink.metadata('https://stripe.com')
```

### Python Microlink API example

```python
import requests

url = "https://api.microlink.io/"

querystring = {
    "url": "https://stripe.com",
    "meta": "true"
}

response = requests.get(url, params=querystring)

print(response.json())
```

### Ruby Microlink API example

```ruby
require 'uri'
require 'net/http'

base_url = "https://api.microlink.io/"

params = {
  url: "https://stripe.com",
  meta: "true"
}

uri = URI(base_url)
uri.query = URI.encode_www_form(params)

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
response = http.request(request)

puts response.body
```

### PHP Microlink API example

```php
<?php

$baseUrl = "https://api.microlink.io/";

$params = [
    "url" => "https://stripe.com",
    "meta" => "true"
];

$query = http_build_query($params);
$url = $baseUrl . '?' . $query;

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET"
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #: " . $err;
} else {
    echo $response;
}
```

### Golang Microlink API example

```
package main

import (
    "fmt"
    "net/http"
    "net/url"
    "io"
)

func main() {
    baseURL := "https://api.microlink.io"

    u, err := url.Parse(baseURL)
    if err != nil {
        panic(err)
    }
    q := u.Query()
    q.Set("url", "https://stripe.com")
    q.Set("meta", "true")
    u.RawQuery = q.Encode()

    req, err := http.NewRequest("GET", u.String(), nil)
    if err != nil {
        panic(err)
    }

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    fmt.Println(string(body))
}
```

```javascript
importcreateClientfrom'microlink.io'

constmicrolink=createClient()

constdata=awaitmicrolink.metadata('https://stripe.com')
```

CLI cURL JavaScript Python Ruby PHP Golang Click to run the code and see the API response

Last month usage

100M

reqs per month

15%

cache hit rate

7TB

data served

some clients

[Visit Community](https://community.com/)

[Community](https://community.com/)

[Fan engagement platform](https://community.com/) [Impact Partnership management](https://impact.com/) [Mirror Web3 publishing platform](https://mirror.xyz/) [Padlet Visual collaboration tool](https://padlet.com/) [SkedSocial Marketing platform](https://skedsocial.com/)

## Start free, scale when ready

No login required. No credit card needed. The website metadata API is free to use — just start calling it.

### Free

Try the API in seconds. No card.

\$0/month

25 requests per day

- ✓ 25 requests / day
- ✓ [Screenshot](https://microlink.io/screenshot), [PDF](https://microlink.io/pdf), [SDK](https://microlink.io/integrations/sdk)
- ✓ [Metadata](https://microlink.io/metadata), [Logo](https://microlink.io/logo), [Insights](https://microlink.io/insights)
- ✓ [Markdown](https://microlink.io/markdown), [HTML](https://microlink.io/html), [Text](https://microlink.io/text)
- ✓ [Function](https://microlink.io/function), [Media](https://microlink.io/media), [File Conversion](https://microlink.io/file-conversion)
- ✓ [Global edge cache](https://microlink.io/blog/edge-cdn)
- ✓ [Adblock & cookie banners](https://microlink.io/docs/api/parameters/adblock)
- ✓ [Community support](https://microlink.io/community)

[Get started free](https://microlink.io/docs/guides)

### Pro

For production workloads.

\$49/month

≈ \$1.07 per 1,000 requests

46,000 requests / month

- ✓ Everything in Free
- ✓ [Automatic proxy resolution](https://microlink.io/features/proxy)
- ✓ [Configurable TTL](https://microlink.io/features/ttl)
- ✓ [Custom HTTP headers](https://microlink.io/features/headers)
- ✓ [Custom cache key](https://microlink.io/docs/api/parameters/cacheKey)
- ✓ Priority email support

Cancel anytime · No setup fees

### Business & Enterprise

Bought the way companies buy.

- ✓ Everything in Pro, plus:
- ✓ [Card or invoice, PO number, net 30](https://microlink.io/enterprise#what-business-includes)
- ✓ [NDA, DPA & service agreement](https://microlink.io/enterprise#your-data-protected)
- ✓ Vendor assessments on request
- ✓ Same named contact
- ✓ Annual billing, 10% discount

Enterprise adds

- ✓ [Dedicated endpoint & browser pool](https://microlink.io/enterprise#what-enterprise-includes)
- ✓ [Dedicated CDN & S3-like storage](https://microlink.io/enterprise#what-enterprise-includes)
- ✓ [Hosted where you need it](https://microlink.io/enterprise#choose-where-your-hardware-lives)

[View details](https://microlink.io/enterprise)

Need more details?

[Compare every plan side by side](https://microlink.io/pricing)

### [metascraper](https://github.com/microlinkhq/metascraper)

Scrape metadata from any URL using Open Graph, JSON-LD, HTML meta tags, and smart fallbacks.

HTML

2.7k

### [browserless](https://github.com/microlinkhq/browserless)

The headless Chrome/Chromium driver on top of Puppeteer. Take screenshots, generate PDFs, extract text and HTML with a production-ready API.

JavaScript

1.8k

### [sdk](https://github.com/microlinkhq/sdk)

Make any URL embeddable. Turn any URL into a beautiful link preview.

HTML

622

## Built on open source, trusted by developers

The Microlink metadata engine is powered by [metascraper](https://metascraper.js.org/), our battle-tested open source library used by thousands of developers worldwide. You can inspect the code, contribute, or self-host it.

[Explore on GitHub](https://github.com/microlinkhq)

One API, every layer of context

## Metadata is the foundation. Stack the rest on top.

Use the metadata API on its own to power link previews, knowledge graphs, content moderation, or SEO tooling. Combine it with the other Microlink utilities in a single request to enrich the response with screenshots, PDFs, clean Markdown, and brand colors — no extra roundtrips, same predictable JSON, same browser session.

[Clean content for LLMs and RAG pipelines — Explore Markdown API](https://microlink.io/markdown)

[Metadata × Markdown](https://microlink.io/markdown)

## Clean content for LLMs and RAG pipelines

[Strip pages down to clean Markdown for embeddings, summarization, or content ingestion — and ship the structured metadata alongside as front-matter. Your AI pipeline gets both the readable body and the trustworthy source signals in one request.api.microlink.io?meta&markdown&url=https://stripe.comExplore Markdown API](https://microlink.io/markdown) [Metadata × Screenshot Visual link previews, every time Pair structured metadata with a real browser screenshot when og:image is missing, low-resolution, or mismatched. Render rich link previews and social cards that always look intentional — even for pages without proper Open Graph tags.api.microlink.io?meta&screenshot&url=https://stripe.comExplore Screenshot API](https://microlink.io/screenshot) [Metadata × Embed Rich previews and oEmbed players in one call Pair the unified metadata with a ready-to-paste iframe from 300+ oEmbed providers — YouTube, Spotify, X, Vimeo, Figma, CodeSandbox. Render previews your way with the metadata fields, or drop in the optional SDK for zero-code embeds.api.microlink.io?meta&iframe&url=https://stripe.comExplore Embed API](https://microlink.io/embed) [Metadata × Palette & Logo Brand-aware UI without manual art direction Add palette=true to extract dominant colors from the og:image or logo, and get the logo / favicon URLs in the same response. Theme link cards, chat unfurls, and notification UI to match the source — pixel by pixel, brand by brand.api.microlink.io?meta&palette&url=https://stripe.comRead palette docs](https://microlink.io/logo)

## Try it live, right now

### Skip the setup. Our sharing debugger tool lets you paste any URL, see every extracted metadata field, and preview how link unfurls render on Facebook, X, LinkedIn, WhatsApp, and Slack in real time.

[Sharing Debugger](https://microlink.io/tools/sharing-debugger)

[Validate Open Graph, Twitter Cards, JSON-LD, microdata, and every other meta tag in one place. Preview how your URL renders on Facebook, X, LinkedIn, Slack, and more, before you hit publish.](https://microlink.io/tools/sharing-debugger)

## The most complete website metadata API built for production workloads

Six metadata sources merged into one JSON response.\
From Open Graph to JSON-LD, Microlink extracts the full picture in a single round-trip — no brittle scrapers, no partial results.

[Read the metadata guides](https://microlink.io/docs/guides/metadata)

## The most complete website metadata API, with no compromises.

### No more brittle scrapers, conflicting tag sources, or partial link previews — our website metadata API turns any URL to metadata in one predictable JSON response, with easy integration via the metadata API documentation.

- #### Unified Metadata Extraction

  Normalize Open Graph, Twitter Cards, JSON-LD, oEmbed, microdata, RDFa, and raw HTML tags into a single, predictable JSON response. One API call, every source merged.

- #### Free to Start

  Extract metadata from any URL immediately. No setup fees, no credit card required, and pay-as-you-grow pricing that scales with your link preview and ingestion workloads.

- #### Global Edge Delivery

  Metadata responses are cached and distributed across 340+ edge locations powered by Cloudflare, ensuring sub-second link previews and feed ingestion worldwide.

- #### Language-Agnostic REST API

  A single REST endpoint designed for developers. Integrate in minutes using official SDKs for Node.js, Python, Ruby, and Go, or any standard HTTP client.

- #### Smart Color Palette Detection

  Extract brand palettes and dominant image colors automatically. Perfect for theming link previews, hero cards, and chat unfurls with zero manual art direction.

- #### Rich Media & Provider Support

  Detect logos, favicons, videos, audio, and embeddable iframes across 250+ verified providers, from YouTube and Spotify to Figma and CodeSandbox.

- #### JavaScript-Rendered Pages

  Full headless browser execution means React, Vue, and Next.js sites that inject meta tags at runtime are captured correctly every time — no stale SSR required.

- #### Smart TTL Caching

  Configure Time-To-Live caching rules to keep your metadata fresh. Stay up to date with source changes while maintaining sub-second API performance at scale.

- #### Zero-Config Integration

  Interactive documentation packed with live code examples. Copy-paste ready snippets get you from URL to structured metadata in under a minute.

- #### Unified Metadata Extraction

  Normalize Open Graph, Twitter Cards, JSON-LD, oEmbed, microdata, RDFa, and raw HTML tags into a single, predictable JSON response. One API call, every source merged.

- #### Free to Start

  Extract metadata from any URL immediately. No setup fees, no credit card required, and pay-as-you-grow pricing that scales with your link preview and ingestion workloads.

- #### Global Edge Delivery

  Metadata responses are cached and distributed across 340+ edge locations powered by Cloudflare, ensuring sub-second link previews and feed ingestion worldwide.

- #### Language-Agnostic REST API

  A single REST endpoint designed for developers. Integrate in minutes using official SDKs for Node.js, Python, Ruby, and Go, or any standard HTTP client.

- #### Smart Color Palette Detection

  Extract brand palettes and dominant image colors automatically. Perfect for theming link previews, hero cards, and chat unfurls with zero manual art direction.

- #### Rich Media & Provider Support

  Detect logos, favicons, videos, audio, and embeddable iframes across 250+ verified providers, from YouTube and Spotify to Figma and CodeSandbox.

- #### JavaScript-Rendered Pages

  Full headless browser execution means React, Vue, and Next.js sites that inject meta tags at runtime are captured correctly every time — no stale SSR required.

- #### Smart TTL Caching

  Configure Time-To-Live caching rules to keep your metadata fresh. Stay up to date with source changes while maintaining sub-second API performance at scale.

- #### Zero-Config Integration

  Interactive documentation packed with live code examples. Copy-paste ready snippets get you from URL to structured metadata in under a minute.

## One metadata problem, one recipe.

### Custom fields, broken og:image fixes, single-page apps, brand colors, blocked sites and link previews at scale. Each use case shows the exact options and the code to run.

### Custom fields alongside metadata

Get prices, ratings, headings or any CSS selector, typed and returned next to the normalized metadata.

[Extract custom fields](https://microlink.io/use-cases/website-metadata/custom-fields)

### Fix missing or wrong og:image

Override any normalized field with a rule and chain fallbacks so link previews never render empty.

[Fix a broken og:image](https://microlink.io/use-cases/website-metadata/missing-or-wrong-metadata)

### Metadata from single-page apps

Render React, Vue or Angular apps in a headless browser, wait for the tags, then read the normalized metadata.

[Read metadata from single-page apps](https://microlink.io/use-cases/website-metadata/javascript-rendered-pages)

### Link previews for bot-protected sites

Unfurl links to sites behind Cloudflare or DataDome: on a Pro key the built-in proxy resolves automatically.

[Preview bot-protected sites](https://microlink.io/use-cases/website-metadata/blocked-sites)

### Brand colors from images

Get the dominant palette and an accessible text and background pair from a site’s logo and preview image.

[Extract brand colors](https://microlink.io/use-cases/website-metadata/brand-colors)

### Link previews at scale

Unfurl links at any volume: no throttling, background refresh and cache hits that never count against your quota.

[Scale your link previews](https://microlink.io/use-cases/website-metadata/high-volume-link-previews)

[All website metadata use cases](https://microlink.io/use-cases/website-metadata)

## Start now

Get 25 requests/day with zero commitment — the website metadata API is free to use, no account, and no credit card. Just call the API and go from URL to metadata in seconds.

[Get started free](https://microlink.io/docs/guides/metadata)

No login needed

25 reqs/day free

No credit card

Language guides:

[Node.js](https://microlink.io/metadata/nodejs)

[Python](https://microlink.io/metadata/python)

[PHP](https://microlink.io/metadata/php)

[Ruby](https://microlink.io/metadata/ruby)

[Go](https://microlink.io/metadata/go)

## Product Information

Everything you need to know about\
the Microlink metadata API.

### What is a website metadata API and how does it work?

A **website metadata API** takes any URL as input, loads the page with a full [headless browser](https://microlink.io/blog/what-is-a-headless-browser), and returns a unified JSON response containing title, description, image, logo, favicon, color palette, language, author, date, and more. Think of it as a programmable link to metadata: one URL in, fully normalized metadata out.

### Which metadata sources does Microlink normalize?

Microlink normalizes seven sources into one response: [Open Graph](https://ogp.me/), Twitter Cards, [JSON-LD](https://json-ld.org/), oEmbed, [microdata](https://developer.mozilla.org/en-US/docs/Web/HTML/Guides/Microdata), [RDFa](https://rdfa.info/), and HTML head tags.

The API prioritizes the most accurate source per field automatically — you get the best title, description, image, logo, author, date, language, and palette without writing custom parsing logic or maintaining brittle scrapers.

### How do I convert a URL to metadata or a link preview?

Use the metadata API as a **URL preview** and **link preview** endpoint. Send an HTTPS `GET` request to `https://api.microlink.io?url=<your-url>` and you will receive JSON with the normalized metadata — including *og:title*, *og:description*, *og:image*, *og:type*, and *og:site_name*.

No authentication is required for the free tier. The response merges Open Graph with Twitter Cards, JSON-LD, and HTML fallbacks so you always get a complete preview — see the [metadata guide](https://microlink.io/docs/guides/metadata) for all fields.

### Does Microlink handle JavaScript-rendered metadata?

Yes. Unlike regex-based scrapers, Microlink runs a full Chromium headless browser. So React, Vue, Next.js, and other SPAs that inject meta tags at runtime are captured correctly.

Metadata added by frameworks like `next/head`, `react-helmet`, or Nuxt `useHead` hooks is detected just as reliably as server-rendered tags. Stale SSR or partial hydration edge cases are handled out of the box.

### Can I extract favicons, logos, and brand color palettes?

Yes. Microlink returns the *logo* and *favicon* URLs for every page, with dimensions and MIME type.

Add `palette=true` to the query and you also get the dominant color palette extracted from the *og:image* or the logo. Perfect for theming link preview cards, chat unfurls, and brand-aware UI without manual design work.

### Why use a metadata API instead of scraping the HTML myself?

Metadata extraction looks simple until it is not. Social networks use inconsistent tag naming, some sites inject tags at runtime, JSON-LD can be deeply nested, [oEmbed](https://oembed.com/) requires provider-specific endpoints, and encoding bugs are everywhere.

Microlink handles [headless browser](https://microlink.io/blog/what-is-a-headless-browser) rendering, rule-based normalization with [metascraper](https://metascraper.js.org/), proxy rotation, caching, and concurrency at scale — so you ship features instead of fighting the long tail of the web.

### Is there a free tier for the metadata API?

Yes. The metadata API is **free to use with 25 requests per day** — no login, no credit card, and no setup required. Just call the endpoint and get normalized metadata back.

For production workloads that need higher volume, [automatic proxy rotation](https://microlink.io/docs/guides/common/proxy), [custom headers](https://microlink.io/docs/api/parameters/headers), [configurable TTL](https://microlink.io/docs/api/parameters/ttl), and priority support, see our [Pro plans](https://microlink.io/pricing) starting at €39/month.

### How do I integrate the metadata API with Node.js or Python?

In minutes. Visit our [documentation](https://microlink.io/docs/guides/metadata) for interactive playground examples, the official [SDK](https://microlink.io/integrations/sdk) (Node.js, browsers, Deno), and copy-paste code snippets for any language.

The [embed workflow](https://microlink.io/embed) turns the metadata response into a rendered link preview with [250+ verified providers](https://microlink.io/docs/api/parameters/iframe#providers-supported) supported out of the box.

### What is metascraper and how does it power the API?

[metascraper](https://metascraper.js.org/) is the open-source rule-based library that underpins Microlink. It evaluates each desired field (title, image, date, etc.) against a series of rules and only accepts values that satisfy a strict data shape.

This approach means when the API detects a field, you can be confident it is what it claims to be — no false positives from truncated strings, empty images, or malformed dates. The library is [open source on GitHub](https://github.com/microlinkhq/metascraper) and you can contribute rules for your own edge cases.

### What is your uptime SLA and expected latency?

We guarantee [enterprise-grade](https://microlink.io/enterprise) reliability with a 99.9% uptime SLA. Every request runs in an isolated browser instance to guarantee security and avoid shared-state leaks. Check real-time availability on the [status page](https://microlink.io/status).

For latency: metadata responses are distributed via Cloudflare's 340+ edge locations, meaning [cached responses](https://microlink.io/docs/api/parameters/ttl) are delivered in milliseconds. Our optimized Chromium pool handles cold starts efficiently for consistent P95 performance.

### Other questions?

We’re always available at <hello@microlink.io>.