> ## Documentation Index
> Fetch the complete documentation index at: https://tapace.lk/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a deployment

> Returns a deployment's progress and how it reached the wallets.

**id** `string` *required*

The deployment ID, starting with `depl_`.

## The deployment object

**id** `string`

Unique ID, starting with `depl_`.

**templateId** `string`

The template being deployed.

**environment** `string`

`test` or `live`.

**targetRevision** `integer`

The template revision the passes move to.

**status** `string`

| Status | Meaning |
| - | - |
| `preparing` | TapAce is working out which passes change. It starts on its own when that's done. |
| `pending` | About to start. |
| `running` | Passes are being updated. |
| `completed` | Every pass was updated or skipped. |
| `completed_with_errors` | Finished, but some passes failed. See [the results](https://tapace.lk/docs/api-reference/deployments/results.md). |
| `failed` | It couldn't be prepared, started or finished. `error` says why when it never started. |
| `cancelled` | Stopped because the template's passes were voided. |

**notificationMode** `string`

`silent` or `notify`. Set when the deployment starts.

**totals** `object`

Passes in the deployment: `total`, `processed`, `migrated`, `skipped` and `failed`. A pass is skipped when it was voided or already moved to this revision or a newer one.

**delivery** `object`

How the updated passes reached the wallets: `pending` and `failed` updates, `apple` (`delivered`, `devices`, `notInstalled`, `failed`) and `google` (`updated`, `notSaved`, `failed`). With `notify`, `message` holds the texts sent and how many holders were alerted.

**plannedBackfills** `integer`

Values the new design fills in on passes, for example a field that changed from shared to per-pass and takes the old shared value.

**plannedOmits** `integer`

Per-pass fields that will show no value, because a pass has none and the field has no default.

**plannedRemovals** `integer`

Values on passes that the new design no longer shows. They're kept, not deleted.

**plannedIncompatibleBarcodes** `integer`

Barcode values that can't be shown in the new barcode format.

**error** `string | null`

Why the deployment failed before it started.

**actorUserId** `string`

Who started it. For the API, the API key's ID.

**createdAt** `string`

When it was created. `startedAt` and `finishedAt` record when it ran.

### Errors

| Status | When |
| - | - |
| `404` | The deployment doesn't exist in this environment. |

```bash cURL theme={null}
curl https://api.tapace.lk/v1/deployments/depl_Hc7Ln2Xq9Vt4Rk8Pz3Wd \
  -H "Authorization: Bearer $TAPACE_API_KEY"
```

```json 200 theme={null}
{
  "object": "deployment",
  "id": "depl_Hc7Ln2Xq9Vt4Rk8Pz3Wd",
  "templateId": "tmpl_Q4vN8xT2mLr7KpZs3Wd1",
  "environment": "test",
  "targetRevision": 4,
  "status": "completed",
  "notificationMode": "notify",
  "totals": { "total": 42, "processed": 42, "migrated": 41, "skipped": 1, "failed": 0 },
  "delivery": {
    "pending": 0,
    "failed": 0,
    "apple": { "delivered": 30, "devices": 31, "notInstalled": 2, "failed": 0 },
    "google": { "updated": 9, "notSaved": 0, "failed": 0 },
    "message": {
      "appleText": "Your card has a fresh new look.",
      "googleTitle": "Pass updated",
      "googleBody": "Your pass has been updated with new details.",
      "appleNotified": 30,
      "googleSent": 9,
      "googleLimitReached": 0,
      "failed": 0
    }
  },
  "plannedBackfills": 0,
  "plannedOmits": 0,
  "plannedRemovals": 0,
  "plannedIncompatibleBarcodes": 0,
  "error": null,
  "actorUserId": "cmgx4k2p90001ab12cd34ef56",
  "createdAt": "2026-10-18T10:00:00.000Z",
  "startedAt": "2026-10-18T10:00:05.000Z",
  "finishedAt": "2026-10-18T10:00:41.000Z"
}
```

```json 200 (failed) theme={null}
{
  "object": "deployment",
  "id": "depl_Hc7Ln2Xq9Vt4Rk8Pz3Wd",
  "status": "failed",
  "error": "A deployment for this template and environment is already in progress.",
  "startedAt": null,
  "finishedAt": "2026-10-18T10:00:04.000Z"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.