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

Plugins

Use these operations to interact with plugins in Cortex.

Required permissions

Your API key must have the Edit plugins permission for write operations (create, update, and delete). For read endpoints, your API key's effective role must be greater than or equal to the plugin's minimumRoleRequired setting — if it is not, read endpoints will return 403 Forbidden for existing plugins or an empty result set.

Operations

Get all plugins

get

Retrieve a list of all plugins, excluding drafts

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
includeDraftsbooleanOptional
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

List of plugins

application/json
pageinteger · int32Required

Current page number, 0-indexed

totalinteger · int32Required

Total number of results

totalPagesinteger · int32Required

Total number of pages

get/api/v1/plugins
GET /api/v1/plugins?pageSize=250&page=0 HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "page": 1,
  "plugins": [
    {
      "contexts": [
        {
          "type": "text",
          "entityFilter": "[Circular Reference]"
        }
      ],
      "createdBy": {
        "dateCreated": "2026-01-01T00:00:00.000Z",
        "email": "text",
        "id": 1,
        "lastLogin": "2026-01-01T00:00:00.000Z",
        "name": "text",
        "oauthUserId": "text",
        "tenantId": 1,
        "timezone": "text"
      },
      "description": "text",
      "iconTag": "text",
      "isDraft": true,
      "lastUpdated": "text",
      "minimumRoleRequired": "text",
      "name": "text",
      "proxyTag": "text",
      "tag": "text",
      "version": "text"
    }
  ],
  "total": 1,
  "totalPages": 1
}

Get plugin by tag

get

Retrieve the metadata of a plugin by tag

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
tagstringRequired

Unique identifier for the plugin

Query parameters
includeBlobbooleanOptional

When true, returns the plugin blob. Defaults to false.

Default: false
Responses
200

Metadata of the plugin

application/json
blobstringOptional

The raw source code of the plugin; only returned if the blob is updated as part of the request.

descriptionstringOptional

Description of the plugin

iconTagstringOptional

Icon tag for the plugin

isDraftbooleanRequired

Whether the plugin is generally available or not

lastUpdatedstringRequired

When the plugin was last updated

minimumRoleRequiredstringRequired

The minimum role required to view the plugin, e.g. VIEWER, USER, MANAGER, OWNER, or the tag for a custom role. Learn more about each permission in our docs.

namestringRequired

Display name of the plugin

proxyTagstringOptional

The identifier of the proxy to use for requests from this plugin

tagstringRequired

Unique identifier for the plugin

versionstringOptional

The version of the plugin

get/api/v1/plugins/{tag}
GET /api/v1/plugins/{tag} HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "blob": "text",
  "contexts": [
    {
      "type": "text",
      "entityFilter": "[Circular Reference]"
    }
  ],
  "createdBy": {
    "dateCreated": "2026-01-01T00:00:00.000Z",
    "email": "text",
    "id": 1,
    "lastLogin": "2026-01-01T00:00:00.000Z",
    "name": "text",
    "oauthUserId": "text",
    "tenantId": 1,
    "timezone": "text"
  },
  "description": "text",
  "iconTag": "text",
  "isDraft": true,
  "lastUpdated": "text",
  "minimumRoleRequired": "text",
  "name": "text",
  "proxyTag": "text",
  "tag": "text",
  "version": "text"
}

Create a plugin

post

Create a new plugin

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.

Body
blobstringRequired

The raw source code of the plugin. This should be an HTML file

descriptionstringOptional

Description of the plugin

iconTagstringOptional

Icon tag for the plugin

isDraftbooleanRequired

Whether the plugin is generally available or not

minimumRoleRequiredstringRequired

The minimum role required to view the plugin, e.g. VIEWER, USER, MANAGER, OWNER, or the tag for a custom role. Learn more about each permission in our docs.

namestringRequired

Display name of the plugin

proxyTagstringOptional

The identifier of the proxy to use for requests from this plugin

tagstringRequired

Unique identifier for the plugin

versionstringOptional

The version of the plugin

Responses
200

Metadata of the created plugin

application/json
descriptionstringOptional

Description of the plugin

iconTagstringOptional

Icon tag for the plugin

isDraftbooleanRequired

Whether the plugin is generally available or not

lastUpdatedstringRequired

