Microlink

App · Utilities · 15 actions

Open any web page in a real browser on Microlink's servers and get what you need from it: the metadata a link preview shows, a screenshot, a PDF or a short video, its content as Markdown, text or HTML, values picked out with CSS selectors, its links, images and email addresses, its logo, video and audio, its embed code, the technologies it is built with, a Lighthouse audit, or what your own JavaScript returns. Works without an API key on Microlink's free plan, whose 25 requests a day are shared across Lodol; add a Pro key for requests of your own.

Actions

ActionWhat it does
Detect a website's technologiesFind out what a website is built with, such as its framework, hosting, CDN, analytics and payment tools, each with how sure the detection is and what kind of technology it is.
Extract data from a pagePick values out of any page with CSS selectors, each under the name you give it, such as a product's name and price: its text, its link, or any attribute, from the first match or every match.
Find email addresses on a pageFind every email address written on a page, in its links or its text, once each, from the whole page or one part of it such as its footer.
Generate a PDF of a pagePrint any page to PDF in a real browser, on the paper size, orientation, margins and scale you choose, all pages or a range of them, styled for print or as it looks on screen.
Get a page's contentGet the content of any page as Markdown, plain text or HTML, the whole page or one part of it picked by a CSS selector.
Get a page's metadataGet what a link preview shows for any page: its title, description, picture, logo, author, publisher, date and language, gathered from its Open Graph, Twitter and JSON-LD tags and its HTML, with the HTTP status it answered and any redirects.
Get a page's video and audioGet the main video and audio of a page as direct links a player or a download can use, with their length, size and format.
Get a website's logoGet the logo of the site a page belongs to: the icon it declares for itself, such as its Apple touch icon, or the one Microlink finds when it declares none.
Get embed codeGet the site's own embed HTML for a video, post, track or document, from YouTube, Vimeo, X, Spotify, TikTok, CodePen and hundreds of other sites that offer one (oEmbed), sized to fit if you like.
Get the images on a pageGet every image on a page as a full address, once each, in page order, from the whole page or one part of it.
Get the links on a pageGet every link on a page as a full address, once each, in page order: all of them, only those to the same site, or only those to other sites, from the whole page or one part of it.
Record a video of a pageRecord a short video of a page, up to 10 seconds, as it loads and plays its animations, as MP4 or WebM.
Run a Lighthouse auditAudit a page with Google Lighthouse, on a phone or a desktop: its performance, accessibility, best practices, SEO and agentic browsing scores out of 100, its Core Web Vitals, and each audit that did not pass, worst first.
Run JavaScript on a pageOpen a page in a browser on Microlink's servers and run your own JavaScript function against it, with Puppeteer's page to click, type, wait and read, and get back what it returns and what it logged.
Take a screenshotTake a screenshot of any page in a real browser: the visible part or the whole page, or one element of it, as PNG or JPEG, on a phone, tablet or desktop, in light or dark mode, optionally framed in a browser window.

Detect a website's technologies

Find out what a website is built with, such as its framework, hosting, CDN, analytics and payment tools, each with how sure the detection is and what kind of technology it is. Detection is by Wappalyzer.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

