API Reference
Fill rates
Aggregate measured fill rates and compare them with configured expectations.
Aggregates fill-rate results for one store and compares them with expectations. Choose groupBy=protocol, exposition, or category.
Authorization
bearerAuth In: header
Path Parameters
Store identifier from your system. This is the public store key used in API paths.
Query Parameters
Inclusive start of the requested date-time range.
Exclusive end of the requested date-time range.
Protocol status filter. Defaults to completed for analytics endpoints.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/stores/store-123/fill-rates?from=2026-06-15T00%3A00%3A00Z&to=2026-06-16T00%3A00%3A00Z&status=completed"{ "externalId": "string", "groupBy": "protocol", "protocolStatus": "awaiting_submission", "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z", "summary": { "protocolCount": 0, "imageCount": 0, "averageFillRate": 0, "expectedAverageFillRate": 0, "delta": 0, "belowExpectationCount": 0 }, "items": [ { "key": "string", "protocolId": "string", "externalId": "string", "storeName": "string", "regionName": "string", "expositionId": "9ea3c12e-334c-4cc0-8ef1-de71b907bcd0", "expositionType": "FRIDGE_DRINKS", "productCategory": "string", "scheduledDate": "2019-08-24", "scheduledAt": "12:00:00", "scheduledDatetime": "2019-08-24T14:15:22Z", "week": "2026-W25", "status": "awaiting_submission", "protocolCount": 0, "imageCount": 0, "averageFillRate": 0, "expectation": { "expectedAverageFillRate": 0, "delta": 0, "belowExpectation": true, "comparedImageCount": 0, "missingExpectationCount": 0, "ambiguousExpectationCount": 0 } } ]}{ "error": { "code": "not_configured", "message": "string", "issues": [ { "path": "string", "message": "string", "code": "string" } ] }}{ "error": { "code": "not_configured", "message": "string", "issues": [ { "path": "string", "message": "string", "code": "string" } ] }}Returns photo-level fill-rate results for one exposition in one store, including expectation comparison per photo.
Authorization
bearerAuth In: header
Path Parameters
Store identifier from your system. This is the public store key used in API paths.
Query Parameters
Inclusive start of the requested date-time range.
Exclusive end of the requested date-time range.
Protocol status filter. Defaults to completed for analytics endpoints.
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/stores/store-123/expositions/497f6eca-6276-4993-bfeb-53cbbbba6f08/fill-rate?from=2026-06-15T00%3A00%3A00Z&to=2026-06-16T00%3A00%3A00Z&status=completed"{ "externalId": "string", "expositionId": "9ea3c12e-334c-4cc0-8ef1-de71b907bcd0", "protocolStatus": "awaiting_submission", "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z", "summary": { "protocolCount": 0, "imageCount": 0, "averageFillRate": 0, "expectedAverageFillRate": 0, "delta": 0, "belowExpectationCount": 0 }, "items": [ { "photoId": "471eeb8e-973b-4db2-8b53-a320ccd51909", "protocolId": "145fbbc7-5125-4cc4-be15-11cd04d84fa0", "expositionId": "9ea3c12e-334c-4cc0-8ef1-de71b907bcd0", "imageUrl": "http://example.com", "scheduledDate": "2019-08-24", "scheduledAt": "12:00:00", "scheduledDatetime": "2019-08-24T14:15:22Z", "protocolStatus": "awaiting_submission", "imageStatus": "pending", "fillRate": 0, "expectation": { "expectedAverageFillRate": 0, "delta": 0, "belowExpectation": true, "comparedImageCount": 0, "missingExpectationCount": 0, "ambiguousExpectationCount": 0 } } ]}{ "error": { "code": "not_configured", "message": "string", "issues": [ { "path": "string", "message": "string", "code": "string" } ] }}{ "error": { "code": "not_configured", "message": "string", "issues": [ { "path": "string", "message": "string", "code": "string" } ] }}Aggregates fill-rate results across stores. Use externalIds to limit the stores and groupBy to choose the reporting dimension.
Authorization
bearerAuth In: header
Query Parameters
Inclusive start of the requested date-time range.
Exclusive end of the requested date-time range.
Protocol status filter. Defaults to completed for analytics endpoints.
Comma-separated external store IDs.
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/fill-rate?from=2026-06-15T00%3A00%3A00Z&to=2026-06-16T00%3A00%3A00Z&status=completed"{ "groupBy": "store", "protocolStatus": "awaiting_submission", "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z", "filters": { "externalIds": [ "string" ], "minFillRate": 0, "maxFillRate": 0, "belowExpectationOnly": true }, "summary": { "protocolCount": 0, "imageCount": 0, "averageFillRate": 0, "expectedAverageFillRate": 0, "delta": 0, "belowExpectationCount": 0 }, "items": [ { "key": "string", "protocolId": "string", "externalId": "string", "storeName": "string", "regionName": "string", "expositionId": "9ea3c12e-334c-4cc0-8ef1-de71b907bcd0", "expositionType": "FRIDGE_DRINKS", "productCategory": "string", "scheduledDate": "2019-08-24", "scheduledAt": "12:00:00", "scheduledDatetime": "2019-08-24T14:15:22Z", "week": "2026-W25", "status": "awaiting_submission", "protocolCount": 0, "imageCount": 0, "averageFillRate": 0, "expectation": { "expectedAverageFillRate": 0, "delta": 0, "belowExpectation": true, "comparedImageCount": 0, "missingExpectationCount": 0, "ambiguousExpectationCount": 0 } } ]}{ "error": { "code": "not_configured", "message": "string", "issues": [ { "path": "string", "message": "string", "code": "string" } ] }}