Blog

Why we built a free link preview API

We made a free link preview API because the existing ones are either expensive or broken

Jonathan Bree



Get structured metadata for any URL with a single GET request. Free up to 20,000 previews per month. No headless browser, no HTML parsing, no Puppeteer.


Link previews are one of those things that should be simple. You have a URL, you want the title, description, image, and favicon so you can render a card in your app. Slack does it, iMessage does it, Twitter does it. It should be a solved problem.

It is not. Building it yourself means dealing with sites that load metadata via JavaScript after the initial page render, sites that block scrapers, sites that do not follow Open Graph standards, images that are missing or the wrong dimensions, redirects that go three levels deep, and edge cases that keep appearing months after you thought you were done. You end up maintaining a headless browser, a proxy rotation layer, retry logic, and a caching system for something that should have been a single API call.

The existing paid APIs are not much better. OpenGraph.io charges $15 per month for 1,000 requests. That is fine if you are a large company, but if you are building something new and just need link cards to work, it is a cost you should not have to take on before you have validated the idea.

So we built one and made it free.


What it does

Send a GET request with a URL. Get back JSON with everything you need to render a link card:

Title, description, preview image, favicon, destination URL, canonical URL, locale, and site name. Image dimensions, file size, and MIME type are included so you can validate the og:image without fetching it yourself.

That is the entire integration. One request, structured JSON, no HTML parsing on your end.


What we handle that you would otherwise have to build

JavaScript rendering. Most link preview tools fetch raw HTML and stop. If the page is a React app or a Next.js site, you get an empty title and no image. We render JavaScript automatically, so you get the metadata the user would actually see in a browser.

Anti-bot evasion. Proxy rotation, browser fingerprinting, and retry logic are handled for you. The success rate is above 95% across the web, including sites that block basic scrapers.

Content provider integrations. YouTube, Amazon, Twitter, Airbnb, The Guardian, SoundCloud, NYT, Vimeo, Giphy, and others have purpose-built integrations that return reliable, high-quality previews every time. These are the URLs people share most often and they are the ones that break most often with generic scraping.

Image validation. Get image width, height, file size, and MIME type in the response. Check that the og:image exists, discard images that are too small, detect portrait versus landscape orientation, all without making a second request.

Malware and adult content blocking. Pass block_content=true to filter unsafe URLs before displaying them to your users. The API returns a 424 instead of the preview.

Caching. Popular URLs return instantly from cache. First-time fetches are cached automatically for up to 24 hours. You do not need to build your own caching layer.


What it costs

Absolutely nothing, up to 20,000 link previews per month. Beyond that, a nominal charge of 0.01 credits per preview. There is no paid tier you need to unlock to get started and no credit card required.

For context, OpenGraph.io charges $15 per month for 1,000 requests. At the same volume, you would be paying $300 per month for what we give away free.


When you need more than metadata

Link Preview returns surface-level metadata. If you need the full page content as structured, searchable text chunks, that is what Extract does. Extract processes the entire page and returns JSON with text split into chunks, ready to feed into a RAG pipeline or index with Deep Search.

Same API key, different endpoint. Link Preview is often the entry point: you render the card, the user clicks through, and if your agent needs to process the full content, Extract handles it from there.


Who this is for

Chat and messaging apps that need to render rich link cards when users paste URLs. CMS editors who paste a URL into a blog post and expect a preview card to appear automatically. Bookmark managers that auto-fill title, description, and thumbnail when a user saves a URL. SEO audit tools that check whether a site has proper Open Graph tags. Email newsletters that generate preview cards for curated link roundups. Social media scheduling tools that show users how their link will render before they publish.

If your app handles URLs from the open internet and needs to display something useful about them, this is what it is for.


Get started

bash

curl "https://api.exabase.io/v2/link?url=https://example.com" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.exabase.io/v2/link?url=https://example.com" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.exabase.io/v2/link?url=https://example.com" \
  -H "Authorization: Bearer YOUR_API_KEY"

Free, no credit card. Sign up at exabase.io, copy your API key from the dashboard, and start making requests.


Links:

Cut your token spend and give your agent precise context.

Get started in minutes.

Cut your token spend and give your agent precise context.

Get started in minutes.