Skip to content

Embed API for any URL

One API call turns any URL into a ready-to-paste iframe — YouTube players, Spotify tracks, Tweet widgets, Figma boards, and 280+ more oEmbed providers. No scraping, edge-cached globally — built for developers.

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

280+ embed providers One API call for every URL

Microlink supports embed for 280+ providers including YouTube, Spotify, Twitter / X, Instagram, TikTok, GitHub, CodePen, CodeSandbox, Vimeo, SoundCloud, Figma, Reddit, Pinterest, Flickr, Behance, Medium, Sketchfab, Replit, Canva, TED, Dailymotion, Twitch, Mixcloud, Giphy, Observable, Streamable, Wistia, Loom, SlideShare, Kickstarter, DeviantArt, Imgur, Bandcamp, and more.

https://api.microlink.io?iframe&url=https://www.ted.com/talks/jia_jiang_what_i_learned_from_100_days_of_rejection

Two ways to embed any URL
on your website

Same API, two rendering paths. Drop in the SDK component, or paste the iframe attribute the response already returns — pick whichever fits your stack.
Iframe attribute from the response
The API response includes a ready-to-paste HTML snippet — the provider's real player. Drop it straight into your markup. Works across 280+ supported webpages: YouTube, Spotify, Vimeo, X, TikTok, Canva, Figma...
Microlink SDK component
Drop in <Microlink /> for React, Vue, or vanilla JS — under 10KB, lazy-loaded by default. Pass any URL and let the SDK fetch, theme, and render it. Customizable through props, CSS variables, and stable BEM class hooks.
Need raw metadata to build your own card instead? See the Link Preview API.

Copy. Paste. Embed.

Ready-to-paste iframe snippets for any URL

Pass any URL, get back the iframe HTML the provider ships via oEmbed. No parsing, no fallback logic — drop it straight into your markup or render it from the JSON response.

YouTube iframe embed

3:42
Subscribe
Last month usage
359.2M
reqs per month
12%
cache hit rate
10TB
data served
some clients

Start free, scale when ready

No login. No credit card. Embed any URL on the free tier — upgrade when production traffic kicks in.
Most popular
Pro
For production workloads.
$46
/month
$1.00 per 1,000 requests
Billed in EUR · USD shown for reference
requests / month
Cancel anytime · No setup fees
Free
Try the API in seconds. No card.
$0
/month
50 requests per day
Enterprise
Dedicated infra for high-volume.
Custom
From $585 / month

For React, Vue, and Vanilla JS
Embed SDK

The Microlink Embed SDK is the optional zero-code path on top of the API. One component, 280+ providers, under 10KB — drop-in support for React, Vue, and Vanilla JavaScript.

import Microlink from '@microlink/react'

<Microlink
  url='https://www.youtube.com/watch?v=9P6rdqiybaw'
  apiKey='YOUR_API_KEY'
  size='large'
/>

Try it live, right now

Skip the setup. Our interactive embed url tool lets you test the embed API instantly — paste any URL, configure options, and copy the ready to paste embed code.

The most complete embed API for developers, with no compromises.

One API, every provider, edge-cached worldwide. Step through the workflow in the embed guide — or skip the markup with the Microlink SDK.

  • One Embed for Every URL

    oEmbed parity across 280+ verified providers. YouTube, Spotify, Twitter, GitHub, Figma, CodeSandbox — one API call, every provider normalized into the same response shape.
  • Plain HTTPS, No Library Required

    A simple GET request returns the metadata and iframe payload. Call it from any backend, edge runtime, browser, or static site — no SDK install needed.
  • Auto-Detection of Media

    Every response includes the best image, video, audio, logo, and iframe available. No manual provider routing, no broken embeds.
  • Global Edge Delivery

    Embed responses are cached and distributed across 240+ edge locations powered by Cloudflare, ensuring sub-second link previews worldwide.
  • Customize the Embed Appearance

    Theme the SDK component through `--microlink-*` CSS variables and BEM class hooks, or pass iframe attributes (width, height, theme) to control the provider's native player.
  • Card or Iframe — Your Choice

    Pass `iframe=true` to get the provider's real player (YouTube, Spotify, Tweet) or use the metadata fields to render a static card. Same data, two presentations.
  • Free to Start

    Embed any URL immediately. No setup fees, no credit card, and pay-as-you-grow pricing once you outgrow the 50 reqs/day free tier.
  • Optional Drop-in SDK

    Want zero-code rendering? The optional Microlink SDK ships a single lazy-loaded component for React, Vue, and vanilla JS — under 10KB.
  • Workflow-First Docs

    Step-by-step embed guide covering the API, the iframe parameter, custom HTML/CSS, and AI-generated previews — with runnable examples for every workflow.
  • One Embed for Every URL

    oEmbed parity across 280+ verified providers. YouTube, Spotify, Twitter, GitHub, Figma, CodeSandbox — one API call, every provider normalized into the same response shape.
  • Plain HTTPS, No Library Required

    A simple GET request returns the metadata and iframe payload. Call it from any backend, edge runtime, browser, or static site — no SDK install needed.
  • Auto-Detection of Media

    Every response includes the best image, video, audio, logo, and iframe available. No manual provider routing, no broken embeds.
  • Global Edge Delivery

    Embed responses are cached and distributed across 240+ edge locations powered by Cloudflare, ensuring sub-second link previews worldwide.
  • Customize the Embed Appearance

    Theme the SDK component through `--microlink-*` CSS variables and BEM class hooks, or pass iframe attributes (width, height, theme) to control the provider's native player.
  • Card or Iframe — Your Choice

    Pass `iframe=true` to get the provider's real player (YouTube, Spotify, Tweet) or use the metadata fields to render a static card. Same data, two presentations.
  • Free to Start

    Embed any URL immediately. No setup fees, no credit card, and pay-as-you-grow pricing once you outgrow the 50 reqs/day free tier.
  • Optional Drop-in SDK

    Want zero-code rendering? The optional Microlink SDK ships a single lazy-loaded component for React, Vue, and vanilla JS — under 10KB.
  • Workflow-First Docs

    Step-by-step embed guide covering the API, the iframe parameter, custom HTML/CSS, and AI-generated previews — with runnable examples for every workflow.

