Docs

Open Pravatar delivers pre-generated synthetic assets with structured search and stable URLs.

Everything in Open Pravatar is created offline, reviewed, tagged, and served with cache-friendly endpoints. Search is the product. Generation is an internal pipeline.

Search

GET /api/search

Returns ranked asset matches. Supports: q, family, preset, country, mood, weather, accessory, use_case, limit

GET /api/search?q=woman+wearing+glasses+japan&country=JP&limit=5

Asset detail

GET /api/assets/:id

Returns one asset's full manifest, all delivery URLs, and related assets.

GET /api/assets/ast_tokyo_glasses_portrait

Manifest

GET /manifest/:id

Returns the canonical JSON manifest for one asset — lightweight alternative to the full asset endpoint.

GET /manifest/ast_tokyo_glasses_portrait

Deterministic pick

GET /pick/:seed

Picks a stable best-fit asset for a given seed string. Accepts the same filter params as search.

GET /pick/alex-cho?country=JP&preset=editorial-dark

Image delivery

GET /library/:id/original.png
GET /thumbs/:id.webp

Immutable, CDN-cacheable image endpoints. Thumbnails accept ?w= for width-based resizing (max 1200px).

Embed directly

<img src="https://openpravatar.com/library/ast_tokyo_glasses_portrait/original.png" alt="Woman wearing glasses in Tokyo" width="1536" height="1024" />

Each asset manifest includes ready-to-use html_tag and react_snippet fields.

Caching notes

Image endpoints are served with immutable, max-age=31536000 — treat them as permanent. Manifest and search responses use s-maxage=3600, stale-while-revalidate=86400 with strong ETags. Because assets are pre-generated and IDs are stable, Open Pravatar is naturally CDN-friendly.

Try the API

Search the live catalog and inspect the JSON response directly from this page.

Hit Run to see the live API response.