---
title: "Promote Database"
method: POST
path: "/api/v1/ontology/databases/{database_id}/promote"
tags: ["ontology-promotion"]
---

# Promote Database

`POST /api/v1/ontology/databases/{database_id}/promote`

Promote a Database into an OntologyEntity (creates the writeable surface).

## Path parameters

- `database_id` string, uuid, required

## Request body

- PromoteBody
  - `name` string, required — Entity slug
  - `description` string
  - `display_name` string, nullable
  - `key_columns` string[], nullable — Single-element list naming the column whose values become the entity's row identity. Required for file-backed Databases (CSV uploads) whose key_columns is empty; ignored otherwise.

## Response `201`

Successful Response

- DomainsOntologySchemasEntityRead — Full entity for GET endpoints.
  - `id` string, uuid, required
  - `company_id` string, uuid, required
  - `name` string, required
  - `display_name` string, required
  - `description` string, required
  - `database_id` string, uuid, required
  - `key_column` string, required
  - `record_count` integer, required
  - `status` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `properties` EntityPropertyRead[]
    - `id` string, uuid, required
    - `column_name` string, required
    - `display_name` string, required
    - `description` string, required
    - `data_type` string, required
    - `is_primary_key` boolean, required
    - `order` integer, required
    - `rules` FieldRules — Declared value rules for one entity field. Empty instance = no rules.
      - `allowed_values` string[], nullable
      - `required` boolean
      - `format` FieldFormat — Type-specific value constraints. All optional; only set what applies.
        - `min` number, nullable
        - `max` number, nullable
        - `regex` string, nullable
        - `max_length` integer, nullable
        - `date_min` string, nullable
        - `date_max` string, nullable
        - `allowed_mime` string[], nullable
        - `max_size_bytes` integer, nullable
    - `origin` string
    - `managed_default` unknown
    - `file_folder_id` string, uuid, nullable
  - `relationships` EntityRelationshipBrief[]
    - `id` string, uuid, required
    - `name` string, required
    - `target_entity_id` string, uuid, required
    - `target_entity_name` string, required
    - `target_entity_display_name` string, required
    - `relationship_type` string, required
    - `cardinality` string, required
  - `fed_by` FedByProject[]
    - `project_id` string, uuid, required
    - `project_name` string, required
  - `is_editable` boolean
  - `is_file_backed` boolean
  - `last_synced_at` string, date-time, nullable
  - `source_row_count` integer
  - `icon` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/netter/apis/dmi-backend.md) · [All operations](https://skmtc.net/netter/apis/dmi-backend/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/netter/dmi-backend/versions/a59877bf911b/schema)