categorieslist
Every category among them, alphabetically, e.g. ['Analytics', 'CDN'].
countnumber
How many technologies were detected.
nameslist
Just the names, e.g. ['Vercel', 'React', 'Next.js'].
technologieslist
Each technology detected, as Wappalyzer names it.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "categories": [
    "Analytics",
    "CDN",
    "JavaScript frameworks",
    "Miscellaneous",
    "PaaS",
    "Security",
    "Static site generator",
    "Web frameworks",
    "Web servers"
  ],
  "count": 8,
  "names": [
    "Amazon Web Services",
    "Vercel",
    "React",
    "Next.js",
    "Linkedin Insight Tag",
    "HSTS",
    "Amazon S3",
    "Webpack"
  ],
  "technologies": [
    {
      "categories": [
        "PaaS"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/Amazon%20Web%20Services.svg",
      "name": "Amazon Web Services",
      "website": "https://aws.amazon.com/"
    },
    {
      "categories": [
        "PaaS"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/vercel.svg",
      "name": "Vercel",
      "website": "https://vercel.com"
    },
    {
      "categories": [
        "JavaScript frameworks"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/React.svg",
      "name": "React",
      "website": "https://reactjs.org"
    },
    {
      "categories": [
        "JavaScript frameworks",
        "Web frameworks",
        "Web servers",
        "Static site generator"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/Next.js.svg",
      "name": "Next.js",
      "website": "https://nextjs.org"
    },
    {
      "categories": [
        "Analytics"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/Linkedin.svg",
      "name": "Linkedin Insight Tag",
      "website": "https://business.linkedin.com/marketing-solutions/insight-tag"
    },
    {
      "categories": [
        "Security"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/default.svg",
      "name": "HSTS",
      "website": "https://www.rfc-editor.org/rfc/rfc6797#section-6.1"
    },
    {
      "categories": [
        "CDN"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/Amazon%20S3.svg",
      "name": "Amazon S3",
      "website": "https://aws.amazon.com/s3/"
    },
    {
      "categories": [
        "Miscellaneous"
      ],
      "confidence": 100,
      "icon": "https://www.wappalyzer.com/images/icons/Webpack.svg",
      "name": "Webpack",
      "website": "https://webpack.js.org/"
    }
  ],
  "url": "https://vercel.com/"
}

Extract data from a page

Pick values out of any page with CSS selectors, each under the name you give it, such as a product's name and price: its text, its link, or any attribute, from the first match or every match. A full Microlink rule can be given for anything more.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
FieldsfieldsobjectRequired
Each value to extract, by the name to give it and the CSS selector that finds it, e.g. title: h1, price: .price. For more, give a Microlink rule as JSON instead of a selector, e.g. {"selectorAll": "a", "attr": "href", "type": "url"}. Up to 50.
Readattributetext
What to read from the elements a selector finds. Its text by default. A rule given as JSON says its own.One of: text (Its text), html (Its HTML), markdown (Its content as Markdown), href (Its link (href)), src (Its source (src), for an image or video), content (Its content attribute, for a meta tag), val (Its current value, for a form field). Default: text.
Every matchall_matchestrue/false
Get a list of every element each selector finds, instead of the first one.Default: false.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Wait for elementwait_for_selectortext
Optional. A CSS selector to wait for before going on, e.g. 'main' or '.price', for content that appears after the page loads.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

dataobject
Each field by the name it was given, e.g. {'name': 'Walnut desk', 'price': '$249'}. A field whose selector matched nothing is null, or [] when it takes every match.
foundnumber
How many fields found something.
missinglist
The names of the fields that found nothing.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "data": {
    "heading": "Herman Melville - Moby-Dick",
    "sidebar": null
  },
  "found": 1,
  "missing": [
    "sidebar"
  ],
  "url": "https://httpbin.org/html"
}

Find email addresses on a page

Find every email address written on a page, in its links or its text, once each, from the whole page or one part of it such as its footer. Addresses disguised as 'name [at] domain' or drawn as pictures are not found.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Only this partselectortext
Optional. A CSS selector for the part to search, e.g. 'footer'. The whole page by default.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Wait for elementwait_for_selectortext
Optional. A CSS selector to wait for before going on, e.g. 'main' or '.price', for content that appears after the page loads.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

countnumber
How many email addresses there are.
emailslist
Each email address found, once each, e.g. ['hello@microlink.io']. Placeholders written on the page, such as 'you@domain.com' in a form, are found too.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "count": 2,
  "emails": [
    "hello@microlink.io",
    "you@domain.com"
  ],
  "url": "https://microlink.io/"
}

Generate a PDF of a page

Print any page to PDF in a real browser, on the paper size, orientation, margins and scale you choose, all pages or a range of them, styled for print or as it looks on screen. Returns a public link and saves the PDF as a file.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Paper sizepaper_sizetext
A4 by default.One of: Letter (Letter (8.5 x 11 in)), Legal (Legal (8.5 x 14 in)), Tabloid (Tabloid (11 x 17 in)), Ledger (Ledger (17 x 11 in)), A0, A1, A2, A3, A4 (A4 (8.27 x 11.7 in)), A5, A6. Default: A4.
Landscapelandscapetrue/false
Print across the page rather than down it.Default: false.
Marginsmargintext
Optional. The margin on every side, with its unit: e.g. 1cm, 10mm, 0.5in or 20px. 0.35cm by default.
Scalescalenumber
Optional. How large to print the page, from 0.1 to 2. 0.6 by default; 1 is actual size.From 0.1 to 2.
Pagespage_rangestext
Optional. Which pages to keep, e.g. '1-5, 8, 11-13', or '5-' for page 5 to the end. All of them by default.
Stylemedia_typetext
Print uses the site's print styles, as a browser's Print does. Screen keeps the page as it looks in the browser.One of: print (Print, as the site styles it for printing), screen (Screen, as it looks in a browser). Default: print.
Print backgroundsprint_backgroundtrue/false
Include background colors and images.Default: false.
Click firstclicktext
Optional. A CSS selector of something to click before capturing, e.g. a cookie banner's accept button, '#accept-cookies'.
Hide elementshidetext
Optional. CSS selectors of things to hide, separated by commas, e.g. 'header, .chat-widget'.
Wait for elementwait_for_selectortext
Optional. A CSS selector to wait for before going on, e.g. 'main' or '.price', for content that appears after the page loads.
Wait (seconds)wait_secondsnumber
Optional. Seconds to wait after the page loads, for animations or late content. Microlink stops at 30 seconds in all on the free plan.From 0 to 30.
Save the PDF as a filesave_as_filetrue/false
Save the PDF to Lodol, ready to attach to an email or upload in a later step. On by default, as Microlink's link lasts only while it keeps the answer (24 hours on the free plan). Turn it off when the link is all you need.Default: true.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

content_typetext
The saved file's type, e.g. image/png, or ''.
document_reftext
The saved file's document reference, or ''.
documentslist
The saved file as a document. Empty when it was not saved.
file_size_bytesnumber
The saved file's size in bytes, or 0.
file_urltext
A URL that serves the saved file, or ''.
page_urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
saved_as_filetrue/false
True when the file was saved to Lodol, ready to attach to a later step. The file fields below are empty otherwise.
sizenumber
Its size in bytes.
size_prettytext
Its size for people, e.g. '18 kB'.
urltext
A public link to the PDF. Microlink hosts it for as long as it caches the answer, 24 hours on the free plan, so keep the saved file for anything later than that.
Example output
{
  "content_type": "application/pdf",
  "document_ref": "doc_0123456789abcdef0123456789abcdef",
  "documents": [
    {
      "content_type": "application/pdf",
      "document_ref": "doc_0123456789abcdef0123456789abcdef",
      "filename": "page-example.com.pdf",
      "size_bytes": 18042,
      "url": "/actions/core/serve-document/doc_0123456789abcdef0123456789abcdef?teamId=team"
    }
  ],
  "file_size_bytes": 18042,
  "file_url": "/actions/core/serve-document/doc_0123456789abcdef0123456789abcdef?teamId=team",
  "page_url": "https://example.com/",
  "saved_as_file": true,
  "size": 18042,
  "size_pretty": "18 kB",
  "url": "https://iad.microlink.io/mwjXedwrSnq0tbqLLD0LRvlEEZMKhwG2sjtp_KXR3yzXY6fVgbgwzEWBtiNHsQ5UTBUoJ6_pNyh4UYF66wfCrg.pdf"
}

Get a page's content

Get the content of any page as Markdown, plain text or HTML, the whole page or one part of it picked by a CSS selector. Markdown keeps headings, links, lists and tables, which suits an AI step. Also reads PDFs and Word, Excel and PowerPoint files by their address.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Formatformattext
Markdown by default.One of: markdown, text (Plain text), html. Default: markdown.
Only this partselectortext
Optional. A CSS selector for the part to read, e.g. 'article' or 'main', leaving out menus and footers. The whole page by default.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Wait for elementwait_for_selectortext
Optional. A CSS selector to wait for before going on, e.g. 'main' or '.price', for content that appears after the page loads.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

charactersnumber
How many characters it has.
contenttext
The page's content in that format, or ''. Markdown keeps headings, links, lists and tables, which suits an AI step.
formattext
The format it is in: 'markdown', 'text' or 'html'.
foundtrue/false
False when there was nothing to read, such as a CSS selector that matched nothing on the page.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "characters": 390,
  "content": "## Table of Contents\n\n- [Herman Melville - Moby-Dick](#herman-melville---moby-dick)\n\n---\n\n## Herman Melville - Moby-Dick\n\nAvailing himself of the mild, summer-cool weather that now reigned in these latitudes, and in preparation for the peculiarly active pursuits shortly to be anticipated, Perth, the begrimed, blistered old blacksmith, had not removed his portable forge to the hold again.",
  "format": "markdown",
  "found": true,
  "url": "https://httpbin.org/html"
}

Get a page's metadata

Get what a link preview shows for any page: its title, description, picture, logo, author, publisher, date and language, gathered from its Open Graph, Twitter and JSON-LD tags and its HTML, with the HTTP status it answered and any redirects. Optionally with each picture's colors.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Include colorsinclude_colorstrue/false
Also get each picture's colors: its palette, and a background and a text color that read well together, e.g. for a card in the site's colors.Default: false.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

authortext
Who wrote it, when the page says, or ''.
datetext
When it was published, in ISO 8601, e.g. '2026-09-22T09:33:36.000Z', or '' when the page gives no date.
descriptiontext
The description the page gives itself, or ''.
has_imagetrue/false
True when the page names a picture that represents it.
has_logotrue/false
True when a logo was found for the site.
imageobject
The picture that represents the page, as a link preview shows it (its Open Graph image, say).
langtext
Its language as a two-letter code, e.g. 'en', or ''.
logoobject
The site's logo.
publishertext
The site's name, e.g. 'GitHub', or ''.
redirectslist
Each redirect followed on the way to the page, in order. Empty when there were none.
status_codenumber
The HTTP status the page answered with, e.g. 200. A page that answers 404 is still read, so check it: its metadata is then the error page's.
titletext
The page's title, e.g. 'microlink.io', or '' when it has none.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "author": "",
  "date": "",
  "description": "Browser as API. microlink.io has 61 repositories available. Follow their code on GitHub.",
  "has_image": true,
  "has_logo": true,
  "image": {
    "alternative_color": "",
    "background_color": "",
    "color": "",
    "height": 280,
    "palette": [],
    "size": 4924,
    "size_pretty": "4.92 kB",
    "type": "jpg",
    "url": "https://avatars.githubusercontent.com/u/29799436?s=280&v=4",
    "width": 280
  },
  "lang": "en",
  "logo": {
    "alternative_color": "",
    "background_color": "",
    "color": "",
    "height": 180,
    "palette": [],
    "size": 21128,
    "size_pretty": "21.1 kB",
    "type": "png",
    "url": "https://github.githubassets.com/assets/apple-touch-icon-180x180-a80b8e11abe2.png",
    "width": 180
  },
  "publisher": "GitHub",
  "redirects": [],
  "status_code": 200,
  "title": "microlink.io",
  "url": "https://github.com/microlinkhq"
}

Get a page's video and audio

Get the main video and audio of a page as direct links a player or a download can use, with their length, size and format. Works for pages and links that serve a media file; YouTube and Vimeo videos need Microlink's Pro plan.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

audioobject
The page's main audio.
has_audiotrue/false
True when audio was found.
has_videotrue/false
True when a video was found.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
videoobject
The page's main video.
Example output
{
  "audio": {
    "duration_pretty": "",
    "duration_seconds": 0.0,
    "height": 0,
    "size": 0,
    "size_pretty": "",
    "type": "",
    "url": "",
    "width": 0
  },
  "has_audio": false,
  "has_video": true,
  "url": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
  "video": {
    "duration_pretty": "5s",
    "duration_seconds": 5.0,
    "height": 540,
    "size": 1128375,
    "size_pretty": "1.13 MB",
    "type": "mp4",
    "url": "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
    "width": 960
  }
}

Get the logo of the site a page belongs to: the icon it declares for itself, such as its Apple touch icon, or the one Microlink finds when it declares none. Returns a link to it, its size and type, optionally its colors, and the logo as a file to attach if you need one.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Include colorsinclude_colorstrue/false
Also get each picture's colors: its palette, and a background and a text color that read well together, e.g. for a card in the site's colors.Default: false.
Save the logo as a filesave_as_filetrue/false
Off by default, because the link is all an email, a chat message or a web page needs. Turn it on when a later step needs the logo as a file: attaching it, uploading it or posting it.Default: false.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

content_typetext
The saved file's type, e.g. image/png, or ''.
document_reftext
The saved file's document reference, or ''.
documentslist
The saved file as a document. Empty when it was not saved.
file_size_bytesnumber
The saved file's size in bytes, or 0.
file_urltext
A URL that serves the saved file, or ''.
has_logotrue/false
True when a logo was found for the site.
logoobject
The site's logo: the icon it declares for itself (its Apple touch icon, else a favicon it declares), or the logo Microlink finds when it declares none. Every field is empty when none was found.
saved_as_filetrue/false
True when the file was saved to Lodol, ready to attach to a later step. The file fields below are empty otherwise.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "content_type": "",
  "document_ref": "",
  "documents": [],
  "file_size_bytes": 0,
  "file_url": "",
  "has_logo": true,
  "logo": {
    "alternative_color": "#E9E6FF",
    "background_color": "#543CFC",
    "color": "#010005",
    "height": 180,
    "palette": [
      "#543CFC",
      "#DEDAFC",
      "#4C33FB",
      "#3D0AFC",
      "#A49CFC",
      "#9189FC"
    ],
    "size": 3143,
    "size_pretty": "3.14 kB",
    "type": "png",
    "url": "https://images.stripeassets.com/fzn2n1nzq965/4vVgZi0ZMoEzOhkcv7EVwK/8cce6fdcf2733b2ec8e99548908847ed/favicon.png?w=180&h=180",
    "width": 180
  },
  "saved_as_file": false,
  "url": "https://stripe.com"
}

Get embed code

Get the site's own embed HTML for a video, post, track or document, from YouTube, Vimeo, X, Spotify, TikTok, CodePen and hundreds of other sites that offer one (oEmbed), sized to fit if you like.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Maximum widthmax_widthnumber
Optional. The widest the embed may be, in pixels. Each site decides whether to honour it.From 50 to 4000.
Maximum heightmax_heightnumber
Optional. The tallest the embed may be, in pixels.From 50 to 4000.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

has_embedtrue/false
False when the site offers no embed for the page. Sites that do include YouTube, Vimeo, X, Spotify, TikTok and hundreds more.
htmltext
The site's own embed HTML, e.g. '<iframe width="200" height="113" src="https://www.youtube.com/embed/9P6rdqiybaw?feature=oembed" ...></iframe>', or ''.
scriptslist
Scripts the HTML needs, such as X's widgets.js. Empty for an iframe, which needs none.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "has_embed": true,
  "html": "<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/9P6rdqiybaw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"Wormholes Explained \u2013 Breaking Spacetime\"></iframe>",
  "scripts": [],
  "url": "https://www.youtube.com/watch?v=9P6rdqiybaw&app=desktop"
}

