NerionX
Log inApply
← NerionX

Guide

  • Introduction
  • Getting started

API reference

  • Hub API
  • Brand Kit API

Tools

  • CLI
OpenAPIApply as a pharmacy

Hub API

Catalog, orders, inventory, and authentication. All paths are under /api/v1.

Authentication

Brand endpoints require X-API-Key. Sandbox keys return fixture catalog data and cannot place live orders. Never expose live keys in browser-side code — call Hub from your server or Brand Kit backend.

TypePrefixCatalogRate limit
Livenx_live_Production SKUs120/min (default)
Sandboxnx_sandbox_Fixture SKUs only30/min (default)

Request headers

  • X-API-KeyBrand API key — nx_live_* or nx_sandbox_*
  • Idempotency-KeyUUID required on POST /orders — replays same response for 24h
  • X-API-VersionOptional — must match URI version (1)
  • X-Correlation-IDOptional client trace id — echoed in error responses
  • Content-Typeapplication/json on all POST/PUT bodies

Pagination & filters

Catalog list and sync endpoints accept standard pagination. Responses include data and pagination.total.

  • limitPage size — 1–200, default 50
  • offsetZero-based row offset for pagination
  • qSearch product name or sku_code (catalog only)
  • currencyFilter price context — USD, EUR, GBP, CHF, AED
  • updated_fromISO date — return products updated after this timestamp (sync)

Endpoints

All paths are relative to /api/v1.

MethodPathAuthDescription
GET
/productsX-API-KeyPaginated catalog list (brand-scoped)
GET
/products/syncX-API-KeyCold-start sync — same shape as list
GET
/products/:idX-API-KeyProduct by id or sku_code
GET
/products/:id/priceOptionalPrice floor in requested currency
POST
/ordersX-API-Key + Idempotency-KeyCreate order — price floor + inventory lock
GET
/ordersX-API-KeyList orders for your brand
GET
/orders/:idX-API-KeyOrder detail and lifecycle status
GET
/inventory/:idNoneAggregated stock for a SKU
POST
/inventory/bulkNoneBatch stock query (max 50 SKUs)
GET
/onboarding/applications/:idNonePoll application status by id

Code examples

Switch language tabs to copy examples in cURL, JavaScript, TypeScript, or Python.

List catalog (paginated)

Returns brand-scoped SKUs. Use limit/offset for pagination; optional q filters by name or sku_code.

cURL
curl -s "https://api.nerionx.dev/api/v1/products?limit=20&offset=0" \
  -H "X-API-Key: nx_live_your_key"

Cold-start catalog sync

Use GET /products/sync during Brand Kit onboarding to page through the full master catalog.

cURL
curl -s "https://api.nerionx.dev/api/v1/products/sync?limit=100&offset=0" \
  -H "X-API-Key: nx_live_your_key"

Create order (idempotent)

Pass Idempotency-Key on every POST. Hub validates price floor and locks inventory before confirming.

cURL
curl -s -X POST "https://api.nerionx.dev/api/v1/orders" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: nx_live_your_key" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "brand_id": "your-brand-uuid",
  "customer": { "email": "buyer@example.com", "phone": "+14155550100" },
  "shipping_address": {
    "line1": "1 Main St", "city": "Zurich",
    "postal_code": "8001", "country": "CH"
  },
  "items": [{
    "sku_id": "SKU-001", "quantity": 1,
    "local_price_cents": 1500, "local_currency": "USD"
  }]
}'

Handle API errors

All Hub errors return a consistent envelope with code, message, and correlation_id.

Response
{
  "error": {
    "code": "PRICE_FLOOR_VIOLATION",
    "message": "local_price_cents is below the Hub price floor",
    "details": { "sku_id": "SKU-001", "floor_cents": 1800 },
    "correlation_id": "req_01HX9K2M4QZ8"
  }
}
Full OpenAPI reference

NerionX

Pharmacy commerce platform — catalog, orders, and fulfillment on NerionX Hub.

Developers

  • Documentation
  • Getting started
  • Hub API
  • Brand Kit API
  • CLI reference
  • OpenAPI

Platform

  • Apply as a pharmacy
  • Log in
  • Home

Legal

  • Privacy Policy
  • Terms of Service
© 2026 NerionX · Privacy · Terms