Cortex Custom Data API

Arbitrary key/value metadata attached to catalog entities.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cortex-idp-custom-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cortex-idp-custom-data-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Cortex REST Catalog Custom Data API
  description: Cortex (cortex.io) is an internal developer portal (IDP) and software catalog. This OpenAPI describes the documented public REST API at https://api.getcortexapp.com/api/v1, covering the Catalog/Entities, Scorecards, Custom Data, Initiatives, Deploys, and third-party Integration configurations (GitHub shown as the exemplar). All requests are authenticated with an Authorization Bearer token - an API key created in the Settings page of your Cortex workspace. Paths and methods here are grounded in the live Cortex API reference (docs.cortex.io/api); request and response schemas are honestly modeled and simplified, not copied verbatim, and are marked as such. Verify exact payloads against the current Cortex documentation. NOTE - this is Cortex.io the internal developer portal, NOT Cortex XSOAR (Palo Alto Networks) and NOT Orange Logic's Cortex DAM.
  version: '1.0'
  contact:
    name: Cortex
    url: https://www.cortex.io
servers:
- url: https://api.getcortexapp.com/api/v1
  description: Cortex REST API
security:
- bearerAuth: []
tags:
- name: Custom Data
  description: Arbitrary key/value metadata attached to catalog entities.
paths:
  /custom-data:
    get:
      operationId: getCustomDataAdvanced
      tags:
      - Custom Data
      summary: Retrieve custom data (advanced)
      description: Advanced retrieval of custom data across entities, supporting keys with non-alphanumeric characters. Full path is /catalog/custom-data.
      responses:
        '200':
          description: Custom data entries.
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: bulkUpsertCustomData
      tags:
      - Custom Data
      summary: Bulk add custom data
      description: Bulk operation to add multiple key/value pairs across many entities. Full path is /catalog/custom-data.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: Bulk upsert result.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /catalog/{tagOrId}/custom-data:
    parameters:
    - $ref: '#/components/parameters/TagOrId'
    get:
      operationId: listEntityCustomData
      tags:
      - Custom Data
      summary: List custom data for an entity
      description: Lists custom key/value data attached to an entity, with pagination.
      responses:
        '200':
          description: Custom data entries for the entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomDataList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: addEntityCustomData
      tags:
      - Custom Data
      summary: Add custom data to an entity
      description: Adds or creates a custom key/value data entry on an entity.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomDataInput'
      responses:
        '200':
          description: The created custom data entry.
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteEntityCustomData
      tags:
      - Custom Data
      summary: Delete custom data from an entity
      description: Deletes a custom data entry from an entity by key query parameter.
      parameters:
      - name: key
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Deletion confirmation.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /catalog/{tagOrId}/custom-data/{key}:
    parameters:
    - $ref: '#/components/parameters/TagOrId'
    - name: key
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getEntityCustomDataByKey
      tags:
      - Custom Data
      summary: Retrieve custom data by key
      description: Retrieves a specific custom data entry on an entity by key.
      responses:
        '200':
          description: The custom data entry.
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    TagOrId:
      name: tagOrId
      in: path
      required: true
      description: The entity's x-cortex-tag or id. Tags with forward slashes must be URL-encoded.
      schema:
        type: string
  schemas:
    CustomDataList:
      type: object
      properties:
        customData:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              value: {}
              description:
                type: string
              source:
                type: string
              dateUpdated:
                type: string
                format: date-time
    CustomDataInput:
      type: object
      required:
      - key
      - value
      properties:
        key:
          type: string
        value:
          description: Arbitrary JSON value.
        description:
          type: string
    Error:
      type: object
      properties:
        message:
          type: string
        requestId:
          type: string
  responses:
    Unauthorized:
      description: Missing or invalid Bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'API key created in the Settings page of your Cortex workspace, passed as Authorization: Bearer <token>.'