---
title: "Get a database schema promotion"
method: GET
path: "/api/v1/databases/{databaseId}/schema-promotions/{promotionId}"
tags: ["Databases"]
---

# Get a database schema promotion

`GET /api/v1/databases/{databaseId}/schema-promotions/{promotionId}`

## Request

- Base URL: `https://app.khotan.com`
- URL: `https://app.khotan.com/api/v1/databases/{databaseId}/schema-promotions/{promotionId}`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Returns the recorded schema promotion plan, including SQL, summary, blocked changes, and failure state.

## Path parameters

- `databaseId` string, required
- `promotionId` string, required

## Response `200`

The schema promotion record.

- object
  - `id` string, required
  - `databaseId` string, required
  - `branchId` string, required
  - `status` 'planning' | 'ready' | 'blocked' | 'applying' | 'applied' | 'failed', required
  - `sourceSchemaHash` string, required
  - `targetSchemaHash` string, required
  - `summary` object, required
    - `statementCount` integer, required
    - `createdSchemas` string[], required
    - `createdTypes` string[], required
    - `createdTables` string[], required
    - `addedColumns` string[], required
    - `createdIndexes` string[], required
    - `createdConstraints` string[], required
    - `blockedCount` integer, required
  - `blockedChanges` object[], required
    - `code` string, required
    - `message` string, required
    - `objectType` 'schema' | 'table' | 'column' | 'constraint' | 'index' | 'type', required
    - `objectName` string, required
    - `details` object
  - `sql` string, required
  - `failureState` object, nullable, required
    - `code` 'blocked_changes' | 'schema_unavailable' | 'validation_failed' | 'schema_changed' | 'apply_failed' | 'provider_unavailable' | 'provider_rejected' | 'internal_error', required
    - `message` string, required
  - `failedStatementIndex` integer, nullable, required
  - `createdAt` string, required
  - `updatedAt` string, required
  - `validatedAt` string, nullable, required
  - `appliedAt` string, nullable, required
  - `failedAt` string, nullable, required

## Other responses

- `401`: Authentication is missing or invalid.
- `404`: The resource was not found.
- `429`: Too many requests; retry after the indicated delay.

---

[API](https://skmtc.dev/khotan/apis/khotan-api.md) - [All operations](https://skmtc.dev/khotan/apis/khotan-api/llms.txt) - [OpenAPI document](https://skmtc.dev/khotan/apis/khotan-api/revisions/90b512a53e42?raw)
