API overview and quick start

What the LeisureNexus REST API does, the base URL, conventions for ids, money and time, and your first request in five minutes.

7 min read Updated Oct 17, 2026

What you can build

The LeisureNexus API lets your own website, app or back-end system work with a LeisureNexus business:

  • Show items, prices, pictures and live stock on your website.
  • Look up and create customers (with loyalty points and house-account balance) from your sign-up form or app.
  • Pull sales and refunds into a data warehouse, BI tool or accounting system.
  • Let business customers place wholesale orders from your B2B portal.
  • Be told the moment something happens with signed webhooks.

Base URL

https://api.leisurenexus.app/v1

Every call uses HTTPS and JSON. The machine-readable description is at https://api.leisurenexus.app/v1/openapi.json (OpenAPI 3.1) — load it into Postman, Insomnia or a code generator.

Quick start

  1. In the back office, open Point of sale → Developer API → New API key. Give it a name, tick the scopes it needs (for example catalog.read), choose a default store and save. Copy the key — it starts with lnk_ and is shown once. See API keys and scopes.
  2. Call the API with the key as a bearer token:
curl https://api.leisurenexus.app/v1/locations \
  -H "Authorization: Bearer lnk_your_key_here"
  1. You get your stores back:
{
  "data": [
    {
      "id": "9f2c1c2e-5b1a-4a8e-9d55-3c1f0b7a2e11",
      "name": "Main Street",
      "code": "001",
      "address_line1": "120 Main St",
      "city": "Austin",
      "state": "TX",
      "postal_code": "78701",
      "phone": "5125550142",
      "timezone": "America/Chicago"
    }
  ]
}

Conventions

TopicRule
IDsUUID strings, e.g. 9f2c1c2e-5b1a-4a8e-9d55-3c1f0b7a2e11.
MoneyInteger cents in fields ending _cents — price_cents: 249 is $2.49.
QuantitiesUnits, with up to 3 decimals for weighed items (1.25 lb).
TimesISO 8601 in UTC, e.g. 2026-10-17T14:05:00+00:00. Filters accept a date or date-time.
Lists{"data": [...], "meta": {...}}, paged with page and per_page — see Requests, errors and limits.
Single records{"data": {...}}.
Errors{"error": {"code": "...", "message": "..."}} with the right HTTP status.
StorePrices and stock are per store. Each key has a default store; pass location_id to choose another.

Endpoints at a glance

Method and pathScopeWhat it does
GET /locationscatalog.readStores
GET /departmentscatalog.readDepartments with their categories
GET /items · GET /items/{id}catalog.readItems with this store's price, barcodes and picture
GET /stockstock.readStock on hand at a store
GET /customers · GET /customers/{id}customers.readCustomers with points and account balance
POST /customers · PATCH /customers/{id}customers.writeAdd or update a customer
GET /orders · GET /orders/{id}orders.readSales and refunds
POST /sales-orders · GET /sales-orders/{id}orders.writeWholesale orders

Full details are in the endpoint reference.

Security in one paragraph

Keys belong on your server, never in a web page or mobile app. Each key sees one business only, does only what its scopes allow, and can be revoked at once. The API is reached only through the LeisureNexus gateway, which strips internal details, limits request sizes and rate, and tags every request with an X-Request-Id you can quote to support. No card numbers or payment-processor details are ever returned.

Versioning

This is version 1 (/v1). We add fields and endpoints without notice — write your code to ignore fields it doesn't know. Anything that would break existing code ships as a new version, announced in advance.

Still stuck? Email support@leisurenexus.com or send us a message — we're happy to help.