---
title: "Export a passport's events as an EPCIS 2.0 document (by serial)."
method: GET
path: "/api/v1/passports/by-serial/{serial}/epcis"
tags: ["EPCIS"]
---

# Export a passport's events as an EPCIS 2.0 document (by serial).

`GET /api/v1/passports/by-serial/{serial}/epcis`

## Request

- Base URL: `https://app.tracepass.eu`
- URL: `https://app.tracepass.eu/api/v1/passports/by-serial/{serial}/epcis`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.tracepass.eu/api/oauth/authorize`, token URL `https://app.tracepass.eu/api/oauth/token`, scopes: `passports:read`)

Same EPCIS 2.0 export as
`GET /api/v1/passports/{id}/epcis`, looked up by your own
serial instead of our internal id and scoped to the API
key's company. Returns a standards-valid EPCIS 2.0 JSON-LD
`EPCISDocument`.

EPCIS export is included on Starter plans and up; a tenant
without it gets `403 epcis_export_not_available`. Counts as
one passport read.

## Response `200`

EPCIS 2.0 document.

## Other responses

- `400`: Invalid serial.
- `401`: Missing or invalid API key.
- `403`: EPCIS export not available on this plan.
- `404`: Resource doesn't exist or is in a different workspace.
- `409`: The serial maps to more than one passport in your account (serials are unique per GTIN, not per account). The request is rejected rather than acting on the wrong passport. Pass `?gtin=<gtin>` to disambiguate, or address the passport by its id instead. `count` is how many passports the serial matched.

---

[API](https://skmtc.dev/tracepass/apis/tracepass-api.md) · [All operations](https://skmtc.dev/tracepass/apis/tracepass-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tracepass/apis/tracepass-api/revisions/60ddeb25638b?raw)
