For the complete documentation index, see llms.txt. This page is also available as Markdown.

Catalog Entities

Use these operations to interact with entities in Cortex.

To see additional API operations specific to team entities, see the Teams API page.

Required permissions

  • Edit entities: Your API key must have the Edit entities permission.

  • Archive entities: Your API key must have the Archive entities permission.

  • Delete entities: Your API key must have Delete entities permission.

Operations

List entities

get

List all entities across the Service, Resource and Domain Catalogs.

This API returns summary data for each entity, so refer to the retrieve entity method to lookup more details for a single entity.

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Query parameters
groupsstring[]Optional

Filter based on groups, which correspond to the x-cortex-groups field in the Catalog Descriptor. Accepts a comma-delimited list of groups

Default: []
ownersstring[]Optional

Filter based on owner group names. Returns entities owned by the specified groups, as well as entities owned by any child/sub-teams of those groups. Group names correspond to the x-cortex-owners field in the Catalog Descriptor. Accepts a comma-delimited list of owner group names.

Default: []
hierarchyDepthstringOptional

Depth of the parent / children hierarchy nodes. Can be 'full' or a valid integer

Default: full
gitRepositoriesstring[]Optional

Filter by git repositories. Supports GitHub (github:org/repo or org/repo), GitLab (gitlab:namespace/project), Bitbucket (bitbucket:workspace/repo), and Azure DevOps (azure-devops:project/repo). Unprefixed values default to GitHub for backward compatibility.

Default: []Example: cortexapps%2Fbackend,gitlab:my-group%2Fmy-project
includeHierarchyFieldsstring[]Optional

List of sub fields to include for hierarchies. Only supports 'groups'

Example: groups
typesstring[]Optional

Filter the response to specific types of entities. By default, this includes services, resources, and domains. Corresponds to the x-cortex-type field in the entity descriptor.

Default: []Example: service,rds,s3,domain
querystringOptional

Filter based on a search query. This will search across entity properties. If provided, results will be sorted by relevance.

Default: ""
includeArchivedbooleanOptional

Whether to include archived entities in the response

Default: false
includeMetadatabooleanOptional

Whether to include custom data for each entity in the response

Default: false
includeLinksbooleanOptional

Whether to include links for each entity in the response

Default: false
includeSlackChannelsbooleanOptional

Whether to include Slack channels for each entity in the response

includeOwnersbooleanOptional

Whether to include ownership information for each entity in the response

Default: false
includeNestedFieldsstring[]Optional

List of sub fields to include for different types

Example: team:members
pageSizeinteger · int32Required

Number of results to return per page, between 1 and 1000. Default 250.

Default: 250
pageinteger · int32Required

Page number to return, 0-indexed. Default 0.

Default: 0
Responses
200

Successfully found entities

application/json

List of all catalog entities, including services, resources, and domains. Use the "type" field to determine what type each entity is.

pageinteger · int32Required

Current page number, 0-indexed

totalinteger · int32Required

Total number of results

totalPagesinteger · int32Required

Total number of pages

get/api/v1/catalog
GET /api/v1/catalog?pageSize=250&page=0 HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "entities": [
    {
      "description": "text",
      "git": {
        "alias": "text",
        "basepath": "text",
        "provider": "github",
        "repository": "text",
        "repositoryUrl": "text"
      },
      "groups": [
        "text"
      ],
      "hierarchy": {
        "children": [
          {
            "children": "[Circular Reference]",
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "tag": "text",
            "type": "text"
          }
        ],
        "parents": [
          {
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "parents": "[Circular Reference]",
            "tag": "text",
            "type": "text"
          }
        ]
      },
      "id": "en2da8159dbeefb974",
      "isArchived": true,
      "lastUpdated": "2026-01-01T00:00:00.000Z",
      "links": [
        {
          "description": "text",
          "name": "text",
          "type": "text",
          "url": "text"
        }
      ],
      "members": [
        {
          "description": "Product manager",
          "email": "aditya.bansal@cortex.io",
          "name": "Aditya Bansal",
          "roles": [
            {
              "name": "Team Leader",
              "source": "WORKDAY"
            }
          ],
          "sources": [
            {
              "externalGroupId": "text",
              "externalId": "text",
              "provider": "ACTIVE_DIRECTORY",
              "type": "ENTITY_DEFINED"
            }
          ]
        }
      ],
      "metadata": [
        {
          "key": "text",
          "value": {}
        }
      ],
      "name": "My Favorite Entity",
      "owners": {
        "individuals": [
          {
            "description": "Product manager",
            "email": "text"
          }
        ],
        "teams": [
          {
            "description": "This is my team",
            "id": "en2da8159dbeefb974",
            "inheritance": "APPEND",
            "isArchived": true,
            "name": "My Favorite Team",
            "provider": "ACTIVE_DIRECTORY",
            "tag": "my-favorite-team-entity"
          }
        ]
      },
      "slackChannels": [
        {
          "description": "This is the engineering channel",
          "name": "engineering",
          "notificationsEnabled": true
        }
      ],
      "tag": "my-favorite-entity",
      "type": "service"
    }
  ],
  "page": 1,
  "total": 1,
  "totalPages": 1
}
get

