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

# Create supplier offers

`POST /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`

The body is one offer or an array of up to 100 offers. A product has one offer of each supplier: a second create for the same `internal_product_id` and `supplier_id` updates that offer.

## Request body

- union
  - SupplierOfferCreate
    - `internal_product_id` string, required
    - `supplier_id` integer, required
    - `sku` string, nullable
    - `cog` number, nullable
    - `price_type` 'each' | 'case', nullable
    - `case_quantity` integer, nullable: Required when `price_type` is `case`.
    - `product_link` string, nullable
    - `supplier_product_title` string, nullable
    - `supplier_product_code` string, nullable
    - `supplier_product_code_type` string, nullable
  - SupplierOfferCreate[]
    - `internal_product_id` string, required
    - `supplier_id` integer, required
    - `sku` string, nullable
    - `cog` number, nullable
    - `price_type` 'each' | 'case', nullable
    - `case_quantity` integer, nullable: Required when `price_type` is `case`.
    - `product_link` string, nullable
    - `supplier_product_title` string, nullable
    - `supplier_product_code` string, nullable
    - `supplier_product_code_type` string, nullable

## Response `200`

An array: one result for each element

- 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` ApiV1BatchMeta: The count of a write that took an array.
    - `succeeded` integer
    - `failed` integer
  - `errors` ApiV1BatchError[]
    - `code` string
    - `message` string

## Other responses

- `201`: One object: the new offer
- `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`)
- `404`: Resource not found
- `422`: Business logic error - operation cannot be completed due to business rules
- `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)
