ouro direct

API documentation

Ouro storefronts expose machine-readable interfaces so agents and aggregators can search a seller's catalogue, read item detail and consume product feeds without scraping HTML.

Discovery

Start at the API catalog, published per RFC 9727:

GET https://ouro.direct/.well-known/api-catalog
Accept: application/linkset+json

It returns a linkset naming each API, its OpenAPI description (service-desc), its documentation (service-doc), its discovery manifest (service-meta) and a health endpoint (status).

APIs live on storefront subdomains, not on this one. Each seller gets {slug}.ouro.direct, and that host serves their catalogue. ouro.direct is the marketing site; it publishes the catalog but answers no API requests itself.

UCP Shopping

Ouro storefronts implement the Universal Commerce Protocol shopping service over REST. Each storefront declares what it supports at its own discovery manifest:

GET https://retrowhale.ouro.direct/.well-known/ucp

The manifest's services["dev.ucp.shopping"][].endpoint is the base URL for calls. Read it rather than assuming the path — the UCP specification requires the endpoint to come from the manifest, and hard-coding it will break when a storefront moves.

Capabilities currently declared

CapabilityOperationPurpose
catalog.search POST {endpoint}/catalog/search Search a storefront's live listings
catalog.lookup POST {endpoint}/catalog/lookup Fetch one or more items by identifier

Operations the UCP specification defines but an Ouro storefront does not currently declare — carts, checkout sessions and orders — are not available. Read the manifest to see what a given storefront supports; it is the authoritative list, and it is generated from what the store has actually enabled rather than from this page.

Request shape

The full OpenAPI 3.1 description is published by UCP, not by Ouro:

https://ucp.dev/2026-04-08/services/shopping/rest.openapi.json

Note that UCP requires a UCP-Agent header on every request, carrying your own discovery profile URI:

UCP-Agent: profile="https://youragent.example/.well-known/ucp"

Product feeds

Every storefront publishes its live catalogue as a feed. These are plain files, not APIs — no authentication, no query parameters:

PathFormat
/feed.xml RSS 2.0 with Google Merchant g: extensions
/meta-feed.xml Same catalogue, Meta catalog conventions

For example retrowhale.ouro.direct/feed.xml. Items with no image are omitted, so a feed can carry fewer items than the storefront shows.

Conditions and grading

Ouro is a re-commerce platform, so condition is part of the item identity rather than a footnote. Listings carry a condition — typically Loose, CIB (complete in box), Case only or Manual only — and a plain description of what is included. Two listings of the same title at different conditions are different products at different prices.

Rate limits and etiquette

Discovery documents and feeds are cached and cheap to serve. Catalogue endpoints are rate limited per storefront. Identify yourself with a descriptive User-Agent, honour Cache-Control, and prefer the feed over polling search when you want the whole catalogue — it is one request instead of hundreds.

Status

Each storefront host answers a health check:

GET https://retrowhale.ouro.direct/health

Contact

Questions about integrating, or an API you need that is not listed here: get in touch.