Skip to main content
Inventory is the only resource this API exposes today. Everything on this page is a read — there is no way to create, update, or adjust stock through the API yet. Each endpoint needs a specific permission on the key making the request — see Permissions for what each one means before you build against it.

Locations

Requires inventory.items:read. Returns the clinic’s stock locations — the storerooms, shelves or fridges stock is held in.

List catalogue items

Requires inventory.items:read. Cursor-paginated (see Pagination).
Each item in the response:
identifiers lists every code recorded for the item — a barcode (gtin) or a national drug registration number (nafdac) — and appears only where the clinic’s own record has it. Nothing is inferred or guessed on your behalf: an item with no barcode on file simply has no gtin entry. retail_price is null when the clinic hasn’t set a price for the item — never a fabricated 0.

Get one item

Requires inventory.items:read. Same fields as one entry of the list above. An item_id that doesn’t exist, or that belongs to a different clinic, returns 404 with code: "not_found" — see Errors.

Check availability

Requires inventory.availability:read. Checks up to 100 items in one request — by their ID, or by any identifier you already hold (a barcode, for example) — and returns a band for each, never an exact number.
A positive band is not a reservation. Nothing about calling this endpoint holds, claims, or sets anything aside. Between reading in_stock and a customer actually being sold the item, stock can change — always show as_of to whoever is relying on the answer, and never present availability as a guarantee.

Exact stock levels

Requires inventory.stock:read — a separate, more sensitive permission than availability (see Permissions). Returns exact quantities, by location and lot.
quantity is a decimal string, the same convention used for money — see Pagination for the list envelope this sits inside.

What’s never in an inventory response

No inventory endpoint returns cost price, vendor information, margins, or anything about a specific customer or sale. This release exposes only what a clinic explicitly permits under Availability, Catalogue, or Stock levels — nothing else rides along.