---
title: "Create or update entity"
method: POST
path: "/api/v1/open-api"
tags: ["Catalog Entities"]
---

# Create or update entity

`POST /api/v1/open-api`

## Request

- Base URL: `https://api.getcortexapp.com`
- URL: `https://api.getcortexapp.com/api/v1/open-api`
- Auth: HTTP bearer

Create a catalog entity using a descriptor YAML. By default (UPSERT mode), if the entity already exists (as referenced by the `x-cortex-tag`), this API will update the existing entity. In CREATE mode, the API will fail if the entity already exists.

## Query parameters

- `dryRun` boolean
- `githubPullRequest` integer
- `mode` 'UPSERT' | 'CREATE'
- `asyncUpdateWaitTimeMs` integer

## Request body `application/openapi;charset=UTF-8`

- string

## Response `200`

Indicates that the entity was accepted and processed successfully

- OpenApiResponse
  - `ok` boolean, required
  - `violations` ViolationDTO[], required
    - `description` string
    - `endLine` integer
    - `paths` string[], required
    - `pointer` string
    - `ruleLink` string
    - `startLine` integer
    - `title` string
    - `violationType` 'MUST' | 'SHOULD' | 'MAY' | 'HINT'

## Other responses

- `400`: Invalid YAML (major errors or incorrectly formatted YAML)
- `429`: The client has exceeded the rate limit by performing too many requests in a short period. Retry the request after a delay.

## Changes

- **2026-11-03** `a7b058663c95`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cortex/apis/cortex-api/changes/api/v1/open-api/post.md)

---

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