---
title: "List supplier offers"
method: GET
path: "/api/v1/sa/inventory/supplier-offers"
tags: ["Supplier Offers"]
---

# List supplier offers

`GET /api/v1/sa/inventory/supplier-offers`

## Request

- Base URL: `https://app.sellerassistant.app` (the document declares no server; this is the origin it was published from)
- URL: `https://app.sellerassistant.app/api/v1/sa/inventory/supplier-offers`
- Auth: one of:
  - API key in query parameter `api_key`
  - API key in header `X-Api-Key`

Filter by `internal_product_id` to get the offers of one product, or by `supplier_id` to get the offers of one supplier.

## Query parameters

- `filter[internal_product_id][eq]` string
- `filter[supplier_id][eq]` integer
- `sort` string
- `page` integer
- `per_page` integer

## Response `200`

One page of the offers

- object
  - `data` SupplierOffer[]
    - `id` integer
    - `internal_product_id` string: The id of the inventory product.
    - `supplier_id` integer
    - `sku` string, nullable: The SKU of the supplier.
    - `cog` number, nullable: The cost of goods, in the unit that `price_type` names.
    - `price_type` 'each' | 'case', nullable: `each`: `cog` is the price of one unit. `case`: `cog` is the price of one case.
    - `case_quantity` integer, nullable: The sellable units in one case. It is required when `price_type` is `case`.
    - `cog_per_unit` number, nullable: Read only. The cost of one unit: `cog`, or `cog` ÷ `case_quantity` for a case, rounded to 2 decimals.
    - `product_link` string, nullable: The page of the product on the site of the supplier.
    - `supplier_product_title` string, nullable
    - `supplier_product_code` string, nullable: A barcode or another code of the supplier.
    - `supplier_product_code_type` string, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `meta` object
    - `pagination` ApiV1Pagination: The page the answer carries. Every list of the v1 answers it under `meta`.
      - `page` integer: The schemas every endpoint of the public API v1 shares. The envelope is the same on every endpoint, so it lives here once. An endpoint points at it with a `$ref`, and the generated collection stays small and consistent. The parameters live in ApiV1Parameters, not here. swagger-php drops the class level `OA\Schema` attributes of a class that also carries a class level `OA\Parameter`, so the two kinds need two classes. This class holds no code. swagger-php reads the attributes, and nothing calls it.
      - `per_page` integer
      - `total` integer
      - `last_page` integer
    - `trial_limit` ApiV1TrialLimit: Present only on trial, when the trial hides rows of the list. The trial shows the first rows of a list, and the pagination counts only these rows.
      - `max_rows` integer: The number of rows that the trial shows.
      - `total` integer, nullable: The true number of rows in the list. It is null for a list that does not count its rows.
      - `code` string
      - `message` string
      - `subscribe_url` string, uri

## Other responses

- `400`: Bad request - validation failed or invalid parameters
- `403`: Access denied - insufficient permissions, invalid API key, or the API request limit is used up (`public_api_key_limit`)
- `429`: Too many requests - rate limit exceeded

---

[API](https://skmtc.dev/sellerassistant/apis/seller-assistant-public-api.md) · [All operations](https://skmtc.dev/sellerassistant/apis/seller-assistant-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sellerassistant/apis/seller-assistant-public-api/revisions/5b3ecdbcadb6?raw)