Get the images on a page

Get every image on a page as a full address, once each, in page order, from the whole page or one part of it. Images a page loads late can be read from their own attribute.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Images matchingselectortext
Optional. A CSS selector for the images to take, e.g. 'article img'. Every <img> on the page by default.
Address attributeattributetext
Optional. The attribute holding each image's address. src by default; a gallery that loads late often keeps it in data-src.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Wait for elementwait_for_selectortext
Optional. A CSS selector to wait for before going on, e.g. 'main' or '.price', for content that appears after the page loads.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

countnumber
How many images there are.
imageslist
Each image as a full address, once each, in page order, e.g. ['https://cdn.microlink.io/logo/logo.svg'].
skipped_embeddednumber
How many images were embedded in the page as data: URIs, which are not links and are left out.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "count": 2,
  "images": [
    "https://cdn.microlink.io/logo/logo.svg",
    "https://iad.microlink.io/PQVxwViz_KtUqCuOXuFazHffjOsbysAboiXzLHAFjz5ijiOsepjPvQAfQGFQZkc7N1Y-wV8qbojMKsVAbIfvZg.png"
  ],
  "skipped_embedded": 1,
  "url": "https://microlink.io/"
}

Get every link on a page as a full address, once each, in page order: all of them, only those to the same site, or only those to other sites, from the whole page or one part of it.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Which linkswhichtext
Every link by default. This site means the page's own host, with or without www; a subdomain counts as another site.One of: all (Every link), same_site (Only links to this site), other_sites (Only links to other sites). Default: all.
Links matchingselectortext
Optional. A CSS selector for the links to take, e.g. 'nav a' or 'article a'. Every <a> on the page by default.
Open in a browserrendertext
Whether Microlink runs the page's JavaScript in a browser before reading it. Let Microlink decide, unless a page that builds itself with JavaScript comes back empty (Always), or a plain page should be read faster (Never).One of: auto (Let Microlink decide (recommended)), always (Always, for pages that build themselves with JavaScript), never (Never, which is faster for plain pages). Default: auto.
Wait for elementwait_for_selectortext
Optional. A CSS selector to wait for before going on, e.g. 'main' or '.price', for content that appears after the page loads.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

