Skip to main content

Confirm

Are you sure?

Glossary

Open Graph

Five meta tags decide what every shared link to your page looks like.

By · Last updated: September 2026

TL;DR

Open Graph is a protocol of meta tags — og:title, og:description, og:image, og:url and og:type — that a page puts in its HTML head to describe itself. Facebook, LinkedIn, Slack, Discord, iMessage and most chat apps read them to build the preview card shown when the page's link is shared.

Free plan, no credit card. 1,000 credits a month.

How it works

The tags

Facebook published the protocol in 2010 at ogp.me. Tags are <meta> elements with a property attribute (not name) in the page's <head>. Four are required by the spec; og:description is the one everyone adds anyway.

A complete set
<meta property="og:title" content="How we cut our build time in half">
<meta property="og:description" content="Three changes, measured over a month of CI runs.">
<meta property="og:image" content="https://example.com/og/build-time.png">
<meta property="og:url" content="https://example.com/blog/build-time">
<meta property="og:type" content="article">

When a link is pasted, the app's preview service fetches the URL, reads these tags and draws the card. Without them it guesses from <title>, the meta description and whatever image it finds — or shows a bare link.

In practice

What goes wrong

  • Tags added by JavaScript. Most preview fetchers read the HTML source without running scripts, so tags a client-side app inserts are invisible to them. Put them in the server response.
  • Relative image URLs. og:image must be an absolute URL.
  • Stale previews. Apps cache what they fetched; changing the tags doesn't change cards already made until the app re-fetches.
  • One set for every page. A site-wide default title and image make every shared link look the same.

URLpipe

Reading Open Graph with URLpipe

/meta returns a page's title, description, language, main image, favicon, author, feed and publication date as JSON. It prefers Open Graph: the title comes from og:title, then twitter:title, then <title>; the image from og:image, then twitter:image, then JSON-LD. URLs come back absolute.

Two honest limits. /meta returns that normalised set, not every og: tag verbatim — for the raw tags, read the <head> from /html. And it reads the rendered page, so it can find a tag that JavaScript added and a preview fetcher would miss; check the source with curl too. The Open Graph guide walks through both.

FAQ

Frequently asked questions

Which Open Graph tags are required?
The protocol requires og:title, og:type, og:image and og:url. Add og:description too — almost every preview uses it.
Why isn't my Open Graph image showing?
The usual causes: a relative URL, an image the preview fetcher can't download (blocked, too large, wrong content type), tags inserted by JavaScript, or the app still showing a cached preview.
Should I use property or name for og tags?
property, as the spec says. Many parsers accept name too, but property is the one every consumer reads.

See it on your own pages.

Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.