Link preview API: title, description and og:image for a list of URLs
You have a list of links and want a preview card for each one: title, description, image, site name and icon. Here are the free ways to do it, and the tool we built for bulk lists.
Disclosure: these are our own tools, published by Rowfield Data on Apify, built and operated with an AI agent.
Free options first
- Read the tags yourself: link previews come from
<meta>tags in the page's<head>. The Open Graph protocol names four required properties:og:title,og:type,og:imageandog:url. Fetch the page and read those tags (plustwitter:*and the plain<title>). Fine for a few links, or if you already run your own server. - Open-source library: in Node.js, open-graph-scraper (MIT license, on npm) reads Open Graph and Twitter card tags for you.
- Free API tiers (read from each vendor's pricing page on 2026-11-02):
- Microlink Free plan: 25 requests per day, no card, with a free API key.
- OpenGraph.io Free plan: 100 requests, no credit card required.
- LinkPreview.net Free plan: 60 requests per hour, personal use only.
If one of these covers you, use it.
The gap this tool fills
The free paths stop at small volumes, need your own fetch code and server, or are for personal use only. The paid plans of those APIs are monthly subscriptions. Our tool is for a list of URLs you want to run now, with no subscription:
- Up to 5,000 URLs per run, one row per URL, exported as CSV, JSON or Excel or read through the API
- Pay only for previews that load; failed, blocked and non-HTML URLs are free status rows
- robots.txt read first for every host, one request at a time per host
- Works as an MCP tool for AI agents through Apify's MCP server
What you get per URL
Our Link Preview & Open Graph API on Apify returns:
title,descriptionogTitle,ogDescription,ogImage(absolute URL),ogImageAlt,ogType,ogSiteName,ogUrl,ogLocaletwitterCard,twitterTitle,twitterDescription,twitterImage,twitterSitefavicon,canonical,lang,themeColorfinalUrl,statusCode,redirectCount,contentType,fetchedAt, anderror/messagefor status rows
Not collected: author tags, e-mail addresses, phone numbers or person names.
How to get previews for a list of URLs
- Open the actor on Apify and paste your
urls. A bare domain likepython.orgbecomeshttps://python.org/. - Optional:
maxUrlscaps the run and your cost (default 100, up to 5,000). - Run, then export as CSV, JSON or Excel, or read the dataset through the API.
Example input:
{"urls": ["https://www.python.org/", "https://github.com/"], "maxUrls": 100}
From an AI agent (MCP): https://mcp.apify.com?tools=founder-experiment/link-preview-open-graph-api. More client configs are in github.com/bnjmnsmith6/rowfield-data-mcp.
Price
Pay per result: $0.80 per 1,000 previews ($0.0008 per preview) plus $0.00005 per run start. Platform usage is included. A preview is charged only when the page loads as HTML and has a title, description, Open Graph or Twitter tag. These rows are free: invalid or private address, blocked by robots.txt, timeout or network error, HTTP 4xx or 5xx, not an HTML page, more than 3 redirects, or no title or meta tags at all.
For comparison (vendor pricing pages, read 2026-11-02): OpenGraph.io Developer is $25 per month for 50,000 credits, then $1.00 per 1,000; Microlink Pro is $49 per month for 46,000 requests (about $1.07 per 1,000). If you send more than about 31,000 URLs every month, a monthly OpenGraph.io plan can cost less per URL than this tool. Prices change; check before you rely on them.
Limits
- No JavaScript rendering. It reads the HTML the server sends, so sites that add meta tags only with JavaScript may return fewer fields.
- Some sites block automated requests or disallow bots in robots.txt. Those URLs come back as free status rows.
- The og:image URL is returned as the page declares it (made absolute). The image is not downloaded or checked.
- Up to 5,000 URLs per run; split bigger lists into several runs.
- Not affiliated with or endorsed by Microlink, OpenGraph.io, LinkPreview.net or the Open Graph protocol project.
Related: get a company logo from a domain and sitemap to CSV (to build the URL list first).