countnumber
How many links there are.
linkslist
Each link as a full address, once each, in page order, e.g. ['https://microlink.io/pricing', 'https://cal.com/microlink/15min']. mailto: and javascript: links are left out.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
Example output
{
  "count": 8,
  "links": [
    "https://microlink.io/#main-content",
    "https://microlink.io/",
    "https://microlink.io/tools",
    "https://microlink.io/docs/api/getting-started/overview",
    "https://microlink.io/pricing",
    "https://cal.com/microlink/15min",
    "https://dashboard.microlink.io/login",
    "https://microlink.io/api"
  ],
  "url": "https://microlink.io/"
}

Record a video of a page

Record a short video of a page, up to 10 seconds, as it loads and plays its animations, as MP4 or WebM. Returns a public link and saves the video as a file.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Length (seconds)duration_secondsnumber
How long to record, from 1 to 10 seconds. 5 by default. The recording starts as the page starts loading.From 1 to 10. Default: 5.
Frame rateframe_ratetext
Frames per second. 30 by default.One of: 15 (15 fps), 30 (30 fps), 60 (60 fps). Default: 30.
Video formatformattext
MP4 by default, which plays almost everywhere.One of: mp4 (MP4 (H.264)), webm (WebM (VP9)). Default: mp4.
Devicedevicetext
The device to look like: its screen size, pixel density and browser. Macbook Pro 13 by default.One of: Macbook Pro 13, Macbook Pro 15, Macbook Pro 16, iMac 21, iMac 21 4K, iMac 24 4.5K, iMac 27, iMac 27 5K, iPhone 15 Pro Max, iPhone 15 Pro, and 28 more. Default: Macbook Pro 13.
Color schemecolor_schemetext
Show the page in light or dark mode, for sites that have both.One of: no-preference (The page's default), light, dark. Default: no-preference.
Click firstclicktext
Optional. A CSS selector of something to click before capturing, e.g. a cookie banner's accept button, '#accept-cookies'.
Hide elementshidetext
Optional. CSS selectors of things to hide, separated by commas, e.g. 'header, .chat-widget'.
Block ads and cookie bannersblock_adstrue/false
Leave out ads, trackers and cookie banners. On by default.Default: true.
Save the video as a filesave_as_filetrue/false
Save the video to Lodol, ready to attach to an email or upload in a later step. On by default, as Microlink's link lasts only while it keeps the answer (24 hours on the free plan). Turn it off when the link is all you need.Default: true.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

content_typetext
The saved file's type, e.g. image/png, or ''.
document_reftext
The saved file's document reference, or ''.
documentslist
The saved file as a document. Empty when it was not saved.
duration_prettytext
How long it plays, for people, e.g. '5s'.
duration_secondsnumber
How long it plays, in seconds, e.g. 5.
file_size_bytesnumber
The saved file's size in bytes, or 0.
file_urltext
A URL that serves the saved file, or ''.
frame_ratenumber
Its frames per second, e.g. 30.
heightnumber
Its height in pixels, e.g. 800.
page_urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
saved_as_filetrue/false
True when the file was saved to Lodol, ready to attach to a later step. The file fields below are empty otherwise.
sizenumber
Its size in bytes.
size_prettytext
Its size for people, e.g. '159 kB'.
still_urltext
A public link to a still screenshot of the page, taken with the recording.
typetext
The video's format: 'mp4' or 'webm'.
urltext
A public link to the video. Microlink hosts it for as long as it caches the answer, 24 hours on the free plan, so keep the saved file for anything later than that.
widthnumber
Its width in pixels, e.g. 1280.
Example output
{
  "content_type": "video/mp4",
  "document_ref": "doc_0123456789abcdef0123456789abcdef",
  "documents": [
    {
      "content_type": "video/mp4",
      "document_ref": "doc_0123456789abcdef0123456789abcdef",
      "filename": "recording-httpbin.org.mp4",
      "size_bytes": 159286,
      "url": "/actions/core/serve-document/doc_0123456789abcdef0123456789abcdef?teamId=team"
    }
  ],
  "duration_pretty": "2s",
  "duration_seconds": 2.0,
  "file_size_bytes": 159286,
  "file_url": "/actions/core/serve-document/doc_0123456789abcdef0123456789abcdef?teamId=team",
  "frame_rate": 15,
  "height": 800,
  "page_url": "https://httpbin.org/html",
  "saved_as_file": true,
  "size": 159286,
  "size_pretty": "159 kB",
  "still_url": "https://iad.microlink.io/QomPlxFy3c_dpOmPxA1ONkMC8lxjqKuvFX8rl7Bl65a_QPg3qjkYf1B5DD7yvc9z7i6qBiwtjUf5syDdwf6ZxA.png",
  "type": "mp4",
  "url": "https://iad.microlink.io/H2nNApZ1ki7wcuXEFBNhkzbC1nC9AahnXLPC3ftMLsDJYBvofgbN7Zi85OLObZ2vtd4RbydB_YXOZRLcbN7VXg.mp4",
  "width": 1280
}

Run a Lighthouse audit

Audit a page with Google Lighthouse, on a phone or a desktop: its performance, accessibility, best practices, SEO and agentic browsing scores out of 100, its Core Web Vitals, and each audit that did not pass, worst first.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Categoriescategorieslist
Which categories to audit. All of them by default; fewer is faster.One or more of: performance, accessibility, best-practices (Best Practices), seo, agentic-browsing (Agentic Browsing).
Audit asdevicetext
Mobile, Lighthouse's default, emulates a mid-range phone on a slower network. Desktop audits a desktop browser.One of: mobile (Mobile (Lighthouse's default)), desktop. Default: mobile.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