Relevance-ranked catalog search. Returns a lean, hydrated result set scoped by query and/or filters.

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Query parameters
querystringOptional

Relevance search text. Plain words work; AND/OR/NOT supported.

typesstring[]Optional

Restrict to entity types, e.g. service, domain, team, resource.

ownersstring[]Optional

Owner team tags. Returns entities owned by these teams, including their sub-teams.

domainsstring[]Optional

Domain tags. Returns entities in these domains, including their sub-domains.

catalogstringOptional

Catalog slug. Scopes the search to that catalog's entities.

pageinteger · int32Optional

0-indexed page number.

Default: 0
pageSizeinteger · int32Optional

Results per page, 1-100.

Default: 25
includeArchivedbooleanOptionalDefault: false
Responses
200

OK

application/json

Relevance-ranked catalog search results.

get/api/v1/catalog/search
GET /api/v1/catalog/search HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "pagination": {
    "hasMore": true,
    "page": 1,
    "pageSize": 1,
    "total": 1,
    "totalPages": 1
  },
  "results": [
    {
      "cid": "en2da8159dbeefb974",
      "description": "text",
      "groups": [
        "text"
      ],
      "name": "text",
      "ownerEmails": [
        "text"
      ],
      "owningTeamTags": [
        "text"
      ],
      "status": "ACTIVE",
      "tag": "payments-api",
      "type": "service"
    }
  ]
}

List entity descriptors

get

List entity descriptors

The descriptors do not include objects (e.g. custom data, dependencies, etc) defined via the API

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Query parameters
yamlbooleanOptional

When true, returns the YAML representation of the descriptors

typesstring[]Optional

Filter the response to specific types of entities. By default, this includes services, resources, and domains. Corresponds to the x-cortex-type field in the entity descriptor.

Example: service,rds,s3,domain
pageSizeinteger · int32Required

Number of entities to return per page

pageinteger · int32Required

Page number to return, 0 indexed

includeArchivedbooleanOptional

Whether to include archived entities in the response

Responses
200

Successfully retrieved entity descriptors

application/json
or
get/api/v1/catalog/descriptors
GET /api/v1/catalog/descriptors?pageSize=1&page=1 HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "descriptors": [
    "text"
  ],
  "page": 1,
  "total": 1,
  "totalPages": 1
}

Retrieve entity details

get
Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Query parameters
hierarchyDepthstringOptional

Depth of the parent / children hierarchy nodes. Can be 'full' or a valid integer

Default: full
includeHierarchyFieldsstring[]Optional

List of sub fields to include for hierarchies. Only supports 'groups'

Example: groups
includeOwnersbooleanOptional

Include ownership information, default is true

Responses
200

Successfully found entity

application/json
definitionobject · JsonNodeOptional
descriptionstringOptional

Description of the entity visible in the Service, Resource, or Domain Catalog. Markdown is supported.

groupsstring[]Required

Corresponds to the x-cortex-groups field in the Catalog Descriptor

idstringRequired

Unique, immutable, 18-character auto-generated identifier for the entity.

Example: en2da8159dbeefb974
isArchivedbooleanRequired
lastUpdatedstring · date-timeRequired

Last updated ISO timestamp

namestringRequired

Human-readable name for the entity

