BYTETOOLS

Microlink API

Free link preview API with no key for basic use: extract title, description, image, author and favicon from any URL. Powers unfurl previews. Tested example.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-19

What is the Microlink API?

Microlink is a free link preview API that extracts structured metadata from any URL — title, description, preview image, author, publication date, logo and favicon — returning it as normalised JSON.

Link unfurling looks trivial until you try it: some sites use Open Graph, some Twitter cards, some only JSON-LD, and many need JavaScript executed before the metadata exists. Microlink handles all of that and returns one consistent shape.

The free tier allows around 50 requests per day without a key, which suits low-volume use or development. Because previews for a given URL rarely change, caching aggressively makes that allowance go a long way.

Quick facts

Base URL
https://api.microlink.io
Authentication
Free tier needs no key, at about 50 requests per day. A paid key raises limits substantially.
Rate limit
Roughly 50 requests per day on the free unauthenticated tier.
Pricing
Free tier; paid plans for production volume.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Microlink API

Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.

1. Extract preview metadata from a URL

GET https://api.microlink.io/?url=https%3A%2F%2Fexample.com

curl
curl 'https://api.microlink.io/?url=https%3A%2F%2Fexample.com'
JavaScript (fetch)
const res = await fetch("https://api.microlink.io/?url=https%3A%2F%2Fexample.com");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.microlink.io/?url=https%3A%2F%2Fexample.com", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "status": "success",
  "data": {
    "publisher": "example.com",
    "lang": "en",
    "title": "Example Domain",
    "url": "https://example.com/",
    "image": null,
    "date": null,
    "author": null,
    "description": "This domain is for use in documentation examples without needing permission. Avoid use in operations.",
    "logo": null
  },
  "statusCode": 200,
  "redirects": [],
  "headers": {
    "age": "13041",
    "allow": "GET, HEAD",
    "cf-cache-status": "HIT",
    "cf-ray": "a2d65d39d960643e-EWR",
    "content-encoding": "br",
    "content-type": "text/html",
    "date": "Wed, 19 Aug 2026 04:20:09 GMT",
    "last-modified": "Tue, 18 Aug 2026 20:06:42 GMT",
    "server": "cloudflare"
  }
}

Parameters

ParameterTypeRequiredDescription
urlstringRequiredThe URL to unfurl. Must be URL-encoded. https%3A%2F%2Fexample.com
screenshotbooleanOptionalAlso capture a screenshot of the page. true
metabooleanOptionalInclude full metadata extraction. true
palettebooleanOptionalExtract a colour palette from the preview image. true

Response fields

statusstring
`success` or `error`.
data.titlestring
Page title.
data.descriptionstring
Page description.
data.imageobject
Preview image with URL and dimensions, or null.
data.logoobject
Site logo or favicon.
data.publisherstring
Publisher or site name.
data.langstring
Detected page language.

What you can build with the Microlink API

  • Render rich link previews in a chat, CMS or bookmarking app
  • Generate Open Graph cards for user-submitted URLs
  • Extract article metadata for a reading list
  • Capture page screenshots for link cards

Common errors and how to fix them

429

Free tier daily allowance exhausted.

Fix: Cache previews by URL — they rarely change. A paid key raises the limit.

data.image is null

The page has no Open Graph or Twitter card image.

Fix: Fall back to the logo or a generated placeholder rather than rendering a broken image.

status: error

The target URL is unreachable or blocks scrapers.

Fix: Read the error message; some sites deliberately block metadata extraction.

Microlink API — frequently asked questions

Is Microlink free?

There is a free tier requiring no API key, limited to roughly 50 requests per day. Paid plans are needed for production volume.

What does a link preview API actually do?

It fetches a URL, executes any JavaScript needed, and normalises Open Graph, Twitter card and JSON-LD metadata into one consistent JSON shape — so you get a title, description and image regardless of how the site marks it up.

Why is the image field sometimes null?

The target page has no Open Graph or Twitter card image. Fall back to the site logo or a generated placeholder rather than showing a broken image.

Can I generate screenshots too?

Yes, pass screenshot=true. That consumes more of your quota than a metadata-only request.

Tools that pair with this API

Microlink is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.