List vendor offers
List your own offers.
Offers
GET
/api/v1/scent/offersReturns a paged list of the calling vendor’s own offers (any submission source), optionally filtered by status. Requires the Offers capability.
Query parameters
pageinteger1-based page number (default 1). A value below 1, or one that is not a whole number, returns 400 VALIDATION_INVALID_PAGE.
pageSizeintegerItems per page, 1 to 100 (default 20). Any other value returns 400 VALIDATION_INVALID_PAGE_SIZE; it is never silently clamped.
statusstring (enum)Filter to a single status.
Response
itemsarray of objectpagination.pageintegerpagination.pageSizeintegerpagination.totalCountintegerpagination.totalPagesintegerOther responses
400A query parameter was rejected. Unknown parameter name: VALIDATION_UNKNOWN_QUERY_PARAMETER (details.allowedParameters). Value that does not parse (id, enum, number, boolean): VALIDATION_INVALID_QUERY_PARAMETER (enums add details.allowedValues). Unknown include token: VALIDATION_UNKNOWN_INCLUDE (details.allowedValues). pageSize outside 1–100: VALIDATION_INVALID_PAGE_SIZE. page below 1: VALIDATION_INVALID_PAGE. Unparseable date, or a from/to pair with from after to: VALIDATION_INVALID_DATE. details.errors names every offending parameter.401No bearer token (UNAUTHORIZED_MISSING_TOKEN), an invalid token (UNAUTHORIZED_INVALID_TOKEN) or an expired one (UNAUTHORIZED_TOKEN_EXPIRED — mint a new token). UPSTREAM_AUTH_FAILED is different: a dependent service refused the Gateway itself. That is a server-side fault — retry later and do NOT re-mint your token. See the Rate limits & errors guide.403Your token doesn’t carry the capability this endpoint requires.404No API route matches this path (NOT_FOUND_ROUTE). A missing resource on a real route returns that service’s own NOT_FOUND_* code instead.429Too many requests. Retry after the Retry-After header (seconds).502A dependent service returned an invalid response (BAD_GATEWAY). Retry with backoff.503The service is temporarily unavailable (SERVICE_UNAVAILABLE). Retry with backoff.504A dependent service did not respond in time (GATEWAY_TIMEOUT). Retry with backoff.curl --request GET \ --url https://api-omni-vendors.linra.net/api/v1/scent/offers \ --header 'Authorization: Bearer $TOKEN'const res = await fetch('https://api-omni-vendors.linra.net/api/v1/scent/offers', { headers: { Authorization: `Bearer ${token}`, },});const { payload } = await res.json();var response = await httpClient.GetAsync("https://api-omni-vendors.linra.net/api/v1/scent/offers");
var envelope = await response.Content.ReadFromJsonAsync<ApiResponse<object>>();Response
{ "state": "SUCCESS", "payload": { "items": [ { "id": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "status": "Draft", "pricingModel": {}, "vendorExternalId": "string", "product": { "variantId": "5b1e3a1c-9d2e-4f3a-8b1c-9f0a2e3d4c5b", "vendorSku": "string", "barcode": "string", "rawBrandName": "string", "rawProductName": "string", "rawConcentration": "string", "rawSizeMl": 0, "rawDescription": "string" }, "cost": { "amount": 0, "isVatInclusive": true, "enteredVatInclusive": true, "inputVat": 0, "pending": { "amount": 0, "inputVat": 0 } }, "price": { "amount": 0, "isVatInclusive": true, "enteredVatInclusive": true, "vat": 0, "pending": { "amount": 0, "vat": 0 } }, "stock": { "declaredQuantity": 0, "declaredInStock": true }, "review": { "reviewedAt": "2026-08-22T09:14:03Z", "reason": "string" } } ], "pagination": { "page": 0, "pageSize": 0, "totalCount": 0, "totalPages": 0 } }, "details": null}
