---
title: "oEmbed provider endpoint"
method: GET
path: "/oembed"
tags: ["Embedding"]
---

# oEmbed provider endpoint

`GET /oembed`

## Request

- Base URL: `https://everypage.co`
- URL: `https://everypage.co/oembed`
- Auth: none required

Turn a pasted EveryPage share link into an embeddable rich object (an iframe on the /embed/ path). Public and unauthenticated; rate-limited per IP (60/min). Accepts any share-link form - UUID, short id, or a vanity slug on the owner's custom domain - and the /embed/<id> form. Dead links of every kind (unknown, expired, view limit reached, unclaimed) answer a uniform 404.

## Query parameters

- `url` string, uri, required
- `format` 'json'

## Response `200`

oEmbed rich payload

- OEmbed: Standard oEmbed 1.0 rich-type response.
  - `version` string
  - `type` string
  - `provider_name` string
  - `provider_url` string
  - `title` string
  - `html` string: An <iframe> on the durable /embed/ path (short id or UUID - never the renameable slug).
  - `width` integer
  - `height` integer

## Other responses

- `400`: Missing or non-absolute `url` parameter.
- `404`: The link does not resolve to a viewable document (unknown, expired, burned or unclaimed).
- `429`: Per-IP rate limit exceeded on a public endpoint (60 requests per minute). Plain-text body; wait for `Retry-After`.
- `501`: A `format` other than json was requested.

---

[API](https://skmtc.dev/everypage/apis/everypage-api.md) · [All operations](https://skmtc.dev/everypage/apis/everypage-api/llms.txt) · [OpenAPI document](https://skmtc.dev/everypage/apis/everypage-api/revisions/e6674f903456?raw)
