List observed product changes or one product's history
curl --request GET \
--url http://127.0.0.1:5185/v1/changesconst options = {method: 'GET'};
fetch('http://127.0.0.1:5185/v1/changes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://127.0.0.1:5185/v1/changes"
response = requests.get(url)
print(response.text){
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "product_first_observed",
"product": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_ids": {
"utah_dabs_sku": "347210"
},
"name": "<string>",
"brand": "<string>"
},
"store": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_ids": {
"inventory_store_code": "0002"
},
"name": "<string>"
},
"change": {},
"semantics": "first_observed_by_nektir",
"times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
},
"upstream_age_known": true
}
],
"meta": {
"page": {
"has_more": true,
"next_cursor": "<string>",
"cursor_expires_at": "2023-11-07T05:31:56Z"
},
"history": {
"tracking_started_at": "2023-11-07T05:31:56Z",
"earliest_available_at": "2023-11-07T05:31:56Z",
"latest_available_at": "2023-11-07T05:31:56Z",
"retention_days": 400,
"retained_event_count": 1,
"source_update_time_known": true
},
"warnings": [
{
"code": "INVENTORY_COVERAGE_PARTIAL"
}
],
"family": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"member_scope": "members_visible_at_publication_revision"
}
},
"links": {
"self": "<string>",
"next": "<string>"
}
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}List observed product changes or one product's history
Returns immutable events created atomically with a Nektir publication. Filter by product_id
or sku for one product’s history. Inventory quantities are reported observations; a decrease
is never labeled as a purchase or inferred sale. store_inventory_first_observed is a baseline
observation, not a restock. Source update time remains null unless the upstream source supplies it.
Every query is capped at the revision in X-Publication-Revision. The first page freezes an
upper event bound within that revision, so concurrent or newer publications cannot move rows
between pages or disagree with the response header.
List observed product changes or one product's history
curl --request GET \
--url http://127.0.0.1:5185/v1/changesconst options = {method: 'GET'};
fetch('http://127.0.0.1:5185/v1/changes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://127.0.0.1:5185/v1/changes"
response = requests.get(url)
print(response.text){
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "product_first_observed",
"product": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_ids": {
"utah_dabs_sku": "347210"
},
"name": "<string>",
"brand": "<string>"
},
"store": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_ids": {
"inventory_store_code": "0002"
},
"name": "<string>"
},
"change": {},
"semantics": "first_observed_by_nektir",
"times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
},
"upstream_age_known": true
}
],
"meta": {
"page": {
"has_more": true,
"next_cursor": "<string>",
"cursor_expires_at": "2023-11-07T05:31:56Z"
},
"history": {
"tracking_started_at": "2023-11-07T05:31:56Z",
"earliest_available_at": "2023-11-07T05:31:56Z",
"latest_available_at": "2023-11-07T05:31:56Z",
"retention_days": 400,
"retained_event_count": 1,
"source_update_time_known": true
},
"warnings": [
{
"code": "INVENTORY_COVERAGE_PARTIAL"
}
],
"family": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"member_scope": "members_visible_at_publication_revision"
}
},
"links": {
"self": "<string>",
"next": "<string>"
}
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}Headers
Query Parameters
Comma-separated observed event types with OR semantics.
Maximum array length:
8Available options:
product_first_observed, price_changed, status_changed, product_presentation_changed, aggregate_inventory_changed, store_inventory_first_observed, store_inventory_changed, catalog_presence_changed