When the plugin was last updated

minimumRoleRequiredstringRequired

The minimum role required to view the plugin, e.g. VIEWER, USER, MANAGER, OWNER, or the tag for a custom role. Learn more about each permission in our docs.

namestringRequired

Display name of the plugin

proxyTagstringOptional

The identifier of the proxy to use for requests from this plugin

tagstringRequired

Unique identifier for the plugin

versionstringOptional

The version of the plugin

post/api/v1/plugins
POST /api/v1/plugins HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 226

{
  "blob": "text",
  "contexts": [
    {
      "type": "text",
      "entityFilter": "[Circular Reference]"
    }
  ],
  "description": "text",
  "iconTag": "text",
  "isDraft": true,
  "minimumRoleRequired": "text",
  "name": "text",
  "proxyTag": "text",
  "tag": "text",
  "version": "text"
}
{
  "contexts": [
    {
      "type": "text",
      "entityFilter": "[Circular Reference]"
    }
  ],
  "createdBy": {
    "dateCreated": "2026-01-01T00:00:00.000Z",
    "email": "text",
    "id": 1,
    "lastLogin": "2026-01-01T00:00:00.000Z",
    "name": "text",
    "oauthUserId": "text",
    "tenantId": 1,
    "timezone": "text"
  },
  "description": "text",
  "iconTag": "text",
  "isDraft": true,
  "lastUpdated": "text",
  "minimumRoleRequired": "text",
  "name": "text",
  "proxyTag": "text",
  "tag": "text",
  "version": "text"
}

Replace a plugin

put

Replace an existing plugin by tag

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
tagstringRequired

Unique identifier for the plugin

Body
blobstringRequired

The raw source code of the plugin. This should be an HTML file

descriptionstringOptional

Description of the plugin

iconTagstringOptional

Icon tag for the plugin

isDraftbooleanRequired

Whether the plugin is generally available or not

minimumRoleRequiredstringRequired

The minimum role required to view the plugin, e.g. VIEWER, USER, MANAGER, OWNER, or the tag for a custom role. Learn more about each permission in our docs.

namestringRequired

Display name of the plugin

proxyTagstringOptional

The identifier of the proxy to use for requests from this plugin

versionstringOptional

The version of the plugin

Responses
200

Metadata of the replaced plugin

application/json
descriptionstringOptional

Description of the plugin

iconTagstringOptional

Icon tag for the plugin

isDraftbooleanRequired

Whether the plugin is generally available or not

lastUpdatedstringRequired

When the plugin was last updated

minimumRoleRequiredstringRequired

The minimum role required to view the plugin, e.g. VIEWER, USER, MANAGER, OWNER, or the tag for a custom role. Learn more about each permission in our docs.

namestringRequired

Display name of the plugin

proxyTagstringOptional

The identifier of the proxy to use for requests from this plugin

tagstringRequired

Unique identifier for the plugin

versionstringOptional

The version of the plugin

put/api/v1/plugins/{tag}
PUT /api/v1/plugins/{tag} HTTP/1.1
Host: api.getcortexapp.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 213

{
  "blob": "text",
  "contexts": [
    {
      "type": "text",
      "entityFilter": "[Circular Reference]"
    }
  ],
  "description": "text",
  "iconTag": "text",
  "isDraft": true,
  "minimumRoleRequired": "text",
  "name": "text",
  "proxyTag": "text",
  "version": "text"
}
{
  "contexts": [
    {
      "type": "text",
      "entityFilter": "[Circular Reference]"
    }
  ],
  "createdBy": {
    "dateCreated": "2026-01-01T00:00:00.000Z",
    "email": "text",
    "id": 1,
    "lastLogin": "2026-01-01T00:00:00.000Z",
    "name": "text",
    "oauthUserId": "text",
    "tenantId": 1,
    "timezone": "text"
  },
  "description": "text",
  "iconTag": "text",
  "isDraft": true,
  "lastUpdated": "text",
  "minimumRoleRequired": "text",
  "name": "text",
  "proxyTag": "text",
  "tag": "text",
  "version": "text"
}

Delete a plugin

delete

Delete a plugin by tag

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
tagstringRequired

Unique identifier for the plugin

Responses
204

Plugin deleted

No content

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

No content

Last updated

Was this helpful?