TracePass
EPCIS 2.0

Poll a capture job

Reads the status of an asynchronous EPCIS capture job — the read side of the EPCIS 2.0 capture model. POST /api/v1/epcis/capture returns 202 Accepted with a captureJobId; pass that id here to follow the job until it reaches a terminal state.

GET/api/v1/epcis/capture/{id}
Download OpenAPI 3.1
GET/api/v1/epcis/capture/{id}

Poll a capture job

Reads the status of an asynchronous EPCIS capture job — the read side of the EPCIS 2.0 capture model. POST /api/v1/epcis/capture returns 202 Accepted with a captureJobId; pass that id here to follow the job until it reaches a terminal state.

The response carries status, the eventCount submitted, the capturedCount stored so far, and a per-event errors array ({index, message}) for any events that failed validation or EPC resolution. createdAt and finishedAt bracket the run — finishedAt is null while the job is still in progress. Counts as one read.

Plan gate: EPCIS is included on every plan, Free included (10 events/month on Free), so the 403 path is only reachable on workspaces where EPCIS has been switched off by support. Unknown or expired job id returns 404.

Path parameters

  • idrequired

    string

    The capture job id returned by POST /api/v1/epcis/capture.

Headers

  • Authorizationrequired

    string

    Bearer <token> — either a tp_ API key (Developer → API Keys; simplest, for server-to-server) or an OAuth 2.0 access token (Developer → OAuth Apps; for user-authorized apps, scoped + revocable). The Authentication page has the full OAuth flow and scope list.

    e.g. Bearer tp_REDACTED_xxxxxxxxxxxx

Request

curl -sS https://app.tracepass.eu/api/v1/epcis/capture/6650c4d5e6f7a8b9c0d1e2f3 \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"

Response

{
  "captureJobId": "6650c4d5e6f7a8b9c0d1e2f3",
  "status": "success",
  "eventCount": 12,
  "capturedCount": 12,
  "errors": [],
  "createdAt": "2026-05-09T12:00:00.000Z",
  "finishedAt": "2026-05-09T12:00:03.420Z"
}

Related endpoints