Getting started
1. Get a credential
Section titled “1. Get a credential”There is no credential-creation endpoint on THIS API (see the Vendor Integration Standard for why). Your FIRST credential is always issued by Linra during onboarding — self-service generation has no baseline to work from yet and is rejected until you hold at least one active credential.
Once you have that first credential, further credential management IS self-service, on a different surface: the Linra Omni Portal dashboard. Go to My Vendor API Credentials and generate additional credentials for the environment (staging or production) you need — a second environment, or a replacement after rotating a compromised secret. Self-service generation can only ever match the capabilities your existing active credentials already hold — it can never grant a NEW capability beyond that union; ask your onboarding contact for that. See the Vendor Integration Standard §11 for the full sequence.
Either way, you’ll end up with:
Client ID: vnd_9f8c2a1b4e6d4a7c9b0e3f2d1c8a5b6eClient Secret: •••••••••••••••••••••••••••••••••••••••••••••• (shown once — copy it now)Environment: StagingCapabilities: Offers, StockStore both values in your own secret manager immediately — there is no “reveal secret” endpoint.
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/vendor/auth/token \ -H "Content-Type: application/json" \ -d '{ "clientId": "vnd_9f8c2a1b4e6d4a7c9b0e3f2d1c8a5b6e", "clientSecret": "your-secret-here" }'{ "state": "SUCCESS", "payload": { "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", "tokenType": "Bearer", "expiresIn": 300 }}The token is valid for 5 minutes and carries exactly the capabilities your credential was issued with, baked into the token itself — see Authentication & capabilities for the caching pattern you should build around this, and for what happens when you call an endpoint your token doesn’t have the capability for.
3. Make your first call
Section titled “3. Make your first call”Every other /api/v1/vendor request carries the token as a bearer credential:
curl https://api-omni-stg.linra.net/api/v1/vendor/offers?pageSize=5 \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."{ "state": "SUCCESS", "payload": { "items": [], "pagination": { "page": 1, "pageSize": 5, "totalCount": 0, "totalPages": 0 } }}An empty list is expected for a brand-new credential — nothing has been submitted yet.
4. Submit your first offer
Section titled “4. Submit your first offer”curl -X POST https://api-omni-stg.linra.net/api/v1/vendor/offers \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." \ -H "Content-Type: application/json" \ -d '{ "rawBrandName": "Example Brand", "rawProductName": "Example EDP 100ml", "cost": 145.00, "costIsVatInclusive": false, "declaredInStock": true, "declaredStockQuantity": 25 }'This submission enters the SAME review queue an internal Linra catalog reviewer already works — nothing you submit goes live until it’s approved. See Offers, cost & stock for the full field-ownership model (what applies instantly vs. what waits for review).
Where to go from here
Section titled “Where to go from here”- Read the full contract. The Vendor Integration Standard is the canonical reference — auth, capabilities, every endpoint, idempotency, rate limits, status vocabularies, and onboarding.
- Fulfilling orders? Read Orders & fulfilment status.
- Want push notifications instead of polling? Read Webhooks & HMAC verification.
- Full wire shapes for every endpoint live in the API Reference.