Already shipping in real products

How mymahi powers its newsfeed and luckynote unfurls links inside notes — two short reads on the embed API in production.

Embed any URL

Call the API directly for a ready-to-paste iframe and oEmbed payload, or drop in the optional SDK for zero-code rendering. Free to start, no credit card, no commitment.
No login needed
50 reqs/day free
No credit card

Product Information

Everything you need to know about
the Microlink Embed API and SDK.

What is an embed API and how is it different from oEmbed?

An embed API takes any URL as input and returns ready-to-paste embed HTML, typically an iframe with the provider's native player or widget. is the open spec that most providers (YouTube, Spotify, Twitter) implement to expose embed data.
Microlink consumes oEmbed where available and falls back to Open Graph, JSON-LD, and headless rendering everywhere else — so every URL returns a usable embed, even when the source does not implement oEmbed.

Is there a free embed API?

Yes. The Microlink Embed API is free with 50 requests per day — no login, no credit card, no setup. Cached responses served from 240+ Cloudflare edge locations do not count against your daily limit.
For production workloads above the free tier, Pro plans start at €39 per month with higher rate limits, proxy rotation, and priority support.
Microlink supports 280+ verified providers via oEmbed — YouTube, Spotify, Twitter / X, Instagram, TikTok, GitHub, CodePen, CodeSandbox, Vimeo, SoundCloud, Figma, Reddit, Pinterest, Behance, Medium, Sketchfab, Replit, Canva, TED, Twitch, Mixcloud, Giphy, and more.
The full provider list grows automatically — you do not need to update the SDK when a new provider is added.

How do I embed a YouTube, Spotify, or Tweet on my site?

Drop the Microlink component into your markup and pass the URL:
  • React: <Microlink url="https://youtube.com/..." media="iframe" />
  • Vue: <Microlink url="https://spotify.com/..." media="iframe" />
  • Vanilla JS: microlink('a') to convert every link on the page
See the full React, Vue, and vanilla guides for deeper integration.

How do I embed a TikTok or Instagram post on my site?

Pass the TikTok or Instagram URL to the Microlink Embed API with iframe=true and the response includes the provider's native embed snippet — the same widget TikTok and Instagram ship via oEmbed. Drop the HTML into your page and the post renders inline, with native interactions preserved. See the iframe guide for the full request shape.
The Microlink SDK does the same thing zero-code: <Microlink url="https://tiktok.com/..." media="iframe" /> — the component detects the provider, fetches the embed payload, and renders the native player.
Yes. Microlink routes requests through a rotating residential proxy network and renders pages in a real headless browser. URLs gated by Cloudflare, DataDome, PerimeterX, hCaptcha, reCAPTCHA, or similar anti-bot systems are fetched and rendered the same way a real visitor sees them.
The response shape stays identical — title, description, image, logo, iframe — so URLs that would normally return 403 or block a scraper still come back with a usable preview. Proxy rotation is part of Pro plans; see the proxy parameter for configuration.

Can I customize the look of the embed?

Yes. The SDK exposes CSS variables (--microlink-background-color, --microlink-border-style, --microlink-max-width) and stable BEM class names (microlink_card, microlink_card__media_video) so you can theme cards without forking.
With or any CSS-in-JS library, you can wrap the component to apply additional styles per instance — see the styling guide.

What if a URL has no image to preview?

Pass screenshot=true on the embed request and Microlink renders the page in a real browser, returning the capture under data.screenshot.url. Use it as the fallback whenever data.image is missing or low quality — every URL ends up with a usable visual.
See the screenshot API for full options — full page, dark mode, device emulation, viewport, and format.

Does the SDK work with React, Vue, and vanilla JS?

Yes. The SDK ships three packages with a unified surface:
They share the same props, the same CSS hooks, and the same <10KB bundle target. Switching between them later is a near drop-in replacement.

Is the SDK lazy-loaded?

Yes. By default the SDK uses IntersectionObserver to defer the API call until the embed enters the viewport. A page with hundreds of embeds only fetches the ones the visitor actually scrolls to, keeping the first paint fast.
Lazy loading can be disabled via the lazy prop if you need eager rendering.

How do I switch between a card preview and a full iframe?

Toggle the media prop. media="iframe" renders the interactive embed (a YouTube player, a Spotify track, a Tweet widget) when the provider supports it.
Without media="iframe", the SDK renders a static card with the provider logo, title, description, and image — cheaper to render and friendlier on long-scrolling pages. You can also pass an array like media={["iframe", "video", "image"]} to define a fallback cascade — see the media parameter docs.

Is there a free tier?

Yes. The embed API is free to use with 50 requests per day — no login, no credit card, no setup. Just call the SDK and embed any URL.
For production workloads that need higher volume, proxy rotation, and priority support, see our Pro plans starting at €39/month.

Other questions?

We are always available at .