TracePass
Passports

List passports

Paginated list of passports the workspace owns. Filter by `productId`, `status`, or a free-text search across GTIN and serial number. Counts against the daily passport-read budget (`maxV1PassportsPerDay`); the response items use the same shape as the single-read endpoint but trimmed to the listing fields.

GET/api/v1/passports
Download OpenAPI 3.1
GET/api/v1/passports

List passports

Paginated list of passports the workspace owns. Filter by `productId`, `status`, or a free-text search across GTIN and serial number. Counts against the daily passport-read budget (`maxV1PassportsPerDay`); the response items use the same shape as the single-read endpoint but trimmed to the listing fields.

Query parameters

  • page

    number (default 1)

    1-based page number.

  • limit

    number (1-100, default 20)

    Items per page.

  • productId

    ObjectId

    Filter by product.

  • status

    enum

    `draft`, `in_review`, `approved`, `published`, `suspended`, `expired`, `archived`.

  • search

    string

    Free-text across GTIN + serial.

Headers

  • Authorizationrequired

    string

    `Bearer <api-key>`.

Request

curl -sS \
  "https://app.tracepass.eu/api/v1/passports?status=published&limit=50" \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"

Response

{
  "data": {
    "items": [
      {
        "_id": "6650b2c3d4e5f6a7b8c9d0e1",
        "productId": "6650a1b2c3d4e5f6a7b8c9d0",
        "gs1": {
          "gtin": "04012345000015",
          "serialNumber": "BP-48V-100-000001",
          "digitalLinkUri": "https://id.tracepass.eu/p/01/04012345000015/21/BP-48V-100-000001"
        },
        "status": "published",
        "completionPercentage": 87,
        "publishedAt": "2026-04-11T10:00:00.000Z"
      }
    ],
    "total": 1,
    "page": 1,
    "limit": 50,
    "totalPages": 1
  }
}