devicetext
What it was audited as: 'mobile' or 'desktop'.
failed_auditslist
Each audit that did not pass, worst first, up to 100.
failed_countnumber
How many audits did not pass.
fetched_attext
When the page was audited, in ISO 8601.
lighthouse_versiontext
The Lighthouse version that ran, e.g. '13.5.0'.
metricsobject
The Core Web Vitals and other speed measures, when Performance was run.
scoresobject
Each category's score out of 100, as Lighthouse reports it.
urltext
The page audited, after any redirects.
warningslist
Anything Lighthouse warned about while running.
Example output
{
  "device": "mobile",
  "failed_audits": [
    {
      "category": "accessibility",
      "display_value": "",
      "id": "document-title",
      "score": 0,
      "title": "Document doesn't have a `<title>` element"
    },
    {
      "category": "accessibility",
      "display_value": "",
      "id": "html-has-lang",
      "score": 0,
      "title": "`<html>` element does not have a `[lang]` attribute"
    },
    {
      "category": "accessibility",
      "display_value": "",
      "id": "landmark-one-main",
      "score": 0,
      "title": "Document does not have a main landmark."
    },
    {
      "category": "best-practices",
      "display_value": "",
      "id": "errors-in-console",
      "score": 0,
      "title": "Browser errors were logged to the console"
    },
    {
      "category": "seo",
      "display_value": "",
      "id": "document-title",
      "score": 0,
      "title": "Document doesn't have a `<title>` element"
    },
    {
      "category": "seo",
      "display_value": "",
      "id": "meta-description",
      "score": 0,
      "title": "Document does not have a meta description"
    },
    {
      "category": "agentic-browsing",
      "display_value": "",
      "id": "agent-accessibility-tree",
      "score": 0,
      "title": "Accessibility tree is not well-formed"
    },
    {
      "category": "performance",
      "display_value": "Est savings of 2 KiB",
      "id": "document-latency-insight",
      "score": 50,
      "title": "Document request latency"
    },
    {
      "category": "performance",
      "display_value": "",
      "id": "viewport-insight",
      "score": 50,
      "title": "Optimize viewport for mobile"
    },
    {
      "category": "performance",
      "display_value": "140 ms",
      "id": "max-potential-fid",
      "score": 86,
      "title": "Max Potential First Input Delay"
    }
  ],
  "failed_count": 10,
  "fetched_at": "2026-09-29T22:27:13.280Z",
  "lighthouse_version": "13.5.0",
  "metrics": {
    "cumulative_layout_shift": {
      "display_value": "0",
      "score": 100,
      "unit": "unitless",
      "value": 0.0
    },
    "first_contentful_paint": {
      "display_value": "0.8 s",
      "score": 100,
      "unit": "millisecond",
      "value": 755.6555
    },
    "largest_contentful_paint": {
      "display_value": "0.8 s",
      "score": 100,
      "unit": "millisecond",
      "value": 755.6555
    },
    "speed_index": {
      "display_value": "0.8 s",
      "score": 100,
      "unit": "millisecond",
      "value": 755.6555
    },
    "time_to_interactive": {
      "display_value": "0.9 s",
      "score": 100,
      "unit": "millisecond",
      "value": 896.7555
    },
    "total_blocking_time": {
      "display_value": "90 ms",
      "score": 99,
      "unit": "millisecond",
      "value": 91.0
    }
  },
  "scores": {
    "accessibility": 54,
    "agentic_browsing": 50,
    "best_practices": 96,
    "performance": 100,
    "seo": 82
  },
  "url": "https://httpbin.org/html",
  "warnings": []
}

