---
title: "Publish DPP passports"
method: POST
path: "/v1/dpp/passports/publish"
tags: ["DPP"]
---

# Publish DPP passports

`POST /v1/dpp/passports/publish`

## Request

- Base URL: `https://api.prod.keyban.io`
- URL: `https://api.prod.keyban.io/v1/dpp/passports/publish`
- Auth: API key in header `X-Api-Key`

Start publishing the DPP passports matching the filter, cascading publication to their batches and items.

The call returns as soon as the job is accepted: passports are still `draft` at that point and turn `published` as the job progresses. Poll the passports, or the job referenced by `jobId`, to observe completion.

On applications with the Trust feature, published models carrying a product web page are enrolled for AI-visibility tracking right after publication, without delaying it.

## Query parameters

- `filters` union[]
  - union
    - object
      - `operator` 'or' | 'and', required
      - `value` union[], required
        - union
          - object
            - `field` 'id', required
            - `operator` 'eq', required
            - `value` string, required
          - object
            - `field` 'createdAt', required
            - `operator` 'gt' | 'lt' | 'gte' | 'lte', required
            - `value` string, date-time, required
          - object
            - `field` 'updatedAt', required
            - `operator` 'gt' | 'lt' | 'gte' | 'lte', required
            - `value` string, date-time, required
          - object
            - `field` 'application.id', required
            - `operator` 'eq', required
            - `value` string, uuid, required
          - object
            - `field` 'status', required
            - `operator` 'eq' | 'ne', required
            - `value` 'draft' | 'published' | 'claimed' | 'archived', required
          - object
            - `field` 'product.idGranularity', required
            - `operator` 'eq', required
            - `value` 'model' | 'batch' | 'item', required
          - object
            - `field` 'product.modelNumber', required
            - `operator` 'eq', required
            - `value` string, required
          - object
            - `field` 'product.batchNumber', required
            - `operator` 'eq', required
            - `value` string, required
          - object
            - `field` 'product.itemNumber', required
            - `operator` 'eq', required
            - `value` string, required
          - object
            - `field` 'product.name', required
            - `operator` 'contains', required
            - `value` string, required
          - object
            - `field` 'mintedTo.id', required
            - `operator` 'eq', required
            - `value` string, uuid, required
          - object
            - `field` 'structureJob', required
            - `operator` 'null' | 'nnull', required
            - `value` unknown, required
          - object
            - `field` 'structureJob.status', required
            - `operator` 'eq', required
            - `value` 'pending' | 'completed' | 'failed', required
          - object
            - `field` 'certifyJob', required
            - `operator` 'null' | 'nnull', required
            - `value` unknown, required
          - object
            - `field` 'certifyJob.status', required
            - `operator` 'eq', required
            - `value` 'pending' | 'completed' | 'failed', required
    - object
      - `field` 'id', required
      - `operator` 'eq', required
      - `value` string, required
    - object
      - `field` 'createdAt', required
      - `operator` 'gt' | 'lt' | 'gte' | 'lte', required
      - `value` string, date-time, required
    - object
      - `field` 'updatedAt', required
      - `operator` 'gt' | 'lt' | 'gte' | 'lte', required
      - `value` string, date-time, required
    - object
      - `field` 'application.id', required
      - `operator` 'eq', required
      - `value` string, uuid, required
    - object
      - `field` 'status', required
      - `operator` 'eq' | 'ne', required
      - `value` 'draft' | 'published' | 'claimed' | 'archived', required
    - object
      - `field` 'product.idGranularity', required
      - `operator` 'eq', required
      - `value` 'model' | 'batch' | 'item', required
    - object
      - `field` 'product.modelNumber', required
      - `operator` 'eq', required
      - `value` string, required
    - object
      - `field` 'product.batchNumber', required
      - `operator` 'eq', required
      - `value` string, required
    - object
      - `field` 'product.itemNumber', required
      - `operator` 'eq', required
      - `value` string, required
    - object
      - `field` 'product.name', required
      - `operator` 'contains', required
      - `value` string, required
    - object
      - `field` 'mintedTo.id', required
      - `operator` 'eq', required
      - `value` string, uuid, required
    - object
      - `field` 'structureJob', required
      - `operator` 'null' | 'nnull', required
      - `value` unknown, required
    - object
      - `field` 'structureJob.status', required
      - `operator` 'eq', required
      - `value` 'pending' | 'completed' | 'failed', required
    - object
      - `field` 'certifyJob', required
      - `operator` 'null' | 'nnull', required
      - `value` unknown, required
    - object
      - `field` 'certifyJob.status', required
      - `operator` 'eq', required
      - `value` 'pending' | 'completed' | 'failed', required
- `sorters` object[]
  - `field` 'id' | 'createdAt' | 'updatedAt', required
  - `order` 'asc' | 'desc', required
- `currentPage` integer
- `pageSize` integer
- `skipCertification` boolean

## Response `202`

Publication job accepted

- PublishDppPassportsResultDto
  - `jobId` string, uuid, nullable, required: Identifier of the background job that carries out the action, or null when the filter matched nothing to process. Passports change state as the job progresses, not when this call returns.
  - `eligibleCount` integer, required: Number of passports the job will process (matched passports plus the batches and items cascaded from them). It is what the job starts from, not a count of completed work.

---

[API](https://skmtc.dev/keyban/apis/keyban-rest-apis.md) · [All operations](https://skmtc.dev/keyban/apis/keyban-rest-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/keyban/apis/keyban-rest-apis/revisions/0bb79a1da961?raw)
