API Reference

Protocols

Read scheduled protocol runs, completion status, image counts, and average fill-rate results.

GET
/v1/stores/{externalId}/protocols

Returns protocol runs for the store in the requested time range, newest first.

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

externalId*string

Store identifier from your system. This is the public store key used in API paths.

Query Parameters

from*string

Inclusive start of the requested date-time range.

to*string

Exclusive end of the requested date-time range.

status?string

Protocol status filter.

limit?integer

Maximum number of items to return. The default and maximum are 100.

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/stores/store-123/protocols?from=2026-06-15T00%3A00%3A00Z&to=2026-06-16T00%3A00%3A00Z&status=completed&limit=100"
{  "externalId": "string",  "items": [    {}  ],  "nextCursor": "string"}
{  "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"      }    ]  }}
GET
/v1/stores/{externalId}/protocols/{protocolId}

Returns one protocol run with the photos captured for that protocol.

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

externalId*string

Store identifier from your system. This is the public store key used in API paths.

protocolId*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/stores/store-123/protocols/string"
{  "images": [    {}  ]}
{  "error": {    "code": "not_configured",    "message": "string",    "issues": [      {        "path": "string",        "message": "string",        "code": "string"      }    ]  }}