Run JavaScript on a page

Open a page in a browser on Microlink's servers and run your own JavaScript function against it, with Puppeteer's page to click, type, wait and read, and get back what it returns and what it logged. On the free plan code can be up to 1,024 bytes and run for 15 seconds.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
FunctioncodetextRequired
A JavaScript function that receives { page, url } and returns a value, e.g. ({ page }) => page.title(). The page is Puppeteer's, already at the address, and page.evaluate runs code in the page itself.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

duration_msnumber
How long it took to run, in milliseconds.
logslist
What the function wrote to the console, in order.
urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
valuetext
What the function returned, of any JSON type, e.g. 'GitHub' or {'links': 42, 'images': 7}.
Example output
{
  "duration_ms": 319,
  "logs": [],
  "url": "https://httpbin.org/html",
  "value": {
    "h1": "Herman Melville - Moby-Dick",
    "paragraphs": 1
  }
}

Take a screenshot

Take a screenshot of any page in a real browser: the visible part or the whole page, or one element of it, as PNG or JPEG, on a phone, tablet or desktop, in light or dark mode, optionally framed in a browser window. Clicks, waits and hidden elements prepare the page first. Returns a public link and saves the image as a file.

Inputs

PageurltextRequired
The page to open, e.g. https://github.com/microlinkhq. An address without http:// or https:// is opened as https.
Full pagefull_pagetrue/false
Capture the whole page from top to bottom, not just what fits on the screen.Default: false.
Image formatformattext
PNG by default. JPEG makes a smaller file.One of: png, jpeg (JPEG (smaller file)). Default: png.
JPEG qualityqualitynumber
Optional. From 1 to 100, for a JPEG only: lower is a smaller file with more blur. 80 by default.From 1 to 100.
Only this elementelementtext
Optional. A CSS selector to capture just one part of the page, e.g. '#pricing' or 'main'. Microlink waits for it to appear.
Devicedevicetext
The device to look like: its screen size, pixel density and browser. Macbook Pro 13 by default.One of: Macbook Pro 13, Macbook Pro 15, Macbook Pro 16, iMac 21, iMac 21 4K, iMac 24 4.5K, iMac 27, iMac 27 5K, iPhone 15 Pro Max, iPhone 15 Pro, and 28 more. Default: Macbook Pro 13.
Color schemecolor_schemetext
Show the page in light or dark mode, for sites that have both.One of: no-preference (The page's default), light, dark. Default: no-preference.
Browser frameframetext
Show the screenshot inside a light or dark browser window, for a presentation or a social post.One of: none (No frame), light (Light browser window), dark (Dark browser window). Default: none.
Frame backgroundbackgroundtext
Optional. What the browser frame sits on: a color ('#F76698'), a CSS gradient ('linear-gradient(225deg, #FF057C, #321575)') or a picture's address.
Click firstclicktext
Optional. A CSS selector of something to click before capturing, e.g. a cookie banner's accept button, '#accept-cookies'.
Hide elementshidetext
Optional. CSS selectors of things to hide, separated by commas, e.g. 'header, .chat-widget'.
Wait for elementwait_for_selectortext
Optional. A CSS selector to wait for before going on, e.g. 'main' or '.price', for content that appears after the page loads.
Wait (seconds)wait_secondsnumber
Optional. Seconds to wait after the page loads, for animations or late content. Microlink stops at 30 seconds in all on the free plan.From 0 to 30.
Block ads and cookie bannersblock_adstrue/false
Leave out ads, trackers and cookie banners. On by default.Default: true.
Save the screenshot as a filesave_as_filetrue/false
Save the screenshot to Lodol, ready to attach to an email or upload in a later step. On by default, as Microlink's link lasts only while it keeps the answer (24 hours on the free plan). Turn it off when the link is all you need.Default: true.
Fetch a fresh copyskip_cachetrue/false
Microlink keeps each answer for 24 hours and hands it back for the same request. Turn this on to open the page again, e.g. to watch a price that changes. It is slower.Default: false.

Outputs

content_typetext
The saved file's type, e.g. image/png, or ''.
document_reftext
The saved file's document reference, or ''.
documentslist
The saved file as a document. Empty when it was not saved.
file_size_bytesnumber
The saved file's size in bytes, or 0.
file_urltext
A URL that serves the saved file, or ''.
heightnumber
Its height in pixels, e.g. 1600.
page_urltext
The page's address after any redirects, as Microlink opened it, e.g. 'https://github.com/microlinkhq'.
saved_as_filetrue/false
True when the file was saved to Lodol, ready to attach to a later step. The file fields below are empty otherwise.
sizenumber
Its size in bytes.
size_prettytext
Its size for people, e.g. '47.5 kB'.
typetext
The image's format: 'png' or 'jpeg'.
urltext
A public link to the screenshot, e.g. 'https://iad.microlink.io/wAhHg...png', for an email, a chat message or a web page. Microlink hosts it for as long as it caches the answer, 24 hours on the free plan, so keep the saved file for anything later than that.
widthnumber
Its width in pixels, e.g. 2560: the browser's width times the device's pixel density, and more in a browser frame, as measured from the picture.
Example output
{
  "content_type": "image/png",
  "document_ref": "doc_0123456789abcdef0123456789abcdef",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_0123456789abcdef0123456789abcdef",
      "filename": "screenshot-example.com.png",
      "size_bytes": 47548,
      "url": "/actions/core/serve-document/doc_0123456789abcdef0123456789abcdef?teamId=team"
    }
  ],
  "file_size_bytes": 47548,
  "file_url": "/actions/core/serve-document/doc_0123456789abcdef0123456789abcdef?teamId=team",
  "height": 1600,
  "page_url": "https://example.com/",
  "saved_as_file": true,
  "size": 47548,
  "size_pretty": "47.5 kB",
  "type": "png",
  "url": "https://iad.microlink.io/wAhHgoHpy9XkMWW-E1t0vMv0ToXJENm5_9MQSluK3y9KZjMu8qIiWgz9QSoAoo0LcHgq4Qg0h4Xak6sFd1Em_g.png",
  "width": 2560
}

On this page