Example: My Favorite Entity
tagstringRequired

Unique identifier for the entity. Corresponds to the x-cortex-tag field in the entity descriptor.

Example: my-favorite-entity
typestringRequired

Type of the entity. Corresponds to the x-cortex-type field in the entity descriptor or 'service' for services.

Example: service
get/api/v1/catalog/{tagOrId}
GET /api/v1/catalog/{tagOrId} HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "definition": {},
  "description": "text",
  "git": {
    "alias": "text",
    "basepath": "text",
    "provider": "github",
    "repository": "text",
    "repositoryUrl": "text"
  },
  "groups": [
    "text"
  ],
  "hierarchy": {
    "children": [
      {
        "children": {
          "children": {
            "children": "[Circular Reference]",
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "tag": "text",
            "type": "text"
          },
          "definition": {},
          "description": "text",
          "groups": [
            "text"
          ],
          "id": "text",
          "name": "text",
          "tag": "text",
          "type": "text"
        },
        "definition": {},
        "description": "text",
        "groups": [
          "text"
        ],
        "id": "text",
        "name": "text",
        "tag": "text",
        "type": "text"
      }
    ],
    "parents": [
      {
        "definition": {},
        "description": "text",
        "groups": [
          "text"
        ],
        "id": "text",
        "name": "text",
        "parents": {
          "definition": {},
          "description": "text",
          "groups": [
            "text"
          ],
          "id": "text",
          "name": "text",
          "parents": {
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "parents": "[Circular Reference]",
            "tag": "text",
            "type": "text"
          },
          "tag": "text",
          "type": "text"
        },
        "tag": "text",
        "type": "text"
      }
    ]
  },
  "id": "en2da8159dbeefb974",
  "isArchived": true,
  "lastUpdated": "2026-01-01T00:00:00.000Z",
  "links": [
    {
      "description": "text",
      "name": "text",
      "type": "text",
      "url": "text"
    }
  ],
  "metadata": [
    {
      "key": "text",
      "value": {}
    }
  ],
  "name": "My Favorite Entity",
  "ownersV2": {
    "individuals": [
      {
        "description": "Product manager",
        "email": "text"
      }
    ],
    "teams": [
      {
        "description": "This is my team",
        "id": "en2da8159dbeefb974",
        "inheritance": "APPEND",
        "isArchived": true,
        "name": "My Favorite Team",
        "provider": "ACTIVE_DIRECTORY",
        "tag": "my-favorite-team-entity"
      }
    ]
  },
  "ownership": {
    "emails": [
      {
        "description": "text",
        "email": "text",
        "inheritance": "APPEND"
      }
    ],
    "groups": [
      {
        "description": "text",
        "groupName": "cortexapps/engineering",
        "inheritance": "APPEND",
        "provider": "ACTIVE_DIRECTORY"
      }
    ]
  },
  "slackChannels": [
    {
      "description": "This is the engineering channel",
      "name": "engineering",
      "notificationsEnabled": true
    }
  ],
  "tag": "my-favorite-entity",
  "type": "service"
}

Retrieve most recent GitOps log for entity

get
Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Responses
200

Retrieve most recent GitOps log for entity

application/json
commitstringRequired
dateCreatedstring · date-timeRequired

Date when the GitOps log was created

fileNamestringRequired

Relative path of the cortex.yaml file

Example: .cortex/catalog/brain-backend.yaml
get/api/v1/catalog/{tagOrId}/gitops-logs
GET /api/v1/catalog/{tagOrId}/gitops-logs HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "commit": "text",
    "dateCreated": "2026-01-01T00:00:00.000Z",
    "fileName": ".cortex/catalog/brain-backend.yaml",
    "repository": {
      "provider": "AZURE_DEVOPS",
      "repositoryName": "cortexapps/catalog"
    }
  }
]

Retrieve entity descriptor

get

Retrieve entity descriptor

The descriptor does not include objects (e.g. custom data, dependencies, etc) defined via the API

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Query parameters
yamlbooleanOptional

When true, returns the YAML representation of the descriptor

Responses
200

Successfully found entity descriptor

application/json
stringOptional
or
object · JsonNodeOptional
get/api/v1/catalog/{tagOrId}/openapi
GET /api/v1/catalog/{tagOrId}/openapi HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
text

