Kojomfg

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. q searches 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[].url works 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 } }:

StatusCodeMeans
401invalid_keyNo key, a mistyped key, or a revoked key.
403insufficient_scopeThe key doesn't have the permission for this call.
403origin_not_allowedA browser on a website that isn't in the key's list made the call.
404not_foundNo published item with that id or slug.
400bad_requestA query value is out of range (e.g. perPage over 100).
429rate_limitedMore 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.