Getting started
From a credential to your first authenticated API call in about five minutes.
New to Linra Omni? Platform overview covers the multi-product framing (Scent is the first product) and the platform-wide contracts (versioning, envelope, pagination) before you write any code — worth a skim first if you want the bigger picture, but not required to follow the steps below.
0. How you get access
Section titled “0. How you get access”Before you can generate anything, you need a dashboard login. This is a one-time, human step, not an API call:
- A Linra admin invites you as a user on your partner account. You receive an activation email with a single-use link.
- You open the link, activate your account, and set your own password. You’re now signed in to the Linra Omni Portal dashboard at https://omni-portal.linra.net — one address for both staging and production; you pick the environment with the Environment selector in the dashboard’s top bar.
- In the sidebar, open Partners & Vendors → My Account → API Credentials. There you self-generate your own API credential — no further Linra involvement needed (e.g. one for staging, one for production).
If you haven’t received an invitation yet, ask your Linra account contact to send one.
1. Get a credential
Section titled “1. Get a credential”API credentials are issued and managed entirely through the Linra Omni Portal dashboard — the partner API itself never creates, lists, or rotates credentials (see Credentials for why). Once you’re signed in at https://omni-portal.linra.net (see step 0 above), choose the environment you want to integrate against in the Environment selector (Staging first, always), open Partners & Vendors → My Account → API Credentials, and select Generate.
Generating a credential shows you the secret exactly once:
Client ID: live_9f8c2a1b4e6d4a7c9b0e3f2d1c8a5b6eClient Secret: •••••••••••••••••••••••••••••••••••••••••••••• (shown once — copy it now)Environment: StagingStore both values in your own secret manager immediately. If you lose the secret, generate a new credential and deactivate the old one — there is no “reveal secret” endpoint, by design.
2. Exchange the credential for an access token
Section titled “2. Exchange the credential for an access token”curl -X POST https://api-omni-stg.linra.net/api/v1/auth/token \ -H "Content-Type: application/json" \ -d '{ "clientId": "live_9f8c2a1b4e6d4a7c9b0e3f2d1c8a5b6e", "clientSecret": "your-secret-here" }'{ "state": "SUCCESS", "payload": { "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", "tokenType": "Bearer", "expiresIn": 300 }}The token is valid for 5 minutes — exactly: an expired token is rejected within at most 30
seconds of clock skew (see Authentication & tokens for why, and for the
caching pattern you should build around this from day one). The token’s signed
env claim is bound to the credential’s own environment — a staging credential can never mint a
token that works against production, and vice versa (see Environments).
3. Make your first call
Section titled “3. Make your first call”Every other /api/v1 request carries the token as a bearer credential:
curl https://api-omni-stg.linra.net/api/v1/scent/scents?pageSize=5 \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."{ "state": "SUCCESS", "payload": { "items": [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "brandId": "9b2d...", "name": "Example Scent", "info": { "productType": "Perfume", "concentration": "Edp", "audience": "Unisex" }, "...": "..." } ], "pagination": { "page": 1, "pageSize": 5, "totalCount": 1, "totalPages": 1 } }}Postman collection
Section titled “Postman collection”Prefer to explore the API in Postman before writing any code? Download the collection and
environment below, import both into Postman, fill in your clientId/clientSecret in the
environment, run the Get access token request, then call any other request in the collection.
Where to go from here
Section titled “Where to go from here”- Building a checkout? Read Cart preview & price locks — it walks through pricing a cart, handling per-line issues, and creating the order.
- Want push notifications instead of polling? Read Webhooks & HMAC verification.
- Syncing the catalog into your own system? Read Catalog delta sync.
- Handling errors and retries robustly? Read Idempotency and Errors.
- Full wire shapes for every endpoint live in the API Reference.

