For developers
A read-only public API over The Index's verified registry, freely-listed items, and anonymised transaction history: the same underlying data and matching logic Index Search uses.
Every request needs an API key, currently issued by us directly. Contact us to request one. Send it as a bearer token:
Authorization: Bearer aix_live_...
Each key has its own rate limit (shown when it's issued, typically 60 requests/hour). Exceeding it returns 429.
Any public display of data returned by this API must include visible "Powered by AIX" attribution, linked back to this site. Every response includes an attribution field with the exact required text. Use it rather than hardcoding your own copy, in case it changes.
Registry assets (independently verified by us) and self-submitted free listings are always eligible. Vendor-sourced listings are only included if that vendor has explicitly granted us permission to redistribute their data through a public API. Most have not. This is enforced on every request, not assumed from how the data is otherwise displayed on this site.
Search the registry and free listings together.
curl -X POST https://<your-domain>/api/aix/search \
-H "Authorization: Bearer aix_live_..." \
-H "Content-Type: application/json" \
-d '{"category": "whisky", "query": "glenfoo", "minPrice": 1000, "maxPrice": 10000}'Body fields: category (the API itself covers every category the platform tracks; whisky is what you'll actually want here), query, minPrice, maxPrice, all optional. Returns { attribution, resultCount, results }, where each result groups every source (registry and/or external) that shares the same identity match.
Resolve a single verified asset by id, the same data its public certificate page shows.
curl https://<your-domain>/api/aix/assets/<assetId> \ -H "Authorization: Bearer aix_live_..."
Returns 404 if the asset doesn't exist or isn't independently verified. Unverified assets are never resolvable through this API, same as their certificate page.
Look up real, completed, anonymised sale records, never a computed estimate. If nothing matches yet, you get an honest empty result, not a guess.
curl "https://<your-domain>/api/aix/market-records?category=whisky&key1=Glenfoo&key2=2019-01-01" \ -H "Authorization: Bearer aix_live_..."
category and key1 are required; key2/key3 are optional and category-specific. See the mapping below. Returns { attribution, category, recordCount, records }.
| Category | key1 | key2 | key3 |
|---|---|---|---|
| whisky | distillery | fill date | — |
Every error response is { error: "human-readable message" }. 401 for a missing/invalid key, 429 for rate limit, 400 for a malformed request, 404 for a resource that doesn't exist or isn't eligible to be returned.
A drop-in search box for your own site, one script tag, no build step, no framework required. It renders inside a sandboxed iframe we host, so it can't be affected by your page's own CSS or JavaScript.
<script src="https://<your-domain>/embed/widget.js" data-api-key="aix_live_..." data-height="420"> </script>
data-height is optional (defaults to 420px). data-container is optional: the id of an element to render into; omit it and the widget inserts itself right after the script tag.
The API key in data-api-key is visible to anyone who views your page's source, the same trust model as a Stripe publishable key or a Google Maps API key. Issue a key specifically for embedding (rate-limited, revocable independently of any server-side key you also use) rather than reusing a key you consider secret.
Uses the same redistribution check as the API, but against the separate embed_redistribution_allowed permission, a source can allow one without the other, so the widget and the API can genuinely return different vendor-sourced results for the same search. The "Powered by AIX" attribution is built into the widget itself and can't be removed or hidden by the embedding page.