DEPRECATED — use GET /products/{productId}/execution-logs?streamName=… instead. This path-param variant returns 404 whenever streamName contains / (the common case): the URL path is decoded (%2F → /) before routing, splitting the single {streamName} segment so the route no longer matches. The /execution-logs route takes the same streamName, onlyTestRuns, cursor, and limit as query parameters and calls the identical reader. This endpoint remains functional only for stream names without /.
Read execution log events for one stream of a product. streamName MUST be URL-encoded; stream names commonly contain '/' which would otherwise be interpreted as path separators. Example: stream 2026/05/02/[$LATEST]abc123 becomes path segment 2026%2F05%2F02%2F%5B%24LATEST%5Dabc123.
Which logs? onlyTestRuns MUST match the value used to discover this stream via GET /products/{productId}/execution-log-streams — the events live in the same log group the stream was listed from. Two log scopes:
- production (default,
onlyTestRuns=false) — populated by real shipment pricing. - test-run (
onlyTestRuns=true) — populated by operator-UI 'Test product' / 'Test brick' invocations AND the RESTPOST /products/{id}/executeendpoint.
Test-case-run logs are NOT here. POST /products/{id}/test-cases/run returns its logs inline in the response logs[] field; they are not persisted to either log group. For one-call event reads see GET /products/{productId}/execution-logs.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
400Invalid query parameter
401Unauthorized
404Product not found
