variants

One variant's own timeline of changes, newest first

Every recorded change to one variant: id, event_type, event_date, previous_value, new_value, a typed metadata object, location_id, created_at and created_by_user_id. It carries no product or SKU fields, because they are the ones you name in the request.

event_type today is one of price_change, cost_change, stock_change, stockout, restock, status_change, supplier_change, lead_time_change, moq_change, velocity_shift, tag_change, managed_change, po_created, variant_created, variant_image_change, forecast_override (a planner edited the demand plan) and forecast_event_declared (a sales-velocity event was declared, changed or cancelled). The list is open, tolerate a type you do not know, and takes a comma-separated list.

location_id narrows stock events to one warehouse, matched against the per-location changes in metadata.

start_date and end_date bound the range as ISO dates; end_date defaults to today. Paging is offset and limit, limit at most 100 and 8 by default. Both counts come back: total_count is every event this variant has, filtered_count is how many the range and type filters matched, and the page is cut from filtered_count. The offset and limit actually used are echoed back.

For the same log across every variant, read the catalogue's events.

Scope: products:read.

get/api/v1/variants/{variant_id}/events

Request

  • Base URL: https://api.app.tightly.io
  • URL: https://api.app.tightly.io/api/v1/variants/{variant_id}/events
  • Auth: HTTP bearer

Path parameters

variant_idstring required
Example:42318902722609

The variant whose timeline this reads.

Query parameters

event_typestring
Example:price_change,stockout

Comma-separated event types to filter by. Omit to return every type.

start_datestring date
Example:2026-06-01

Start of the range (ISO 8601 date).

end_datestring date
Example:2026-09-04

End of the range (ISO 8601 date). Defaults to today.

location_idstring
Example:61240442

Narrow stock events to one warehouse, matched against metadata.location_changes.

limitinteger
Example:50

Events in this page.

offsetinteger

Events to skip before this page.

Headers

Tightly-Versionstring
Example:2026-11

The date train to answer on. One train exists today, 2026-11, the one this reference describes and the one every key is minted on, so the call answers on it with or without this header. Send it anyway, so a client built now names its train from the start.

Response

A page of this variant's changes, with both the total and the filtered count.

messageobject

severity, service and desc.

Changes

No recorded changes to this operation across all 1 revision of this API.