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.
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.
YouTube
TikTok
Vimeo
Reddit
Behance
Replit
Twitch
Observable
SlideShare
Imgur
YouTube
TikTok
Vimeo
Reddit
Behance
Replit
Twitch
Observable
SlideShare
Imgur
Spotify
GitHub
SoundCloud
Pinterest
Medium
TED
Mixcloud
Wistia
Kickstarter
Bandcamp
Spotify
GitHub
SoundCloud
Pinterest
Medium
TED
Mixcloud
Wistia
Kickstarter
Bandcamp
Instagram
CodeSandbox
Figma
Flickr
Sketchfab
Dailymotion
Giphy
Loom
DeviantArt
Instagram
CodeSandbox
Figma
Flickr
Sketchfab
Dailymotion
Giphy
Loom
DeviantArt
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
Spotify iframe embed
Instagram iframe embed
X (Twitter) iframe embed
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
Everything in Free
Priority email support
Cancel anytime · No setup fees
Free
Try the API in seconds. No card.
$0
/month
50 requests per day
50 requests / day
Screenshot, PDF, SDK
Enterprise
Dedicated infra for high-volume.
Custom
From $585 / month
Everything in Pro
Custom SLA & DPA available
Need more details?
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'
/>Built on open source,
trusted by developers
The Microlink embed API and SDK are powered by battle-tested open source libraries used by thousands of developers worldwide. Read the source, fork it, ship a PR.
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.
oEmbed
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.
Which providers does Microlink support out of the box?
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
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.Can Microlink preview URLs behind Cloudflare, antibot walls, or CAPTCHAs?
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
styled-components
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
hello@microlink.io
.