Retrieve entity Scorecard scores

get
Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Responses
200

All entity Scorecard scores

application/json
scorenumberRequired
scorePercentagenumberRequired
scorecardIdinteger · int64Required
scorecardNamestringRequired
totalPossibleScorenumberRequired
get/api/v1/catalog/{tagOrId}/scorecards
GET /api/v1/catalog/{tagOrId}/scorecards HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "ladderLevels": [
      {
        "level": {
          "name": "Bronze",
          "number": 1
        }
      }
    ],
    "score": 1,
    "scorePercentage": 1,
    "scorecardId": 1,
    "scorecardName": "text",
    "totalPossibleScore": 1
  }
]

Create or update entity

post

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.

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Query parameters
dryRunbooleanOptional

When true, this endpoint only validates the descriptor contents and returns any errors or warnings.

githubPullRequestinteger · int32Optional

Add a comment with validation errors on the pull request with the given ID

modestring · enumOptional

Mode of operation: UPSERT (default) creates or updates existing entity, CREATE fails if entity already exists.

Possible values:
asyncUpdateWaitTimeMsinteger · int64Optional

Maximum time (milliseconds) to wait for asynchronous property updates. Default is zero.

Body
stringOptional
Responses
200

Indicates that the entity was accepted and processed successfully

application/json
okbooleanRequired
post/api/v1/open-api
POST /api/v1/open-api HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/openapi;charset=UTF-8
Accept: */*
Content-Length: 6

"text"
{
  "ok": true,
  "violations": [
    {
      "description": "text",
      "endLine": 1,
      "paths": [
        "text"
      ],
      "pointer": "text",
      "ruleLink": "text",
      "startLine": 1,
      "title": "text",
      "violationType": "MUST"
    }
  ]
}

Archive an entity

put
Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Responses
200

Successfully archived entity

application/json
definitionobject · JsonNodeOptional
descriptionstringOptional

Description of the entity visible in the Service, Resource, or Domain Catalog. Markdown is supported.

groupsstring[]Required

Corresponds to the x-cortex-groups field in the Catalog Descriptor

idstringRequired

Unique, immutable, 18-character auto-generated identifier for the entity.

Example: en2da8159dbeefb974
isArchivedbooleanRequired
lastUpdatedstring · date-timeRequired

Last updated ISO timestamp

namestringRequired

Human-readable name for the entity

Example: My Favorite Entity
tagstringRequired

Unique identifier for the entity. Corresponds to the x-cortex-tag field in the entity descriptor.

Example: my-favorite-entity
typestringRequired

Type of the entity. Corresponds to the x-cortex-type field in the entity descriptor or 'service' for services.

Example: service
put/api/v1/catalog/{tagOrId}/archive
PUT /api/v1/catalog/{tagOrId}/archive HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "definition": {},
  "description": "text",
  "git": {
    "alias": "text",
    "basepath": "text",
    "provider": "github",
    "repository": "text",
    "repositoryUrl": "text"
  },
  "groups": [
    "text"
  ],
  "hierarchy": {
    "children": [
      {
        "children": {
          "children": {
            "children": "[Circular Reference]",
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "tag": "text",
            "type": "text"
          },
          "definition": {},
          "description": "text",
          "groups": [
            "text"
          ],
          "id": "text",
          "name": "text",
          "tag": "text",
          "type": "text"
        },
        "definition": {},
        "description": "text",
        "groups": [
          "text"
        ],
        "id": "text",
        "name": "text",
        "tag": "text",
        "type": "text"
      }
    ],
    "parents": [
      {
        "definition": {},
        "description": "text",
        "groups": [
          "text"
        ],
        "id": "text",
        "name": "text",
        "parents": {
          "definition": {},
          "description": "text",
          "groups": [
            "text"
          ],
          "id": "text",
          "name": "text",
          "parents": {
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "parents": "[Circular Reference]",
            "tag": "text",
            "type": "text"
          },
          "tag": "text",
          "type": "text"
        },
        "tag": "text",
        "type": "text"
      }
    ]
  },
  "id": "en2da8159dbeefb974",
  "isArchived": true,
  "lastUpdated": "2026-01-01T00:00:00.000Z",
  "links": [
    {
      "description": "text",
      "name": "text",
      "type": "text",
      "url": "text"
    }
  ],
  "metadata": [
    {
      "key": "text",
      "value": {}
    }
  ],
  "name": "My Favorite Entity",
  "ownersV2": {
    "individuals": [
      {
        "description": "Product manager",
        "email": "text"
      }
    ],
    "teams": [
      {
        "description": "This is my team",
        "id": "en2da8159dbeefb974",
        "inheritance": "APPEND",
        "isArchived": true,
        "name": "My Favorite Team",
        "provider": "ACTIVE_DIRECTORY",
        "tag": "my-favorite-team-entity"
      }
    ]
  },
  "ownership": {
    "emails": [
      {
        "description": "text",
        "email": "text",
        "inheritance": "APPEND"
      }
    ],
    "groups": [
      {
        "description": "text",
        "groupName": "cortexapps/engineering",
        "inheritance": "APPEND",
        "provider": "ACTIVE_DIRECTORY"
      }
    ]
  },
  "slackChannels": [
    {
      "description": "This is the engineering channel",
      "name": "engineering",
      "notificationsEnabled": true
    }
  ],
  "tag": "my-favorite-entity",
  "type": "service"
}

Unarchive an entity

put
Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Responses
200

Successfully unarchived entity

application/json
definitionobject · JsonNodeOptional
descriptionstringOptional

Description of the entity visible in the Service, Resource, or Domain Catalog. Markdown is supported.

groupsstring[]Required

Corresponds to the x-cortex-groups field in the Catalog Descriptor

idstringRequired

Unique, immutable, 18-character auto-generated identifier for the entity.

Example: en2da8159dbeefb974
isArchivedbooleanRequired
lastUpdatedstring · date-timeRequired

Last updated ISO timestamp

namestringRequired

Human-readable name for the entity

Example: My Favorite Entity
tagstringRequired

Unique identifier for the entity. Corresponds to the x-cortex-tag field in the entity descriptor.

Example: my-favorite-entity
typestringRequired

Type of the entity. Corresponds to the x-cortex-type field in the entity descriptor or 'service' for services.

Example: service
put/api/v1/catalog/{tagOrId}/unarchive
PUT /api/v1/catalog/{tagOrId}/unarchive HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "definition": {},
  "description": "text",
  "git": {
    "alias": "text",
    "basepath": "text",
    "provider": "github",
    "repository": "text",
    "repositoryUrl": "text"
  },
  "groups": [
    "text"
  ],
  "hierarchy": {
    "children": [
      {
        "children": {
          "children": {
            "children": "[Circular Reference]",
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "tag": "text",
            "type": "text"
          },
          "definition": {},
          "description": "text",
          "groups": [
            "text"
          ],
          "id": "text",
          "name": "text",
          "tag": "text",
          "type": "text"
        },
        "definition": {},
        "description": "text",
        "groups": [
          "text"
        ],
        "id": "text",
        "name": "text",
        "tag": "text",
        "type": "text"
      }
    ],
    "parents": [
      {
        "definition": {},
        "description": "text",
        "groups": [
          "text"
        ],
        "id": "text",
        "name": "text",
        "parents": {
          "definition": {},
          "description": "text",
          "groups": [
            "text"
          ],
          "id": "text",
          "name": "text",
          "parents": {
            "definition": {},
            "description": "text",
            "groups": [
              "text"
            ],
            "id": "text",
            "name": "text",
            "parents": "[Circular Reference]",
            "tag": "text",
            "type": "text"
          },
          "tag": "text",
          "type": "text"
        },
        "tag": "text",
        "type": "text"
      }
    ]
  },
  "id": "en2da8159dbeefb974",
  "isArchived": true,
  "lastUpdated": "2026-01-01T00:00:00.000Z",
  "links": [
    {
      "description": "text",
      "name": "text",
      "type": "text",
      "url": "text"
    }
  ],
  "metadata": [
    {
      "key": "text",
      "value": {}
    }
  ],
  "name": "My Favorite Entity",
  "ownersV2": {
    "individuals": [
      {
        "description": "Product manager",
        "email": "text"
      }
    ],
    "teams": [
      {
        "description": "This is my team",
        "id": "en2da8159dbeefb974",
        "inheritance": "APPEND",
        "isArchived": true,
        "name": "My Favorite Team",
        "provider": "ACTIVE_DIRECTORY",
        "tag": "my-favorite-team-entity"
      }
    ]
  },
  "ownership": {
    "emails": [
      {
        "description": "text",
        "email": "text",
        "inheritance": "APPEND"
      }
    ],
    "groups": [
      {
        "description": "text",
        "groupName": "cortexapps/engineering",
        "inheritance": "APPEND",
        "provider": "ACTIVE_DIRECTORY"
      }
    ]
  },
  "slackChannels": [
    {
      "description": "This is the engineering channel",
      "name": "engineering",
      "notificationsEnabled": true
    }
  ],
  "tag": "my-favorite-entity",
  "type": "service"
}

Create or patch entity

patch

Creates or updates an entity using OpenAPI. If the YAML refers to an entity that already exists (as referenced by the x-cortex-tag), this API will merge the specified changes into the existing entity.

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Query parameters
dryRunbooleanOptional

When true, this endpoint only validates the descriptor contents and returns any errors or warnings.

deleteMarkerValuestringOptional

Delete keys with this value from the merged yaml, e.g. __delete__, if any values match this, they will not be included in merged YAML. For example my_value: __delete__ will remove my_value from the merged YAML.

appendArraysbooleanOptional

Default merge behavior is to replace arrays, set this to true to append arrays instead. For simple types, duplicate values will be removed from the merged array.

failIfEntityDoesNotExistbooleanOptional

Default behavior is to upsert the entity, set failIfEntityDoesNotExist=true to fail (404) if the entity specified in x-cortex-tag does not exist.

asyncUpdateWaitTimeMsinteger · int64Optional

Maximum time (milliseconds) to wait for asynchronous property updates. Default is zero.

Body
stringOptional
Responses
201

Indicates that the entity body was accepted, and the referenced x-cortex-tag did not exist and was created successfully

application/json
okbooleanRequired
patch/api/v1/open-api
PATCH /api/v1/open-api HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/openapi;charset=UTF-8
Accept: */*
Content-Length: 6

