Developers · API v1
The NE Vault catalogue API
For whoever builds a manufacturer's website. The API returns exactly what their public storefront shows: the items they've chosen to publish, with prices only where they've switched prices on. It's read-only, and customer-specific items, costs, suppliers and stock quantities are never in it.
1 · Get a key
The shop owner creates the key in NE Vault: Settings → Online catalogue → API keys → New API key. It's shown once, so they copy it then and send it to you. They can revoke a key at any time and whatever uses it stops straight away. Keys start nev_live_; keys made on a test copy of NE Vault start nev_test_ and only work there.
Treat a key like a password when it sits on a server. If your page calls the API straight from the visitor's browser, the key is visible in the page source — acceptable here, because it can only read what's already public — but ask the owner to list your website (up to 10) under Websites allowed on the key, so other sites can't borrow it. A key with no websites listed works from servers only.
2 · Call it
Base URL: https://nevault.kojomfg.com/api/public/v1. Send the key as a bearer token. From a server or a terminal:
curl -H "Authorization: Bearer nev_live_xxxxxxxx_…" \
"https://nevault.kojomfg.com/api/public/v1/catalog/items?perPage=24&sort=name"From a web page on a website listed for the key:
const res = await fetch('https://nevault.kojomfg.com/api/public/v1/catalog/items?q=adaptor', {
headers: { Authorization: 'Bearer nev_live_xxxxxxxx_…' },
})
const { ok, data, error } = await res.json()
if (ok) data.items.forEach((item) => console.log(item.name, item.price ?? 'Price on request'))Endpoints
- GET /catalog/items
- A page of items.
qsearches name, SKU and short description;page(from 1);perPage(1–100, default 24);sort=name·newest·price_asc·price_desc. Returns{ items, page, perPage, total, currency }. - GET /catalog/items/{id or slug}
- One item with its description, specs, all images, quantity breaks and options (variations).
- Image URLs
- Every
image.url/images[].urlworks directly in<img src>— no key needed. It stops working if the owner withdraws the item.
The full machine-readable reference (OpenAPI 3.1), with every field: https://nevault.kojomfg.com/api/public/v1/openapi.json
Prices, limits and errors
Prices are ex tax, in the currency the response names. An item published without a price has showPrice: false and every price field null — show “Price on request” or a quote button. A shop can also keep all its prices for signed-in customers: then every item comes back that way, and price_asc / price_desc sort by name instead. Items without a price always sort after the priced ones.
Up to 300 calls a minute per key. A change the owner makes to an item reaches the API straight away; responses may be cached for up to a minute.
Every response is { ok: true, data } or { ok: false, error: { code, message } }:
| Status | Code | Means |
|---|---|---|
| 401 | invalid_key | No key, a mistyped key, or a revoked key. |
| 403 | insufficient_scope | The key doesn't have the permission for this call. |
| 403 | origin_not_allowed | A browser on a website that isn't in the key's list made the call. |
| 404 | not_found | No published item with that id or slug. |
| 400 | bad_request | A query value is out of range (e.g. perPage over 100). |
| 429 | rate_limited | More than 300 calls a minute on one key — wait the number of seconds in the Retry-After header. |
Stuck, or need something the API doesn't do yet? Email sales@kojomfg.com.