---
title: "Create Product Record"
method: POST
path: "/data-in/products"
tags: ["Data In"]
---

# Create Product Record

`POST /data-in/products`

Ingest product data into Triple Whale. This endpoint allows users to upload detailed product information, including variants, tags, collections, and images.

## Request body

- object
  - `shop` string, required — The exact Shop URL (e.g., 'example.myshopify.com'). Must match the Shop URL value shown in [Settings → Store](https://app.triplewhale.com/store-settings/general). The API key owner must also have access to the shop, otherwise the request will return 403.
  - `platform` string — The platform where the product originated. To apply product-based COGS and handling fees to orders, this value must exactly match the `platform` value sent in the matching order records.
  - `platform_account_id` string — The account ID associated with the platform. To apply product-based COGS and handling fees to orders, this value must exactly match the `platform_account_id` value sent in the matching order records.
  - `product_id` string, required — The unique identifier for the product. To use [Product Analytics](https://app.triplewhale.com/dashboards/product-analytics), matching `line_items.product_id` values must also be sent via the `/orders` endpoint.
  - `product_title` string, required — The name or title of the product.
  - `vendor` string — The vendor of the product.
  - `product_status` string — The status of the product in the connected sales platform (e.g., `active`, `draft`, `archived`).
  - `product_tags` string[] — Tags associated with the product, set in the main sales platform (e.g. `Upsell`, `Order Credits`, `discount_eligible`).
  - `product_type` string — The type or category of the product.
  - `collections` string[] — Collections the product belongs to.
  - `images` object[] — Images associated with the product.
    - `image_id` string, required — The unique identifier for the image.
    - `image_src` string, required — The URL of the image.
  - `variants` object[], required — Variants of the product. If there are no variants, then use `product_id`.
    - `variant_id` string, required — The unique identifier for the variant.
    - `variant_title` string, required — The name or title of the variant.
    - `variant_price` number — The price of the variant, to the buyer.
    - `sku` string — The stock keeping unit (SKU) of the variant.
    - `variant_cost` number — The cost of the variant, to the seller.
    - `handling_fee` number — The handling fee for the variant.
    - `inventory_quantity` number — The number of items in stock for the variant.
    - `image_src` string — The URL of the image associated with this variant.
    - `compare_at_price` number — The original price of the variant before a discount is applied. Typically used to show a strikethrough “compare at” price alongside the current selling price. Must be greater than or equal to `variant_price`.
  - `created_at` string, date-time — The time at which the product record was created. Must be provided in ISO 8601 format, with explicit timezone information (`Z` or `+/-HH:mm` offset). Offsets are supported (e.g., `2024-11-29T12:00:00+02:00`). Defaults to the current time.
  - `updated_at` string, date-time — The time at which the product record was last updated. Must be provided in ISO 8601 format, with explicit timezone information (`Z` or `+/-HH:mm` offset). Offsets are supported (e.g., `2024-11-29T12:00:00+02:00`). Defaults to the current time.

## Response `200`

Product record successfully received.

- object
  - `success` boolean
  - `message` string

## Other responses

- `400` — Bad Request
- `429` — Too Many Requests
- `500` — Internal Server Error

---

[API](https://skmtc.net/triplewhale/apis/triple-whale-api.md) · [All operations](https://skmtc.net/triplewhale/apis/triple-whale-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/triplewhale/triple-whale-api/revisions/96b22ac9b5a7/schema)