"text"
{
  "ok": true,
  "violations": [
    {
      "description": "text",
      "endLine": 1,
      "paths": [
        "text"
      ],
      "pointer": "text",
      "ruleLink": "text",
      "startLine": 1,
      "title": "text",
      "violationType": "MUST"
    }
  ]
}

Delete entity

delete
Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Responses
200

Successfully deleted entity

No content

delete/api/v1/catalog/{tagOrId}
DELETE /api/v1/catalog/{tagOrId} HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Delete entities by type

delete

Note: Dangerous operation that will delete all entities that are of the given type

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Query parameters
typesstring[]Optional

A list of entity types or IDs delete

idsstring[]Optional
Responses
200

Successfully deleted entities

No content

delete/api/v1/catalog
DELETE /api/v1/catalog HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Get Kubernetes resource details for an entity

get

Returns cached Kubernetes resource details for the specified entity. This endpoint serves cached data only and does not make live Kubernetes API calls.

Authorizations
AuthorizationstringRequired

All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.

Path parameters
tagOrIdstringRequired

Entity identifier - can be a tag or CID

Query parameters
pageSizeinteger · int32Required

Number of results to return per page, between 1 and 1000. Default 250.

Default: 250
pageinteger · int32Required

Page number to return, 0-indexed. Default 0.

Default: 0
Responses
200

Successfully retrieved Kubernetes resource details

application/json
pageinteger · int32Required

Current page number, 0-indexed

totalinteger · int32Required

Total number of results

totalPagesinteger · int32Required

Total number of pages

get/api/v1/catalog/{tagOrId}/k8s
GET /api/v1/catalog/{tagOrId}/k8s?pageSize=250&page=0 HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "page": 1,
  "resources": [
    {
      "cluster": "text",
      "details": {},
      "lastUpdated": "2026-01-01T00:00:00.000Z",
      "name": "text",
      "namespace": "text",
      "type": "DEPLOYMENT"
    }
  ],
  "total": 1,
  "totalPages": 1
}

Last updated

Was this helpful?