---
title: "Polarity REST API Reference"
slug: "polarity-rest-api-reference"
updated: 2026-06-13T00:48:12Z
published: 2026-06-13T00:48:12Z
canonical: "knowledge.threatconnect.com/polarity-rest-api-reference"
stale: true
---

> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.threatconnect.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Polarity REST API Reference

The Polarity API, version 5.7.3, provides a comprehensive set of endpoints for managing various aspects of the Polarity platform, including user interactions, server settings, and integrations. To access these resources, authentication is required using a bearer token obtained from the authentication endpoint. Responses are typically in JSON format, with support for both `application/json` and `application/vnd.api+json`. This API is designed for developers looking to integrate Polarity features into their applications or manage server configurations directly. The reference documentation is organized by resource group, making it easy to find the specific endpoints needed; a full schema reference can be found at the end of this document.

|  |  |
| --- | --- |
| **API version** | 5.7.3 |
| **Specification** | OpenAPI 3.0.0 |
| **Base URL** | `https://{POLARITY_SERVER}` |
| **Operations** | 152 across 27 resource groups |
| **Generated** | 2026-06-12 |

> This page is generated from the Polarity OpenAPI specification (`https://{POLARITY_SERVER}/api/openapi`). Do not edit it directly in Document360 — changes are overwritten on the next publish. Regenerate with the `apidocs` tool.

## Authentication

- **authorization** — `http`, scheme `bearer`, format `JWT`

JWT Authorization header using the Bearer scheme. Example: `Authorization: Bearer {token}`

## Contents

**Authentication & Access**

- [Authentication](/docs/polarity-rest-api-reference#tag-authentication) — User authentication *(2 operations)*
- [Socket Authentication](/docs/polarity-rest-api-reference#tag-socket-authentication) — This endpoint allows developers to obtain a WebSocket authentication token necessary for establishing secure and authenticated connections *(1 operation)*
- [API Keys](/docs/polarity-rest-api-reference#tag-api-keys) — API key management *(7 operations)*

**Users & Groups**

- [Users](/docs/polarity-rest-api-reference#tag-users) — User management *(16 operations)*
- [User Stats](/docs/polarity-rest-api-reference#tag-user-stats) — User statistics *(2 operations)*
- [Groups](/docs/polarity-rest-api-reference#tag-groups) — User notifications *(10 operations)*

**Channels & Conversations**

- [Channels](/docs/polarity-rest-api-reference#tag-channels) — Channels *(15 operations)*
- [Channel Subscriptions](/docs/polarity-rest-api-reference#tag-channel-subscriptions) — Channel subscriptions *(5 operations)*
- [Channel Write Subscriptions](/docs/polarity-rest-api-reference#tag-channel-write-subscriptions) — Channel write subscriptions *(4 operations)*
- [Conversations](/docs/polarity-rest-api-reference#tag-conversations) — Conversations *(7 operations)*

**Annotations & Intelligence**

- [Annotations](/docs/polarity-rest-api-reference#tag-annotations) — Annotations *(9 operations)*
- [Comments](/docs/polarity-rest-api-reference#tag-comments) — Comments on annotations *(5 operations)*
- [Votes](/docs/polarity-rest-api-reference#tag-votes) — Votes for annotations *(3 operations)*
- [Tags](/docs/polarity-rest-api-reference#tag-tags) — Annotation tags *(4 operations)*
- [Entities](/docs/polarity-rest-api-reference#tag-entities) — Entities *(3 operations)*
- [Parsed Entities](/docs/polarity-rest-api-reference#tag-parsed-entities) — Accessing the entity parsing service *(1 operation)*
- [Searchable Items](/docs/polarity-rest-api-reference#tag-searchable-items) — Searchable items *(1 operation)*

**Integrations**

- [Integrations](/docs/polarity-rest-api-reference#tag-integrations) — Integrations *(33 operations)*
- [Dataminr](/docs/polarity-rest-api-reference#tag-dataminr) — Dataminr alert ingestion and processing *(2 operations)*

**Server & Administration**

- [Server](/docs/polarity-rest-api-reference#tag-server) — Server management *(1 operation)*
- [Server Settings](/docs/polarity-rest-api-reference#tag-server-settings) — Server settings *(7 operations)*
- [Feature Flags](/docs/polarity-rest-api-reference#tag-feature-flags) — Feature flags *(2 operations)*
- [Colors](/docs/polarity-rest-api-reference#tag-colors) — Color configurations *(2 operations)*
- [AI Metrics](/docs/polarity-rest-api-reference#tag-ai-metrics) — This endpoint allows developers to retrieve a list of AI performance metrics associated with a specific user *(1 operation)*
- [Audit Logs](/docs/polarity-rest-api-reference#tag-audit-logs) — This endpoint allows developers to record new audit logs, capturing important events for tracking and review *(1 operation)*
- [Health](/docs/polarity-rest-api-reference#tag-health) — Health check endpoints for the server *(3 operations)*
- [HUD URLs](/docs/polarity-rest-api-reference#tag-hud-urls) — HUD URLs *(5 operations)*

---

## Authentication & Access

### Authentication

Endpoints related to user authentication

This resource group allows developers to manage and retrieve different authentication schemes, enabling secure user login and access control.

#### `GET /api/authentication-schemes` — List all authentication schemes

`operationId: PolarityWeb.AuthenticationController.index`

List all authentication schemes

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Authentication Schemes | [`AuthenticationSchemesResponseSchema`](/docs/polarity-rest-api-reference#schema-authenticationschemesresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/authentication-schemes/{id}` — Get an authentication scheme by ID

`operationId: PolarityWeb.AuthenticationController.show`

Get an authentication scheme by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the authentication scheme |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Authentication Scheme | [`AuthenticationSchemeResponseSchema`](/docs/polarity-rest-api-reference#schema-authenticationschemeresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`AuthenticationSchemeNotFoundSchema`](/docs/polarity-rest-api-reference#schema-authenticationschemenotfoundschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Socket Authentication

This endpoint allows developers to obtain a WebSocket authentication token necessary for establishing secure and authenticated connections.

#### `POST /api/socket-token` — Create WebSocket authentication token

`operationId: PolarityWeb.SocketController.create_token`

Generates a short-lived Phoenix token (5 minutes) for WebSocket authentication. Requires valid JWT or API token authentication.

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Socket Token Created | [`SocketTokenResponseSchema`](/docs/polarity-rest-api-reference#schema-sockettokenresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### API Keys

Endpoints related to API key management

This resource group allows developers to manage API keys, including creating, updating, retrieving, and deleting keys, as well as generating auth tokens.

#### `GET /api/api-keys` — List API keys

`operationId: PolarityWeb.ApiKeyController.index`

Lists all API keys.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[api-key.enabled]` | query | boolean | no | Supply filter[API-key.enabled] as a query parameter to filter/sort results |
| `sort[api-key.expiration-time]` | query | string | no | Supply sort[API-key.expiration-time] as a query parameter to filter/sort results |
| `sort[api-key.last-active]` | query | string | no | Supply sort[API-key.last-active] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | API Keys | [`ApiKeyIndexResponse`](/docs/polarity-rest-api-reference#schema-apikeyindexresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/api-keys` — Create an API key

`operationId: PolarityWeb.ApiKeyController.create`

Creates a new API key for the authenticated user.

**Request body**

Create API Key Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "enabled": false,
      "expiration-time": "",
      "name": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | API Key Created | [`CreateApiKeyResponse`](/docs/polarity-rest-api-reference#schema-createapikeyresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/api-keys/auth` — Create an auth token

`operationId: PolarityWeb.ApiKeyController.create_auth_token`

Creates a new auth token for the authenticated user.

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Auth Token Created | [`CreateAuthTokenResponse`](/docs/polarity-rest-api-reference#schema-createauthtokenresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/api-keys/me` — Get info about current API key

`operationId: PolarityWeb.ApiKeyController.me`

This endpoint only accepts request from API type tokens, and returns the metadata of the API key.

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | API Key | [`ApiKeyMeResponse`](/docs/polarity-rest-api-reference#schema-apikeymeresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`ApiKeyNotFoundSchema`](/docs/polarity-rest-api-reference#schema-apikeynotfoundschema) |

#### `DELETE /api/api-keys/{id}` — Delete an API key

`operationId: PolarityWeb.ApiKeyController.delete`

Deletes an API key.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the API key |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/api-keys/{id}` — Get an API key

`operationId: PolarityWeb.ApiKeyController.show`

Gets a single API key by its ID.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the API key |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | API Key | [`ApiKeyShowResponse`](/docs/polarity-rest-api-reference#schema-apikeyshowresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`ApiKeyNotFoundSchema`](/docs/polarity-rest-api-reference#schema-apikeynotfoundschema) |

#### `PATCH /api/api-keys/{id}` — Update an API key

`operationId: PolarityWeb.ApiKeyController.update`

Updates an API key.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the API key |

**Request body**

Update API Key Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "name": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

## Users & Groups

### Users

Endpoints related to user management

This resource group allows developers to manage users, including authentication, creating and updating user profiles, resetting passwords, and managing user sessions.

#### `GET /api/auth` — Authentication Info

`operationId: PolarityWeb.UserController.auth`

Get the current user and JWT

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Auth Response | [`LoginSchema`](/docs/polarity-rest-api-reference#schema-loginschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/user-clone` — Clone user

`operationId: PolarityWeb.UserController.clone`

Create a new user using an existing user as a template.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `option[includePasswordInWelcomeEmail]` | query | boolean | no | Supply option[includePasswordInWelcomeEmail] as a query parameter to filter/sort results |
| `option[clone]` | query | integer | no | Supply option[clone] as a query parameter to filter/sort results |

**Request body**

Create User Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "source-user": "",
      "target-user": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | User Response | [`CreateUserSchema`](/docs/polarity-rest-api-reference#schema-createuserschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Cloning non-existant user | [`CloneUserNotFoundSchema`](/docs/polarity-rest-api-reference#schema-cloneusernotfoundschema) |

#### `GET /api/users` — List users

`operationId: PolarityWeb.UserController.index`

List polarity users

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[user.enabled]` | query | boolean | no | Supply filter[user.enabled] as a query parameter to filter/sort results |
| `filter[user.username]` | query | string | no | Supply filter[user.username] as a query parameter to filter/sort results |
| `filter[user.email]` | query | string | no | Supply filter[user.email] as a query parameter to filter/sort results |
| `filter[user.is-admin]` | query | boolean | no | Supply filter[user.is-admin] as a query parameter to filter/sort results |
| `filter[user.full-name]` | query | string | no | Supply filter[user.full-name] as a query parameter to filter/sort results |
| `filter[user.is-local]` | query | boolean | no | Supply filter[user.is-local] as a query parameter to filter/sort results |
| `filter[user.is-proxy]` | query | boolean | no | Supply filter[user.is-proxy] as a query parameter to filter/sort results |
| `filter[user.id]` | query | array of string | no | Supply filter[user.ID] as a query parameter to filter/sort results |
| `sort[user.id]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.ID] as a query parameter to filter/sort results |
| `sort[user.enabled]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.enabled] as a query parameter to filter/sort results |
| `sort[user.username]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.username] as a query parameter to filter/sort results |
| `sort[user.email]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.email] as a query parameter to filter/sort results |
| `sort[user.last-seen-at]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.last-seen-at] as a query parameter to filter/sort results |
| `sort[user.is-admin]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.is-admin] as a query parameter to filter/sort results |
| `sort[user.full-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.full-name] as a query parameter to filter/sort results |
| `sort[user.is-local]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.is-local] as a query parameter to filter/sort results |
| `sort[user.is-proxy]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.is-proxy] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `option[user.include-api-keys]` | query | boolean | no | Supply option[user.include-API-keys] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | User Response | [`UserIndexSchema`](/docs/polarity-rest-api-reference#schema-userindexschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/users` — Create user

`operationId: PolarityWeb.UserController.create`

Create a new user

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `option[includePasswordInWelcomeEmail]` | query | boolean | no | Supply option[includePasswordInWelcomeEmail] as a query parameter to filter/sort results |
| `option[clone]` | query | integer | no | Supply option[clone] as a query parameter to filter/sort results |

**Request body**

Create User Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "clone-user": "",
      "email": "",
      "enabled": false,
      "force-password-reset": false,
      "full-name": "",
      "is-admin": false,
      "is-local": false,
      "password": "",
      "username": ""
    },
    "relationships": {
      "groups": {
        "data": [
          {
            "id": 0,
            "type": ""
          }
        ]
      }
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | User Response | [`CreateUserSchema`](/docs/polarity-rest-api-reference#schema-createuserschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `422` | Invalid Request | [`InvalidCreateUserPayloadSchema`](/docs/polarity-rest-api-reference#schema-invalidcreateuserpayloadschema) |

#### `POST /api/users/forgot-password` — Forgot password

`operationId: PolarityWeb.UserController.forgot_password`

Send a password reset email to the user.

**Request body**

Create User Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "identification": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Bad Request | [`PasswordResetNotAvailableSchema`](/docs/polarity-rest-api-reference#schema-passwordresetnotavailableschema) |
| `401` | Unauthorized | [`AlreadyAuthenticatedSchema`](/docs/polarity-rest-api-reference#schema-alreadyauthenticatedschema) |
| `404` | User not found | [`UserNotFoundSchema`](/docs/polarity-rest-api-reference#schema-usernotfoundschema) |

#### `POST /api/users/login` — Login

`operationId: PolarityWeb.UserController.login`

Login user with username and password, returning a JWT in addition to user information.

**Request body**

Create User Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `identification` | string | no |  |
| `password` | string (`password`) | no |  |
| `token` | string | no |  |

*Example request:*

```
{
  "identification": "",
  "password": "",
  "token": ""
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Login Response | [`LoginSchema`](/docs/polarity-rest-api-reference#schema-loginschema) |
| `401` | Bad Credentials | [`BadCredsSchema`](/docs/polarity-rest-api-reference#schema-badcredsschema) |
| `402` | Invalid License | [`InvalidLicenseSchema`](/docs/polarity-rest-api-reference#schema-invalidlicenseschema) |
| `422` | Invalid Request | [`InvalidLoginPayload`](/docs/polarity-rest-api-reference#schema-invalidloginpayload) |
| `460` | Password Reset Required | [`PassResetRequiredSchema`](/docs/polarity-rest-api-reference#schema-passresetrequiredschema) |

#### `POST /api/users/logout` — Logout

`operationId: PolarityWeb.UserController.logout`

Logout the authenticated user, revoking their JWT

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Logout Response | [`SessionRevokedSchema`](/docs/polarity-rest-api-reference#schema-sessionrevokedschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/users/logout-all-sessions` — Logout all sessions

`operationId: PolarityWeb.UserController.logout_all_sessions`

Logout user from all devices by revoking all session tokens and API keys owned by the user

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Logout All Response | [`SessionRevokedSchema`](/docs/polarity-rest-api-reference#schema-sessionrevokedschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/users/refresh` — Refresh token

`operationId: PolarityWeb.UserController.refresh_token`

Refresh the user's JWT

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Login Response | [`RefreshTokenSchema`](/docs/polarity-rest-api-reference#schema-refreshtokenschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/users/reset-password/{token}` — Reset password

`operationId: PolarityWeb.UserController.reset_password`

Reset the password for a user.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `token` | path | string | yes | The password reset token |

**Request body**

Reset Password Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "password": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`AlreadyAuthenticatedSchema`](/docs/polarity-rest-api-reference#schema-alreadyauthenticatedschema) |

#### `GET /api/users/sessions` — List active sessions

`operationId: PolarityWeb.UserController.list_sessions`

List all active sessions for the authenticated user

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Sessions Response | [`SessionSchema`](/docs/polarity-rest-api-reference#schema-sessionschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/users/{id}` — Show user

`operationId: PolarityWeb.UserController.show`

Find a user by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `option[groups]` | query | boolean | no | Supply option[groups] as a query parameter to filter/sort results |
| `id` | path | integer | yes | The ID of the user to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | User Response | [`ShowUserSchema`](/docs/polarity-rest-api-reference#schema-showuserschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `PATCH /api/users/{id}` — Update user

`operationId: PolarityWeb.UserController.update`

Update an existing user

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | integer | yes | The ID of the user to update |

**Request body**

Create User Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "email": "",
      "enabled": false,
      "first-time-user": false,
      "force-password-reset": false,
      "full-name": "",
      "is-admin": false,
      "is-local": false,
      "settings": {
        "annotations": {
          "split-entities-newline": false
        },
        "channels": {},
        "conversations": {},
        "emails": {
          "notified-inactive": false,
          "send-channel-notification": false,
          "send-comment-notification": false,
          "send-integration-notification": false,
          "send-upvote-notification": false
        },
        "onboarding": {
          "annotation-tour-complete": false,
          "viewed-apply-tags": false,
          "viewed-welcome": false
        },
        "startup": {
          "default-recognition-mode-set": false
        },
        "usertips": {
          "channels": {
            "create-channel": false,
            "subscribe": false
          },
          "integrations": {
            "options": false,
            "subscribe": false
          },
          "notifications": {
            "all-settings": false,
            "buttons": false,
            "on-demand-search-shortcut": false,
            "search-bar": false,
            "settings": false
          }
        }
      },
      "username": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | User Response | [`UpdateUserSchema`](/docs/polarity-rest-api-reference#schema-updateuserschema) |
| `204` | User not found | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/users/{id}/group-history` — Get Group Membership History for User

`operationId: PolarityWeb.UserController.group_history`

Retrieves all group membership changes for a specific user

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the user |
| `filter[membership-history.user-id]` | query | integer | no | Supply filter[membership-history.user-ID] as a query parameter to filter/sort results |
| `filter[membership-history.group-id]` | query | integer | no | Supply filter[membership-history.group-ID] as a query parameter to filter/sort results |
| `filter[membership-history.action]` | query | string | no | Supply filter[membership-history.action] as a query parameter to filter/sort results |
| `filter[membership-history.source]` | query | string | no | Supply filter[membership-history.source] as a query parameter to filter/sort results |
| `filter[membership-history.from-date]` | query | string (`date-time`) | no | Supply filter[membership-history.from-date] as a query parameter to filter/sort results |
| `filter[membership-history.to-date]` | query | string (`date-time`) | no | Supply filter[membership-history.to-date] as a query parameter to filter/sort results |
| `sort[membership-history.inserted-at]` | query | array of string (`asc`, `desc`) | no | Supply sort[membership-history.inserted-at] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `include` | query | string | no | Supply include as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Group History Response | [`MembershipHistoryResponse`](/docs/polarity-rest-api-reference#schema-membershiphistoryresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | User Not Found | [`UserNotFoundSchema`](/docs/polarity-rest-api-reference#schema-usernotfoundschema) |

#### `POST /api/users/{id}/password` — Change password

`operationId: PolarityWeb.UserController.change_password`

Change password for logged in user, or any user if the requestor is an admin.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | integer | yes | The ID of the user to change the password for |

**Request body**

Create User Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "current_password": "",
      "new_password": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/users/{id}/permissions` — List permissions for user

`operationId: PolarityWeb.UserController.list_permissions`

List the permissions for the provided user

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | integer | yes | The ID of the user to list permissions for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | User Permissions Response | [`UserPermissionSchema`](/docs/polarity-rest-api-reference#schema-userpermissionschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### User Stats

Endpoints related to user statistics

This resource group allows developers to retrieve statistical information about users, including both an overview of all user stats and detailed stats for a specific user.

#### `GET /api/user-stats` — Index User Stats

`operationId: PolarityWeb.UserStatsController.index`

Index User Stats

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `sort[user-stat.user-id]` | query | array of string (`asc`, `desc`) | no | Supply sort[user-stat.user-ID] as a query parameter to filter/sort results |
| `sort[user-stat.tag-count]` | query | array of string (`asc`, `desc`) | no | Supply sort[user-stat.tag-count] as a query parameter to filter/sort results |
| `sort[user-stat.upvote-total]` | query | array of string (`asc`, `desc`) | no | Supply sort[user-stat.upvote-total] as a query parameter to filter/sort results |
| `sort[user-stat.downvote-total]` | query | array of string (`asc`, `desc`) | no | Supply sort[user-stat.downvote-total] as a query parameter to filter/sort results |
| `sort[user-stat.comment-count]` | query | array of string (`asc`, `desc`) | no | Supply sort[user-stat.comment-count] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List User Stats Response | [`ListUserStatsResponse`](/docs/polarity-rest-api-reference#schema-listuserstatsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/user-stats/{id}` — Show User Stats

`operationId: PolarityWeb.UserStatsController.show`

Show User Stats

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the user to show stats for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | User Stats | [`ShowUserStatsResponse`](/docs/polarity-rest-api-reference#schema-showuserstatsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`UserStatsNotFoundResponse`](/docs/polarity-rest-api-reference#schema-userstatsnotfoundresponse) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Groups

Endpoints related to user notifications

This resource group allows developers to manage user groups, including creating, updating, and deleting groups, as well as adding or removing members. Notifications related to these actions can be retrieved using the provided endpoints.

#### `GET /api/groups` — List Groups

`operationId: PolarityWeb.GroupController.index`

List Groups

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[group.group-name]` | query | string | no | Supply filter[group.group-name] as a query parameter to filter/sort results |
| `filter[group.is-user]` | query | boolean | no | Supply filter[group.is-user] as a query parameter to filter/sort results |
| `filter[group.active-api-key]` | query | boolean | no | Supply filter[group.active-API-key] as a query parameter to filter/sort results |
| `sort[group.created-on]` | query | array of string (`asc`, `desc`) | no | Supply sort[group.created-on] as a query parameter to filter/sort results |
| `sort[group.group-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[group.group-name] as a query parameter to filter/sort results |
| `sort[group.user-count]` | query | array of string (`asc`, `desc`) | no | Supply sort[group.user-count] as a query parameter to filter/sort results |
| `option[user-created]` | query | boolean | no | Supply option[user-created] as a query parameter to filter/sort results |
| `option[include-api-keys]` | query | boolean | no | Supply option[include-API-keys] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `include` | query | string | no | Supply include as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Groups Response | [`ListGroupsResponse`](/docs/polarity-rest-api-reference#schema-listgroupsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/groups` — Create Group

`operationId: PolarityWeb.GroupController.create`

Create Group

**Request body**

Create Group Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "group-name": "",
      "is-user": false,
      "user-count": 0
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Create Group Response | [`CreateGroupResponse`](/docs/polarity-rest-api-reference#schema-creategroupresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `422` | Group name taken | [`GroupNameTakenResponse`](/docs/polarity-rest-api-reference#schema-groupnametakenresponse) |

#### `DELETE /api/groups/{id}` — Delete Group

`operationId: PolarityWeb.GroupController.delete`

Delete Group

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |

#### `GET /api/groups/{id}` — Get Group by ID

`operationId: PolarityWeb.GroupController.show`

Get Group by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group to retrieve |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Group | [`GroupResponse`](/docs/polarity-rest-api-reference#schema-groupresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |

#### `PATCH /api/groups/{id}` — Update Group

`operationId: PolarityWeb.GroupController.update_2`

Update Group

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group to update |

**Request body**

Update Group Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "group-name": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |
| `422` | Unprocessable Entity | [`UpdateUserGroupResponse`](/docs/polarity-rest-api-reference#schema-updateusergroupresponse) |

#### `PUT /api/groups/{id}` — Update Group

`operationId: PolarityWeb.GroupController.update`

Update Group

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group to update |

**Request body**

Update Group Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "group-name": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |
| `422` | Unprocessable Entity | [`UpdateUserGroupResponse`](/docs/polarity-rest-api-reference#schema-updateusergroupresponse) |

#### `GET /api/groups/{id}/members` — List Group Members

`operationId: PolarityWeb.GroupController.list_members`

List Group Members

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group to list members for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Group Members Response | [`ListMembersResponse`](/docs/polarity-rest-api-reference#schema-listmembersresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |

#### `GET /api/groups/{id}/membership-history` — Get Membership History for Group

`operationId: PolarityWeb.GroupController.membership_history`

Retrieves the membership change history for a specific group

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group |
| `filter[membership-history.user-id]` | query | integer | no | Supply filter[membership-history.user-ID] as a query parameter to filter/sort results |
| `filter[membership-history.group-id]` | query | integer | no | Supply filter[membership-history.group-ID] as a query parameter to filter/sort results |
| `filter[membership-history.action]` | query | string | no | Supply filter[membership-history.action] as a query parameter to filter/sort results |
| `filter[membership-history.source]` | query | string | no | Supply filter[membership-history.source] as a query parameter to filter/sort results |
| `filter[membership-history.from-date]` | query | string (`date-time`) | no | Supply filter[membership-history.from-date] as a query parameter to filter/sort results |
| `filter[membership-history.to-date]` | query | string (`date-time`) | no | Supply filter[membership-history.to-date] as a query parameter to filter/sort results |
| `sort[membership-history.inserted-at]` | query | array of string (`asc`, `desc`) | no | Supply sort[membership-history.inserted-at] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `include` | query | string | no | Supply include as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Membership History Response | [`MembershipHistoryResponse`](/docs/polarity-rest-api-reference#schema-membershiphistoryresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Group Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |

#### `DELETE /api/groups/{id}/relationships/members` — Remove Members from Group

`operationId: PolarityWeb.GroupController.remove_members`

Remove Members from Group

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group to remove members from |

**Request body**

Remove Members Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "id": 0,
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Unprocessable Entity | [`ProtectedGroupMembershipResponse`](/docs/polarity-rest-api-reference#schema-protectedgroupmembershipresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |

#### `POST /api/groups/{id}/relationships/members` — Add Members to Group

`operationId: PolarityWeb.GroupController.add_members`

Add Members to Group

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the group to add members to |

**Request body**

Add Members Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "id": 0,
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Unprocessable Entity | [`ProtectedGroupMembershipResponse`](/docs/polarity-rest-api-reference#schema-protectedgroupmembershipresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`GroupNotFoundResponse`](/docs/polarity-rest-api-reference#schema-groupnotfoundresponse) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

## Channels & Conversations

### Channels

Endpoints related to channels

This resource group allows developers to manage channels, including listing, creating, updating, and deleting channels, as well as managing permissions associated with them.

#### `GET /api/channel-filter-downloads` — List all filter downloads

`operationId: PolarityWeb.ChannelController.list_filter_downloads`

List all filter downloads

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Filter Downloads Response | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/channel-filter-downloads/{id}` — Show filter download

`operationId: PolarityWeb.ChannelController.show_filter_download`

Show filter download given a channel ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel to download the filter for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Filter Download Response | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/channel-filter-words` — List all filter words

`operationId: PolarityWeb.ChannelController.list_filter_words`

List all filter words

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[channel-filter-words.since-time]` | query | integer | no | Supply filter[channel-filter-words.since-time] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Filter Words Response | [`ListFilterWordsSchema`](/docs/polarity-rest-api-reference#schema-listfilterwordsschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/channel-filter-words/{id}` — Show filter words

`operationId: PolarityWeb.ChannelController.show_filter_words`

Show filter words given a channel ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[channel-filter-words.since-time]` | query | integer | no | Supply filter[channel-filter-words.since-time] as a query parameter to filter/sort results |
| `id` | path | string | yes | The ID of the channel to show filter words for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Filter Words Response | [`ListFilterWordsSchema`](/docs/polarity-rest-api-reference#schema-listfilterwordsschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/channel-filters` — List all filters

`operationId: PolarityWeb.ChannelController.list_filters`

List all filters

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Filter Response | [`ListFiltersSchema`](/docs/polarity-rest-api-reference#schema-listfiltersschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/channel-filters/{id}` — Show a filter

`operationId: PolarityWeb.ChannelController.show_filter`

Show a filter by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel to show the filter for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Filter Response | [`ShowFilterSchema`](/docs/polarity-rest-api-reference#schema-showfilterschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/channels` — List all channels

`operationId: PolarityWeb.ChannelController.index`

List all channels

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[channel.channel-name]` | query | string | no | Supply filter[channel.channel-name] as a query parameter to filter/sort results |
| `filter[channel.pending-deletion]` | query | boolean | no | Supply filter[channel.pending-deletion] as a query parameter to filter/sort results |
| `filter[channel.owner-id]` | query | integer | no | Supply filter[channel.owner-ID] as a query parameter to filter/sort results |
| `filter[channel.permissions]` | query | string | no | Supply filter[channel.permissions] as a query parameter to filter/sort results |
| `sort[channel.channel-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.channel-name] as a query parameter to filter/sort results |
| `sort[channel.created-on]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.created-on] as a query parameter to filter/sort results |
| `sort[channel.num-subscriptions]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.num-subscriptions] as a query parameter to filter/sort results |
| `sort[channel.num-write-subscriptions]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.num-write-subscriptions] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `option[permissions]` | query | boolean | no | Supply option[permissions] as a query parameter to filter/sort results |
| `option[subscribed]` | query | boolean | no | Supply option[subscribed] as a query parameter to filter/sort results |
| `option[user-subscriptions]` | query | boolean | no | Supply option[user-subscriptions] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Error Response | [`ChannelsSchema`](/docs/polarity-rest-api-reference#schema-channelsschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/channels` — Create a channel

`operationId: PolarityWeb.ChannelController.create`

Create a channel

**Request body**

Channel Create Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "channel-name": "",
      "default-color": "",
      "default-color-is-locked": false,
      "description": "",
      "groups": [
        {
          "id": 0,
          "permissions": [
            ""
          ]
        }
      ]
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Channel Response | [`CreateChannelSchema`](/docs/polarity-rest-api-reference#schema-createchannelschema) |
| `400` | Channel Name Taken | [`ChannelNameTakenSchema`](/docs/polarity-rest-api-reference#schema-channelnametakenschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `DELETE /api/channels/{id}` — Delete a channel

`operationId: PolarityWeb.ChannelController.delete`

Delete a channel

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `option[clear]` | query | boolean | no | Supply option[clear] as a query parameter to filter/sort results |
| `id` | path | string | yes | The ID of the channel to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Channel Response | [`DeleteChannelSchema`](/docs/polarity-rest-api-reference#schema-deletechannelschema) |
| `400` | Bad Request | [`GeneralGroupCantDeleteSchema`](/docs/polarity-rest-api-reference#schema-generalgroupcantdeleteschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ChannelNotFoundSchema`](/docs/polarity-rest-api-reference#schema-channelnotfoundschema) |

#### `GET /api/channels/{id}` — Show a channel

`operationId: PolarityWeb.ChannelController.show`

Show a channel by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[channel.channel-name]` | query | string | no | Supply filter[channel.channel-name] as a query parameter to filter/sort results |
| `filter[channel.pending-deletion]` | query | boolean | no | Supply filter[channel.pending-deletion] as a query parameter to filter/sort results |
| `filter[channel.owner-id]` | query | integer | no | Supply filter[channel.owner-ID] as a query parameter to filter/sort results |
| `filter[channel.permissions]` | query | string | no | Supply filter[channel.permissions] as a query parameter to filter/sort results |
| `sort[channel.channel-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.channel-name] as a query parameter to filter/sort results |
| `sort[channel.created-on]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.created-on] as a query parameter to filter/sort results |
| `sort[channel.num-subscriptions]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.num-subscriptions] as a query parameter to filter/sort results |
| `sort[channel.num-write-subscriptions]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.num-write-subscriptions] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `option[permissions]` | query | boolean | no | Supply option[permissions] as a query parameter to filter/sort results |
| `option[subscribed]` | query | boolean | no | Supply option[subscribed] as a query parameter to filter/sort results |
| `option[user-subscriptions]` | query | boolean | no | Supply option[user-subscriptions] as a query parameter to filter/sort results |
| `id` | path | string | yes | The ID of the channel to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Channel Response | [`ChannelSchema`](/docs/polarity-rest-api-reference#schema-channelschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`ChannelNotFoundSchema`](/docs/polarity-rest-api-reference#schema-channelnotfoundschema) |

#### `PATCH /api/channels/{id}` — Update a channel

`operationId: PolarityWeb.ChannelController.update_2`

Update a channel

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel to update |

**Request body**

Channel Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "channel-name": "",
      "default-color": "",
      "default-color-is-locked": false,
      "description": "",
      "pending-deletion": false
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Protected channel | [`ProtectedChannelSchema`](/docs/polarity-rest-api-reference#schema-protectedchannelschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ChannelNotFoundSchema`](/docs/polarity-rest-api-reference#schema-channelnotfoundschema) |

#### `PUT /api/channels/{id}` — Update a channel

`operationId: PolarityWeb.ChannelController.update`

Update a channel

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel to update |

**Request body**

Channel Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "channel-name": "",
      "default-color": "",
      "default-color-is-locked": false,
      "description": "",
      "pending-deletion": false
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Protected channel | [`ProtectedChannelSchema`](/docs/polarity-rest-api-reference#schema-protectedchannelschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ChannelNotFoundSchema`](/docs/polarity-rest-api-reference#schema-channelnotfoundschema) |

#### `GET /api/channels/{id}/permissions` — List permissions for a channel

`operationId: PolarityWeb.ChannelController.list_permissions`

List permissions for a channel

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `option[groups]` | query | boolean | no | Supply option[groups] as a query parameter to filter/sort results |
| `id` | path | string | yes | The ID of the channel to list permissions for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Channel Permissions Response | [`ListPermissionsSchema`](/docs/polarity-rest-api-reference#schema-listpermissionsschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`ChannelNotFoundSchema`](/docs/polarity-rest-api-reference#schema-channelnotfoundschema) |

#### `POST /api/channels/{id}/permissions` — Add permissions to a channel

`operationId: PolarityWeb.ChannelController.add_permissions`

Add permissions to a channel

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel to add permissions to |

**Request body**

Channel Permissions Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "attributes": {
        "permissions": [
          ""
        ]
      },
      "relationships": {
        "channel": {
          "data": {
            "id": 0,
            "type": ""
          }
        },
        "group": {
          "data": {
            "id": 0,
            "type": ""
          }
        }
      },
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Bad Request | [`GeneralGroupReadOnlySchema`](/docs/polarity-rest-api-reference#schema-generalgroupreadonlyschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `DELETE /api/channels/{id}/relationships/permissions` — Remove permissions from a channel

`operationId: PolarityWeb.ChannelController.remove_permissions`

Remove permissions from a channel

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel to remove permissions from |

**Request body**

Channel Permissions Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "id": "",
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Channel Subscriptions

Endpoints related to channel subscriptions

This group of endpoints allows developers to manage channel subscriptions, enabling them to list existing subscriptions, create new ones, and delete existing subscriptions.

#### `GET /api/channel-subscriptions` — List Channel Subscriptions

`operationId: PolarityWeb.ChannelSubscriptionController.index`

List Channel Subscriptions

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[channel-subscription.user-id]` | query | integer | no | Supply filter[channel-subscription.user-ID] as a query parameter to filter/sort results |
| `filter[channel-subscription.channel-id]` | query | integer | no | Supply filter[channel-subscription.channel-ID] as a query parameter to filter/sort results |
| `filter[channel.pending-deletion]` | query | boolean | no | Supply filter[channel.pending-deletion] as a query parameter to filter/sort results |
| `filter[channel.channel-name]` | query | string | no | Supply filter[channel.channel-name] as a query parameter to filter/sort results |
| `sort[channel-subscription.subscribed-on]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel-subscription.subscribed-on] as a query parameter to filter/sort results |
| `sort[channel-subscription.id]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel-subscription.ID] as a query parameter to filter/sort results |
| `sort[channel.num-subscriptions]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.num-subscriptions] as a query parameter to filter/sort results |
| `sort[channel.num-write-subscriptions]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.num-write-subscriptions] as a query parameter to filter/sort results |
| `sort[channel.channel-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel.channel-name] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `option[id-only]` | query | boolean | no | Supply option[ID-only] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Channel Subscriptions | [`ListChannelSubscriptions`](/docs/polarity-rest-api-reference#schema-listchannelsubscriptions) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `POST /api/channel-subscriptions` — Create a Channel Subscription

`operationId: PolarityWeb.ChannelSubscriptionController.create`

Create a Channel Subscription, allowing a user to subscribe others to a channel

**Request body**

Channel Subscription Create Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `meta` | object | no |  |

*Example request:*

```
{
  "data": [
    {
      "relationships": {
        "channel": {
          "data": {
            "id": 0,
            "type": ""
          }
        },
        "user": {
          "data": {
            "id": 0,
            "type": ""
          }
        }
      },
      "type": ""
    }
  ],
  "meta": {
    "channel-id": 0,
    "subscribe-all": false
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | create channel subscription response | [`CreateChannelSubscriptionResponse`](/docs/polarity-rest-api-reference#schema-createchannelsubscriptionresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `DELETE /api/channel-subscriptions/{id}` — Delete a Channel Subscription

`operationId: PolarityWeb.ChannelSubscriptionController.delete`

Delete a Channel Subscription

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel subscription to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ChannelSubscriptionNotFound`](/docs/polarity-rest-api-reference#schema-channelsubscriptionnotfound) |

#### `GET /api/channel-subscriptions/{id}` — Show a Channel Subscription (Placeholder)

`operationId: PolarityWeb.ChannelSubscriptionController.show`

This route is just a placeholder to enable the path helper methods for this controller.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel subscription to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Channel Subscription | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ChannelSubscriptionNotFound`](/docs/polarity-rest-api-reference#schema-channelsubscriptionnotfound) |

#### `PATCH /api/channel-subscriptions/{id}` — Update a Channel Subscription

`operationId: PolarityWeb.ChannelSubscriptionController.update`

Update a Channel Subscription

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel subscription to update |

**Request body**

Channel Subscription Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "show-notifications": false
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | update channel subscription response | [`UpdateChannelSubscriptionResponse`](/docs/polarity-rest-api-reference#schema-updatechannelsubscriptionresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ChannelSubscriptionNotFound`](/docs/polarity-rest-api-reference#schema-channelsubscriptionnotfound) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Channel Write Subscriptions

Endpoints related to channel write subscriptions

This resource group allows developers to manage channel write subscriptions, including listing existing subscriptions, creating new ones, and deleting specific subscriptions.

#### `GET /api/channel-write-subscriptions` — List Channel Write Subscriptions

`operationId: PolarityWeb.ChannelWriteSubscriptionsController.index`

List Channel Write Subscriptions

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[channel-write-subscription.user-id]` | query | integer | no | Supply filter[channel-write-subscription.user-ID] as a query parameter to filter/sort results |
| `filter[channel-write-subscription.channel-id]` | query | integer | no | Supply filter[channel-write-subscription.channel-ID] as a query parameter to filter/sort results |
| `filter[channel.pending-deletion]` | query | boolean | no | Supply filter[channel.pending-deletion] as a query parameter to filter/sort results |
| `sort[channel-write-subscription.subscribed-on]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel-write-subscription.subscribed-on] as a query parameter to filter/sort results |
| `sort[channel-write-subscription.id]` | query | array of string (`asc`, `desc`) | no | Supply sort[channel-write-subscription.ID] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Channel Write Subscriptions Response | [`ListChannelWriteSubscriptionsResponse`](/docs/polarity-rest-api-reference#schema-listchannelwritesubscriptionsresponse) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `POST /api/channel-write-subscriptions` — Create Channel Write Subscription

`operationId: PolarityWeb.ChannelWriteSubscriptionsController.create`

Create Channel Write Subscription

**Request body**

Channel Write Subscription Create Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "relationships": {
      "channel": {
        "data": {
          "id": 0,
          "type": ""
        }
      }
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Create Channel Write Subscription Response | [`CreateChannelWriteSubscriptionResponse`](/docs/polarity-rest-api-reference#schema-createchannelwritesubscriptionresponse) |
| `400` | Bad Request | [`CreateChannelWriteSubscriptionPendingDeletionResponse`](/docs/polarity-rest-api-reference#schema-createchannelwritesubscriptionpendingdeletionresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `DELETE /api/channel-write-subscriptions/{id}` — Delete Channel Write Subscription

`operationId: PolarityWeb.ChannelWriteSubscriptionsController.delete`

Delete Channel Write Subscription

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel write subscription to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ChannelWriteSubscriptionNotFound`](/docs/polarity-rest-api-reference#schema-channelwritesubscriptionnotfound) |

#### `GET /api/channel-write-subscriptions/{id}` — Show a Channel Write Subscription (Placeholder)

`operationId: PolarityWeb.ChannelWriteSubscriptionsController.show`

This route is just a placeholder to enable the path helper methods for this controller.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the channel write subscription to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Channel Write Subscription Response | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Conversations

Endpoints related to conversations

This resource group allows developers to manage and interact with chat conversations, including creating new conversations, listing available chat providers, summarizing conversation history, and reducing integration data.

#### `POST /api/conversations/chat` — Create a conversation

`operationId: createConversation`

Submit messages to the AI conversation system and get a response. Optionally include notification context for AI tools.

**Request body**

Conversation Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Conversation Response | object |
| `400` | Bad Request | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/conversations/providers` — List Available Chat Providers

`operationId: listChatProviders`

Returns a list of available chat providers

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Available Chat Providers | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/conversations/providers/{provider_name}` — List Models for Provider

`operationId: listProviderModels`

Returns a list of available models for a specific chat provider

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `provider_name` | path | string | yes | Provider name |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Available Models for Provider | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Provider Not Found | object |

#### `POST /api/conversations/summarize-history` — Summarize conversation history

`operationId: summarizeConversationHistory`

Accepts conversation history and returns a condensed summary for token reduction

**Request body**

Summarize History Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Summary Response | object |
| `400` | Bad Request | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/integrations/{id}/reducer/{name}` — Reduce Integration Data

`operationId: reduceIntegrationData`

Apply a specified reducer to data for a given integration

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Integration ID |
| `name` | path | string | yes | Reducer name |

**Request body** (required)

Data to be reduced by the specified reducer

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | yes |  |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Reducer Result | object |
| `404` | Not Found | object |
| `500` | Internal Server Error | object |

#### `GET /api/model-settings/{id}` — Get Model Settings

`operationId: getModelSettings`

Retrieve the current settings for the text model used in conversations

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Model settings ID (always 1 for singleton) |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Model Settings Response | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `PATCH /api/model-settings/{id}` — Update Model Settings

`operationId: updateModelSettings`

Update the settings for the text model used in conversations

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Model settings ID (always 1 for singleton) |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Model Settings Response | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

## Annotations & Intelligence

### Annotations

Endpoints related to annotations

This group of endpoints allows developers to manage and interact with annotations, including creating, updating, deleting, and retrieving annotation entities, as well as listing and viewing related comments.

#### `POST /api/lookups` — Lookup entities

`operationId: PolarityWeb.TagEntityController.lookup_entity`

Lookup entities to see if there are any annotation matches for the given entities.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `sort[tag-entity-pair.upvote-total]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.upvote-total] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[subscribed-only]` | query | boolean | no | Supply option[subscribed-only] as a query parameter to filter/sort results |

**Request body**

Integration Options Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "ip-entities": [
        ""
      ],
      "string-entities": [
        ""
      ]
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Lookup Entities Response | [`LookupEntitiesResponseSchema`](/docs/polarity-rest-api-reference#schema-lookupentitiesresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `DELETE /api/tag-entity-pairs` — Destory tag entities

`operationId: PolarityWeb.TagEntityController.destroy`

Destory tag entities given a specific user ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[tag-entity-pair.user-id]` | query | integer | no | Supply filter[tag-entity-pair.user-ID] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Destroy Tag Entity Response | [`DestroyTagEntityResponseSchema`](/docs/polarity-rest-api-reference#schema-destroytagentityresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/tag-entity-pairs` — List tag entities

`operationId: PolarityWeb.TagEntityController.index`

List tag entities

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[tag.tag-id]` | query | integer | no | Supply filter[tag.tag-ID] as a query parameter to filter/sort results |
| `filter[tag.tag-name-lower]` | query | string | no | Supply filter[tag.tag-name-lower] as a query parameter to filter/sort results |
| `filter[entity.entity-id]` | query | string | no | Supply filter[entity.entity-ID] as a query parameter to filter/sort results |
| `filter[entity.entity-name]` | query | string | no | Supply filter[entity.entity-name] as a query parameter to filter/sort results |
| `filter[entity.entity-name-lower]` | query | string | no | Supply filter[entity.entity-name-lower] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.id]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.ID] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.applied]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.applied] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.upvote-total]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.upvote-total] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.downvote-total]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.downvote-total] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.num-comments]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.num-comments] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.confidence]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.confidence] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.doi-start]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.doi-start] as a query parameter to filter/sort results |
| `sort[tag-entity-pair.doi-end]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag-entity-pair.doi-end] as a query parameter to filter/sort results |
| `sort[entity.entity-name-merged]` | query | array of string (`asc`, `desc`) | no | Supply sort[entity.entity-name-merged] as a query parameter to filter/sort results |
| `sort[user.username]` | query | array of string (`asc`, `desc`) | no | Supply sort[user.username] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Tag Entities Response | [`IndexTagEntitiesResponseSchema`](/docs/polarity-rest-api-reference#schema-indextagentitiesresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/tag-entity-pairs` — Create tag entity

`operationId: PolarityWeb.TagEntityController.create`

Create a tag entity pair for annotation

**Request body**

Create Tag Entity Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "attributes": {
        "channel-id": [
          0
        ],
        "comment": "",
        "confidence": 0,
        "doi-end": "",
        "doi-start": "",
        "entity": "",
        "entity_name_ip": "",
        "tag": "",
        "type": "ip"
      },
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Create Tag Entity Response | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `DELETE /api/tag-entity-pairs/{id}` — Delete tag entity

`operationId: PolarityWeb.TagEntityController.delete`

Delete a specific tag entity pair

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the tag entity to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Delete Tag Entity Response | [`DestroyTagEntityResponseSchema`](/docs/polarity-rest-api-reference#schema-destroytagentityresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/tag-entity-pairs/{id}` — Show tag entity

`operationId: PolarityWeb.TagEntityController.show`

Show a specific tag entity

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the tag entity to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Tag Entity Response | [`ShowTagEntityResponseSchema`](/docs/polarity-rest-api-reference#schema-showtagentityresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `PATCH /api/tag-entity-pairs/{id}` — Update tag entity

`operationId: PolarityWeb.TagEntityController.update_2`

Update a specific tag entity pair

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the tag entity to update |

**Request body**

Update Tag Entity Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "confidence": 0,
      "doi-end": "",
      "doi-start": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Update Tag Entity Response | [`UpdateTagEntityResponseSchema`](/docs/polarity-rest-api-reference#schema-updatetagentityresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `PUT /api/tag-entity-pairs/{id}` — Update tag entity

`operationId: PolarityWeb.TagEntityController.update`

Update a specific tag entity pair

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the tag entity to update |

**Request body**

Update Tag Entity Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "confidence": 0,
      "doi-end": "",
      "doi-start": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Update Tag Entity Response | [`UpdateTagEntityResponseSchema`](/docs/polarity-rest-api-reference#schema-updatetagentityresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/tag-entity-pairs/{id}/relationships/comments` — List comments

`operationId: PolarityWeb.TagEntityController.list_comments`

List comments for a specific tag entity pair

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[comment.note]` | query | string | no | Supply filter[comment.note] as a query parameter to filter/sort results |
| `filter[attributeTransforms]` | query | array of object | no | Supply filter[attributeTransforms] as a query parameter to filter/sort results |
| `sort[comment.created]` | query | array of string (`asc`, `desc`) | no | Supply sort[comment.created] as a query parameter to filter/sort results |
| `sort[comment.last-edited]` | query | array of string (`asc`, `desc`) | no | Supply sort[comment.last-edited] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `id` | path | string | yes | The ID of the tag entity to list comments for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Comments Response | [`ListCommentsResponseSchema`](/docs/polarity-rest-api-reference#schema-listcommentsresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Comments

Endpoints related to comments on annotations

This resource group allows developers to manage comments associated with annotations, enabling them to create, delete, show, and update comment entries.

#### `POST /api/comments` — Create Comment

`operationId: PolarityWeb.CommentController.create`

Create Comment

**Request body**

Create Comment Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "note": ""
    },
    "relationships": {
      "tag-entity-pair": {
        "data": {
          "id": 0,
          "type": ""
        }
      }
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Create Comment Response | [`CreateCommentResponse`](/docs/polarity-rest-api-reference#schema-createcommentresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Unprocessable Entity | [`CommentTagNotFoundResponse`](/docs/polarity-rest-api-reference#schema-commenttagnotfoundresponse) |

#### `DELETE /api/comments/{id}` — Delete Comment

`operationId: PolarityWeb.CommentController.delete`

Delete Comment

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the comment to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Delete Comment Response | [`DeleteCommentResponse`](/docs/polarity-rest-api-reference#schema-deletecommentresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Unprocessable Entity | [`CommentNotFoundResponse`](/docs/polarity-rest-api-reference#schema-commentnotfoundresponse) |

#### `GET /api/comments/{id}` — Show Comment (Placeholder)

`operationId: PolarityWeb.CommentController.show`

There is no show action for comments on the legacy controller.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the comment to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Comment Response | — |

#### `PATCH /api/comments/{id}` — Update Comment

`operationId: PolarityWeb.CommentController.update_2`

Update Comment

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the comment to update |

**Request body**

Update Comment Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "note": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Update Comment Response | [`UpdateCommentResponse`](/docs/polarity-rest-api-reference#schema-updatecommentresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Unprocessable Entity | [`CommentNotFoundResponse`](/docs/polarity-rest-api-reference#schema-commentnotfoundresponse) |

#### `PUT /api/comments/{id}` — Update Comment

`operationId: PolarityWeb.CommentController.update`

Update Comment

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the comment to update |

**Request body**

Update Comment Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "note": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Update Comment Response | [`UpdateCommentResponse`](/docs/polarity-rest-api-reference#schema-updatecommentresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Unprocessable Entity | [`CommentNotFoundResponse`](/docs/polarity-rest-api-reference#schema-commentnotfoundresponse) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Votes

Endpoints related to votes for annotations

This resource group allows developers to manage votes on annotations, enabling them to retrieve and cast votes.

#### `GET /api/votes` — Index Votes

`operationId: PolarityWeb.VotesController.index`

Index Votes

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[vote.user-id]` | query | integer | no | Supply filter[vote.user-ID] as a query parameter to filter/sort results |
| `filter[vote.context-id]` | query | integer | no | Supply filter[vote.context-ID] as a query parameter to filter/sort results |
| `sort[vote.id]` | query | array of string (`asc`, `desc`) | no | Supply sort[vote.ID] as a query parameter to filter/sort results |
| `sort[vote.user-id]` | query | array of string (`asc`, `desc`) | no | Supply sort[vote.user-ID] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Groups Response | [`IndexVotesResponse`](/docs/polarity-rest-api-reference#schema-indexvotesresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/votes` — Create Vote

`operationId: PolarityWeb.VotesController.create`

Create Vote

**Request body**

Create Vote Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "vote": 0
    },
    "relationships": {
      "tag-entity-pair": {
        "data": {
          "id": 0,
          "type": ""
        }
      }
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Vote | [`CreateVoteResponse`](/docs/polarity-rest-api-reference#schema-createvoteresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`NotFoundSchema`](/docs/polarity-rest-api-reference#schema-notfoundschema) |

#### `GET /api/votes/{id}` — Show Vote (Placeholder)

`operationId: PolarityWeb.VotesController.show`

Placeholder for Show Vote since the action is not implemented.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the vote to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Vote Response | — |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Tags

Endpoints related to annotation tags

This resource group allows developers to manage annotation tags, enabling them to list existing tags, create new ones, retrieve details of a specific tag, and delete unused tags.

#### `GET /api/tags` — List Tags

`operationId: PolarityWeb.TagController.index`

List Tags

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[tag.tag-name]` | query | string | no | Supply filter[tag.tag-name] as a query parameter to filter/sort results |
| `filter[tag.tag-name-lower]` | query | string | no | Supply filter[tag.tag-name-lower] as a query parameter to filter/sort results |
| `sort[tag.tag-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag.tag-name] as a query parameter to filter/sort results |
| `sort[tag.tag-name-lower]` | query | array of string (`asc`, `desc`) | no | Supply sort[tag.tag-name-lower] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Tags Response | [`ListTagsResponse`](/docs/polarity-rest-api-reference#schema-listtagsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/tags` — Create Tag

`operationId: PolarityWeb.TagController.create`

Create Tag

**Request body**

Create Tag Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "tag-name": ""
    },
    "relationships": {
      "tag-entity-pairs": {
        "data": [
          {
            "id": 0,
            "type": ""
          }
        ]
      }
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Tag | [`CreateTagResponse`](/docs/polarity-rest-api-reference#schema-createtagresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`NotFoundSchema`](/docs/polarity-rest-api-reference#schema-notfoundschema) |

#### `DELETE /api/tags/{id}` — Delete Tag

`operationId: PolarityWeb.TagController.delete`

Delete Tag

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the tag to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Delete Tag Response | [`DeleteTagResponse`](/docs/polarity-rest-api-reference#schema-deletetagresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`TagNotFoundResponse`](/docs/polarity-rest-api-reference#schema-tagnotfoundresponse) |

#### `GET /api/tags/{id}` — Show Tag

`operationId: PolarityWeb.TagController.show`

Show Tag

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the tag to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Tag | [`ShowTagResponse`](/docs/polarity-rest-api-reference#schema-showtagresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`NotFoundSchema`](/docs/polarity-rest-api-reference#schema-notfoundschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Entities

Endpoints related to entities

This resource group allows developers to manage and retrieve information about entities, including listing all entities, viewing specific entity details, and listing user views associated with an entity.

#### `GET /api/entities` — List Entities

`operationId: PolarityWeb.EntityController.index`

List Entities

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[entity.entity-name]` | query | string | no | Supply filter[entity.entity-name] as a query parameter to filter/sort results |
| `filter[entity.entity-name-lower]` | query | string | no | Supply filter[entity.entity-name-lower] as a query parameter to filter/sort results |
| `sort[entity.entity-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[entity.entity-name] as a query parameter to filter/sort results |
| `sort[entity.entity-name-merged]` | query | array of string (`asc`, `desc`) | no | Supply sort[entity.entity-name-merged] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Entities Response | [`ListEntitiesResponse`](/docs/polarity-rest-api-reference#schema-listentitiesresponse) |
| `400` | Bad Request | [`InvalidEntityNameFilterResponse`](/docs/polarity-rest-api-reference#schema-invalidentitynamefilterresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/entities/{id}` — Show Entity

`operationId: PolarityWeb.EntityController.show`

Show Entity

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the entity to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Entity Response | [`ShowEntityResponse`](/docs/polarity-rest-api-reference#schema-showentityresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Entity Not Found | [`EntityNotFoundResponse`](/docs/polarity-rest-api-reference#schema-entitynotfoundresponse) |

#### `GET /api/entities/{id}/relationships/user-views` — List User Views

`operationId: PolarityWeb.EntityController.list_user_views`

List User Views

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the entity to list user views for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List User Views Response | [`ListUserViewsResponse`](/docs/polarity-rest-api-reference#schema-listuserviewsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Entity Not Found | [`EntityNotFoundResponse`](/docs/polarity-rest-api-reference#schema-entitynotfoundresponse) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Parsed Entities

Endpoints for accessing the entity parsing service

This endpoint allows developers to submit text for entity parsing, receiving structured data about identified entities within the text.

#### `POST /api/parsed-entities` — Parse entities

`operationId: PolarityWeb.ParsedEntityController.create`

Send text to be parsed for entities and annotations, to be passed to the integrations with a request to integration-lookups/{{integration-ID}}

**Request body**

Parsed Entities Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "text": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Parsed Entities Response | [`ParsedEntitiesResponseSchema`](/docs/polarity-rest-api-reference#schema-parsedentitiesresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Searchable Items

Endpoints related to searchable items

This endpoint allows developers to retrieve a list of searchable items, enabling efficient querying and filtering of relevant data.

#### `GET /api/searchable-items` — List Searchable Items

`operationId: PolarityWeb.SearchableItemsController.index`

List Searchable Items

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[entity.entity-name-lower]` | query | string | no | Supply filter[entity.entity-name-lower] as a query parameter to filter/sort results |
| `filter[tag-entity-pair.channel-id]` | query | array of string | no | Supply filter[tag-entity-pair.channel-ID] as a query parameter to filter/sort results |
| `filter[tag-entity-pair.user-id]` | query | array of string | no | Supply filter[tag-entity-pair.user-ID] as a query parameter to filter/sort results |
| `sort[searchable-item.searchable-item-name]` | query | array of string (`asc`, `desc`) | no | Supply sort[searchable-item.searchable-item-name] as a query parameter to filter/sort results |
| `sort[searchable-item.searchable-item-name-lower]` | query | array of string (`asc`, `desc`) | no | Supply sort[searchable-item.searchable-item-name-lower] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |
| `option[search-tags]` | query | boolean | no | Supply option[search-tags] as a query parameter to filter/sort results |
| `option[search-entities]` | query | boolean | no | Supply option[search-entities] as a query parameter to filter/sort results |
| `option[search-comments]` | query | boolean | no | Supply option[search-comments] as a query parameter to filter/sort results |
| `option[search-subscribed-channels]` | query | boolean | no | Supply option[search-subscribed-channels] as a query parameter to filter/sort results |
| `option[search-all-users]` | query | boolean | no | Supply option[search-all-users] as a query parameter to filter/sort results |
| `option[search-selected-users]` | query | boolean | no | Supply option[search-selected-users] as a query parameter to filter/sort results |
| `option[search-logged-in-user]` | query | boolean | no | Supply option[search-logged-in-user] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Searchable Items Response | [`ListSearchableItemsResponse`](/docs/polarity-rest-api-reference#schema-listsearchableitemsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

## Integrations

### Integrations

Endpoints related to integrations

This group of endpoints allows developers to manage and interact with various integrations, including listing, updating, installing, and controlling their lifecycle. Developers can also customize and configure integration types, handle errors, and manage permissions associated with these integrations.

#### `GET /api/integration-options` — List options

`operationId: PolarityWeb.IntegrationController.list_options`

List all integration options

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[integration.id]` | query | string | no | Supply filter[integration.ID] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Options Response | [`IntegrationOptionsSchema`](/docs/polarity-rest-api-reference#schema-integrationoptionsschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `PATCH /api/integration-options` — Update options

`operationId: PolarityWeb.IntegrationController.update_options`

Update options for a given integration

**Request body**

Integration Options Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "attributes": {
        "admin-only": false,
        "user-can-edit": false,
        "value": null
      },
      "id": "",
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Options Response | [`IntegrationOptionsSchema`](/docs/polarity-rest-api-reference#schema-integrationoptionsschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integration-options/{id}` — Show options

`operationId: PolarityWeb.IntegrationController.show_options`

Show options for a given integration

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to show options for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Options Response | [`IntegrationOptionsSchema`](/docs/polarity-rest-api-reference#schema-integrationoptionsschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integration-templates/{id}` — Get integration templates

`operationId: PolarityWeb.IntegrationController.templates`

Get integration templates by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to get templates for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Template Response | [`IntegrationTemplatesSchema`](/docs/polarity-rest-api-reference#schema-integrationtemplatesschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `GET /api/integration-types` — List integration types

`operationId: PolarityWeb.IntegrationController.index_integration_types`

List integration types for a user

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[integration-types.enabled]` | query | boolean | no | Supply filter[integration-types.enabled] as a query parameter to filter/sort results |
| `filter[integration-types.subscribed-only]` | query | boolean | no | Supply filter[integration-types.subscribed-only] as a query parameter to filter/sort results |
| `filter[integration-types.integration-id]` | query | string | no | Supply filter[integration-types.integration-ID] as a query parameter to filter/sort results |
| `option[subscribedOnly]` | query | boolean | no | Supply option[subscribedOnly] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Types Index Response | [`IntegrationTypesSchema`](/docs/polarity-rest-api-reference#schema-integrationtypesschema) |

#### `DELETE /api/integration-types/{id}` — Delete an integration type

`operationId: PolarityWeb.IntegrationController.delete_type`

Delete an integration custom type from the database. ID supplied here is the type ID, which is a composite key of the integration ID and the type key. {integration_id}-{type.key}

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration type to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Bad Request | [`DeleteCoreTypeSchema`](/docs/polarity-rest-api-reference#schema-deletecoretypeschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `422` | Unprocessable Entity | [`IntegrationDoesntSupportCustomTypesSchema`](/docs/polarity-rest-api-reference#schema-integrationdoesntsupportcustomtypesschema) |

#### `GET /api/integration-types/{id}` — Show integration types

`operationId: PolarityWeb.IntegrationController.show_integration_types`

Show integration types for a specific integration. ID is the type ID i.e. {integration_id}-{type.key}.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration type to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Types Show Response | [`IntegrationTypesSchema`](/docs/polarity-rest-api-reference#schema-integrationtypesschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `PATCH /api/integration-types/{id}` — Update an integration type

`operationId: PolarityWeb.IntegrationController.update_type`

Update a type for the integration in the database. ID supplied here is the type ID, which is a composite key of the integration ID and the type key, i.e. {integration_id}-{type.key}.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration type to update |

**Request body**

Integration Type Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "enabled": false,
      "is-case-sensitive": false,
      "is-global": false,
      "name": "",
      "regex": "",
      "white-list": [
        ""
      ]
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Type Update Response | [`IntegrationTypeSchema`](/docs/polarity-rest-api-reference#schema-integrationtypeschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `POST /api/integration-types/{id}` — Create an integration custom type

`operationId: PolarityWeb.IntegrationController.create_type`

Create a custom type for an integration in the database. ID supplied here is the integration ID.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to create a type for |

**Request body**

Integration Type Create Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "is-case-sensitive": false,
      "is-global": false,
      "key": "",
      "name": "",
      "regex": "",
      "type": "",
      "white-list": [
        ""
      ]
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Type Create Response | [`IntegrationTypeSchema`](/docs/polarity-rest-api-reference#schema-integrationtypeschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |
| `422` | Unprocessable Entity | [`IntegrationDoesntSupportCustomTypesSchema`](/docs/polarity-rest-api-reference#schema-integrationdoesntsupportcustomtypesschema) |

#### `GET /api/integrations` — List integrations

`operationId: PolarityWeb.IntegrationController.index`

List integrations for a user

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[integration.name]` | query | string | no | Supply filter[integration.name] as a query parameter to filter/sort results |
| `filter[integration.subscribed]` | query | boolean | no | Supply filter[integration.subscribed] as a query parameter to filter/sort results |
| `filter[integration.status]` | query | array of string (`stopped`, `running`) | no | Supply filter[integration.status] as a query parameter to filter/sort results |
| `filter[integration.integration-errors]` | query | boolean | no | Supply filter[integration.integration-errors] as a query parameter to filter/sort results |
| `filter[integration.polarity-integration-uuid]` | query | string (`uuid`) | no | Supply filter[integration.polarity-integration-UUID] as a query parameter to filter/sort results |
| `sort[integration.name]` | query | array of string (`asc`, `desc`) | no | Supply sort[integration.name] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Index Response | [`IntegrationIndexSchema`](/docs/polarity-rest-api-reference#schema-integrationindexschema) |

#### `POST /api/integrations-upload` — Upload an integration

`operationId: PolarityWeb.IntegrationController.upload`

Upload an integration to polarity

**Request body**

Integration Installation Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `integration` | object | no |  |

*Example request:*

```
{
  "data": {
    "metadata": {}
  },
  "integration": {
    "content_type": "",
    "filename": "",
    "path": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Installation Response | [`IntegrationInstallationResponseSchema`](/docs/polarity-rest-api-reference#schema-integrationinstallationresponseschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `POST /api/integrations-upload/{id}` — Update an integration

`operationId: PolarityWeb.IntegrationController.update_upload`

Update an integration with new version

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to update |

**Request body**

Integration Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `integration` | object | no |  |

*Example request:*

```
{
  "data": {
    "metadata": {}
  },
  "integration": {
    "content_type": "",
    "filename": "",
    "path": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Installation Response | [`IntegrationInstallationResponseSchema`](/docs/polarity-rest-api-reference#schema-integrationinstallationresponseschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `GET /api/integrations/errors` — Index integration errors

`operationId: PolarityWeb.IntegrationController.index_all_errors`

Index all integration errors

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `filter[integration.name]` | query | string | no | Supply filter[integration.name] as a query parameter to filter/sort results |
| `filter[integration.subscribed]` | query | boolean | no | Supply filter[integration.subscribed] as a query parameter to filter/sort results |
| `filter[integration.status]` | query | array of string (`stopped`, `running`) | no | Supply filter[integration.status] as a query parameter to filter/sort results |
| `filter[integration.integration-errors]` | query | boolean | no | Supply filter[integration.integration-errors] as a query parameter to filter/sort results |
| `filter[integration.polarity-integration-uuid]` | query | string (`uuid`) | no | Supply filter[integration.polarity-integration-UUID] as a query parameter to filter/sort results |
| `sort[integration.name]` | query | array of string (`asc`, `desc`) | no | Supply sort[integration.name] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Error Response | [`IntegrationErrorsSchema`](/docs/polarity-rest-api-reference#schema-integrationerrorsschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `POST /api/integrations/install` — Install an integration

`operationId: PolarityWeb.IntegrationController.install`

Install an integration to polarity

**Request body**

Integration Installation Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "metadata": {},
      "name": "",
      "url": "",
      "uuid": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Installation Response | [`IntegrationInstallationResponseSchema`](/docs/polarity-rest-api-reference#schema-integrationinstallationresponseschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `DELETE /api/integrations/{id}` — Delete an integration

`operationId: PolarityWeb.IntegrationController.delete_integration`

Delete an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `GET /api/integrations/{id}` — Show an integration

`operationId: PolarityWeb.IntegrationController.show`

Show an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Show Response | [`IntegrationSchema`](/docs/polarity-rest-api-reference#schema-integrationschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `PATCH /api/integrations/{id}` — Update an integration

`operationId: PolarityWeb.IntegrationController.update`

Update the entry setting for the integration in the database.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to update |

**Request body**

Integration Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "acronym": "",
      "auto-restart-enabled": false,
      "auto-restart-max-wait-time": 0,
      "auto-restart-min-wait-time": 0,
      "auto-restart-reset-after-up-time": 0,
      "auto-restart-total-starts": 0,
      "autosubscribe": false,
      "cache-compression-enabled": false,
      "cache-is-enabled": false,
      "cache-is-per-user": false,
      "cache-lookup-misses": false,
      "cache-miss-ttl": 0,
      "cache-status": "",
      "cache-ttl": 0,
      "default-color": "",
      "default-color-is-locked": false,
      "description": "",
      "name": "",
      "proxy-settings": {
        "enabled": false,
        "host": "",
        "password": "",
        "port": 0,
        "scheme": "http",
        "user": ""
      },
      "run-on-server-start": false,
      "tls-allow-unauthorized": false,
      "user-settings": {
        "subscribed": false,
        "user-color": ""
      }
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Update Response | [`IntegrationSchema`](/docs/polarity-rest-api-reference#schema-integrationschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integrations/{id}/assets/*file_path` — Fetches an integration file

`operationId: PolarityWeb.IntegrationController.serve_asset_file`

Fetches an integration file based on the integration_id and the path of the file. Files will be read from the dist/ directory of the integration or from a custom folder specified in config/config.JSON under webComponents.staticAssetsDirectory property.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Integration ID |
| `file_path` | path | string | yes | The path of the file |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration File Response | [`StaticFileSchema`](/docs/polarity-rest-api-reference#schema-staticfileschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationFileNotFound`](/docs/polarity-rest-api-reference#schema-integrationfilenotfound) |

#### `DELETE /api/integrations/{id}/cache/clear` — Clear the cache for an integration

`operationId: PolarityWeb.IntegrationController.clear_cache`

Clear the cache for an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to clear the cache for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `PATCH /api/integrations/{id}/edit-level` — Update edit levels

`operationId: PolarityWeb.IntegrationController.update_edit_levels`

Updates an edit_level for integration / all integration's types in the database

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to update edit levels for |

**Request body**

Integration Edit Levels Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "edit-level": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `DELETE /api/integrations/{id}/errors` — Delete integration errors

`operationId: PolarityWeb.IntegrationController.delete_errors`

Delete integration errors for a specific integration

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to delete errors for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integrations/{id}/errors` — Index integration errors

`operationId: PolarityWeb.IntegrationController.index_errors`

Index all integration errors for a specific integration

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to get errors for |
| `filter[integration.name]` | query | string | no | Supply filter[integration.name] as a query parameter to filter/sort results |
| `filter[integration.subscribed]` | query | boolean | no | Supply filter[integration.subscribed] as a query parameter to filter/sort results |
| `filter[integration.status]` | query | array of string (`stopped`, `running`) | no | Supply filter[integration.status] as a query parameter to filter/sort results |
| `filter[integration.integration-errors]` | query | boolean | no | Supply filter[integration.integration-errors] as a query parameter to filter/sort results |
| `filter[integration.polarity-integration-uuid]` | query | string (`uuid`) | no | Supply filter[integration.polarity-integration-UUID] as a query parameter to filter/sort results |
| `sort[integration.name]` | query | array of string (`asc`, `desc`) | no | Supply sort[integration.name] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Error Response | [`IntegrationErrorsSchema`](/docs/polarity-rest-api-reference#schema-integrationerrorsschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `GET /api/integrations/{id}/errors/{error_hash}` — Show integration errors

`operationId: PolarityWeb.IntegrationController.show_errors`

Show integration errors by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to show errors for |
| `error_hash` | path | string | yes | The hash of the error to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Error Response | [`IntegrationErrorSchema`](/docs/polarity-rest-api-reference#schema-integrationerrorschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `POST /api/integrations/{id}/lookup` — Lookup

`operationId: PolarityWeb.IntegrationController.lookup`

Lookup entities in an integration

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to lookup |

**Request body**

Integration Lookup Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "entities": [
        {
          "channels": [
            {
              "channel-id": 0,
              "channel-name": ""
            }
          ],
          "display-value": "",
          "start-index": 0,
          "type": "",
          "value": ""
        }
      ]
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Lookup Response | [`IntegrationLookupSchema`](/docs/polarity-rest-api-reference#schema-integrationlookupschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `POST /api/integrations/{id}/message` — Create a message

`operationId: PolarityWeb.IntegrationController.create_message`

Fetch additional details from an integration with an onDetails message

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to create a message for |

**Request body**

Integration Message Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `meta` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "payload": {}
    },
    "type": ""
  },
  "meta": {
    "load-details-block": false
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Message Response | [`IntegrationMessageSchema`](/docs/polarity-rest-api-reference#schema-integrationmessageschema) |

#### `GET /api/integrations/{id}/permissions` — List permissions

`operationId: PolarityWeb.IntegrationController.list_permissions`

List permissions for a given integration

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `option[groups]` | query | boolean | no | Supply option[groups] as a query parameter to filter/sort results |
| `id` | path | string | yes | The ID of the integration to list permissions for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Permissions Response | [`IntegrationPermissionsSchema`](/docs/polarity-rest-api-reference#schema-integrationpermissionsschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `POST /api/integrations/{id}/permissions` — Add permissions

`operationId: PolarityWeb.IntegrationController.add_permissions`

Add permissions to an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to add permissions to |

**Request body**

Integration Permissions Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "attributes": {
        "permissions": [
          "read"
        ]
      },
      "relationships": {
        "group": {
          "data": {
            "id": 0,
            "type": ""
          }
        },
        "integration": {
          "data": {
            "id": "",
            "type": ""
          }
        }
      },
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `DELETE /api/integrations/{id}/relationships/permissions` — Remove permissions

`operationId: PolarityWeb.IntegrationController.remove_permissions`

Remove permissions from an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to remove permissions from |

**Request body**

Integration Permissions Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "id": "",
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integrations/{id}/restart` — Restart an integration

`operationId: PolarityWeb.IntegrationController.restart`

Restart an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to restart |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Status Response | [`IntegrationStatusSchema`](/docs/polarity-rest-api-reference#schema-integrationstatusschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integrations/{id}/start` — Start an integration

`operationId: PolarityWeb.IntegrationController.start`

Start an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to start |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Status Response | [`IntegrationStatusSchema`](/docs/polarity-rest-api-reference#schema-integrationstatusschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integrations/{id}/status` — Show the status of an integration

`operationId: PolarityWeb.IntegrationController.show_status`

Show the status of an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to show the status for |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Status Response | [`IntegrationStatusSchema`](/docs/polarity-rest-api-reference#schema-integrationstatusschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `GET /api/integrations/{id}/stop` — Stop an integration

`operationId: PolarityWeb.IntegrationController.stop`

Stop an integration by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to stop |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Status Response | [`IntegrationStatusSchema`](/docs/polarity-rest-api-reference#schema-integrationstatusschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`IntegrationNotFoundSchema`](/docs/polarity-rest-api-reference#schema-integrationnotfoundschema) |

#### `POST /api/integrations/{id}/update` — Update an integration

`operationId: PolarityWeb.IntegrationController.update_integration`

Update an integration with new version

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the integration to update |

**Request body**

Integration Update Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "metadata": {},
      "name": "",
      "url": "",
      "uuid": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Integration Installation Response | [`IntegrationInstallationResponseSchema`](/docs/polarity-rest-api-reference#schema-integrationinstallationresponseschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Dataminr

Endpoints for Dataminr alert ingestion and processing

This resource group enables developers to ingest and process Dataminr alerts, allowing for the integration of real-time event data into their applications.

#### `POST /api/alerts/dataminr/ingest` — Ingest Dataminr alerts

`operationId: ingestDataminrAlerts`

Receives a batch of Dataminr alerts for asynchronous enrichment. Alerts are validated and queued for processing. Enriched results are sent to CTTI.

**Request body**

Dataminr Alert Batch

*Content type: `application/json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | yes |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "alerts": [
        {
          "alertId": "abc-123",
          "alertTimestamp": "2026-02-17T20:57:37.497Z",
          "headline": "CVE-2025-1234 actively exploited"
        }
      ],
      "cttiArchiveUrl": "https://api.dataminr.com/ctti/v1/alerts/archive",
      "cttiToken": "eyJhbGci..."
    },
    "type": "dataminr-ingest"
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `202` | Accepted | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `413` | Batch Size Outside Allowed Range | object |
| `422` | Validation Error | object |
| `503` | Service Unavailable | object |

#### `POST /api/alerts/dataminr/process` — Process a single Dataminr alert synchronously

`operationId: processDataminrAlert`

Synchronously processes a single Dataminr alert and returns the enriched structure. Uses deterministic enrichment pipeline with integration lookups and optional AI synthesis when enabled.

**Request body**

Single Dataminr Alert

*Content type: `application/json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | yes |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "alert": {
        "alertId": "abc-123",
        "alertTimestamp": "2026-02-17T20:57:37.497Z",
        "headline": "CVE-2025-1234 actively exploited"
      }
    },
    "type": "dataminr_alert"
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Enriched Alert | object |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `422` | Validation or Processing Error | object |
| `500` | Internal Server Error | object |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

## Server & Administration

### Server

Endpoints for server management

This endpoint allows developers to retrieve detailed information about a server, enabling them to manage and monitor server resources effectively.

#### `GET /api/servers` — Find server information

`operationId: PolarityWeb.ServerController.find`

Find detailed information about the server and its license.

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Server Response | [`ServerResponseSchema`](/docs/polarity-rest-api-reference#schema-serverresponseschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Server Settings

Endpoints related to server settings

This resource group allows developers to manage various server settings, including viewing and updating global proxy configurations, testing SMTP connectivity, and modifying specific server settings.

#### `GET /api/server-settings` — List Server Settings

`operationId: PolarityWeb.ServerSettingController.index`

List Server Settings

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Server Settings Response | [`ListServerSettingsResponse`](/docs/polarity-rest-api-reference#schema-listserversettingsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `GET /api/server-settings/proxy-settings` — Show Global Proxy Settings

`operationId: PolarityWeb.ServerSettingController.show_global_proxy_settings`

Show Global Proxy Settings

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Global Proxy Settings Response | [`ShowGlobalProxySettingsResponse`](/docs/polarity-rest-api-reference#schema-showglobalproxysettingsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `PATCH /api/server-settings/proxy-settings` — Update Global Proxy Settings

`operationId: PolarityWeb.ServerSettingController.update_global_proxy_settings`

Update Global Proxy Settings

**Request body**

Update Global Proxy Settings Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "enabled": false,
      "host": "",
      "no-proxy": "",
      "password": "",
      "port": 0,
      "scheme": "",
      "user": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Update Global Proxy Settings Response | [`UpdateGlobalProxySettingsResponse`](/docs/polarity-rest-api-reference#schema-updateglobalproxysettingsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `POST /api/server-settings/smtp/test` — Test SMTP

`operationId: PolarityWeb.ServerSettingController.smtp`

Test SMTP

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Test SMTP Response | [`SmtpTestResponse`](/docs/polarity-rest-api-reference#schema-smtptestresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

#### `GET /api/server-settings/{id}` — Show Server Setting

`operationId: PolarityWeb.ServerSettingController.show`

Show Server Setting

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the server setting to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Server Setting Response | [`ShowServerSettingResponse`](/docs/polarity-rest-api-reference#schema-showserversettingresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ServerSettingNotFoundSchema`](/docs/polarity-rest-api-reference#schema-serversettingnotfoundschema) |

#### `PATCH /api/server-settings/{id}` — Update Server Setting

`operationId: PolarityWeb.ServerSettingController.update_2`

Update Server Setting

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the server setting to update |

**Request body**

Update Server Setting Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "display-name": "",
      "encrypted": false,
      "order": 0,
      "require-admin": false,
      "value": {
        "enabled": false,
        "smtp": {
          "authentication": [
            "CRAM-MD5"
          ],
          "domain": "",
          "fromAddress": "",
          "host": "",
          "password": "",
          "port": 0,
          "ssl": false,
          "timeout": 0,
          "tls": false,
          "user": ""
        }
      }
    },
    "id": "",
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Update Server Setting Response | [`UpdateServerSettingResponse`](/docs/polarity-rest-api-reference#schema-updateserversettingresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ServerSettingNotFoundSchema`](/docs/polarity-rest-api-reference#schema-serversettingnotfoundschema) |

#### `PUT /api/server-settings/{id}` — Update Server Setting

`operationId: PolarityWeb.ServerSettingController.update`

Update Server Setting

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the server setting to update |

**Request body**

Update Server Setting Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "display-name": "",
      "encrypted": false,
      "order": 0,
      "require-admin": false,
      "value": {
        "enabled": false,
        "smtp": {
          "authentication": [
            "CRAM-MD5"
          ],
          "domain": "",
          "fromAddress": "",
          "host": "",
          "password": "",
          "port": 0,
          "ssl": false,
          "timeout": 0,
          "tls": false,
          "user": ""
        }
      }
    },
    "id": "",
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Update Server Setting Response | [`UpdateServerSettingResponse`](/docs/polarity-rest-api-reference#schema-updateserversettingresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`ServerSettingNotFoundSchema`](/docs/polarity-rest-api-reference#schema-serversettingnotfoundschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Feature Flags

Endpoints related to feature flags

This resource group allows developers to manage and retrieve feature flags, enabling fine-grained control over which features are available in different environments or to specific user segments.

#### `GET /api/features` — List all feature flags

`operationId: PolarityWeb.FeatureFlagController.index`

List all feature flags

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Feature Flags | [`FeatureFlagsResponseSchema`](/docs/polarity-rest-api-reference#schema-featureflagsresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/features/{id}` — Get a feature flag by ID

`operationId: PolarityWeb.FeatureFlagController.show`

Get a feature flag by ID

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the feature flag to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Feature Flag | [`FeatureFlagResponseSchema`](/docs/polarity-rest-api-reference#schema-featureflagresponseschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Not Found | [`FeatureNotFoundSchema`](/docs/polarity-rest-api-reference#schema-featurenotfoundschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Colors

Endpoints for color configurations

This endpoint group allows developers to retrieve and view color configurations, enabling them to list all available colors or fetch details of a specific color.

#### `GET /api/colors` — List Colors

`operationId: PolarityWeb.ColorsController.index`

List Colors

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Colors Response | [`ListColorsResponse`](/docs/polarity-rest-api-reference#schema-listcolorsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `GET /api/colors/{id}` — Show Color

`operationId: PolarityWeb.ColorsController.show`

Show Color

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the color to show |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | Show Color Response | [`ShowColorResponse`](/docs/polarity-rest-api-reference#schema-showcolorresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `404` | Color Not Found | [`ColorNotFoundResponse`](/docs/polarity-rest-api-reference#schema-colornotfoundresponse) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### AI Metrics

This endpoint allows developers to retrieve a list of AI performance metrics associated with a specific user.

#### `GET /api/ai-metrics` — List AI metrics by user

`operationId: PolarityWeb.AiMetricsController.index`

List aggregated AI usage metrics per user - admin only

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `time_range` | query | string | no | Supply time_range as a query parameter to filter/sort results |
| `sort` | query | string | no | Supply sort as a query parameter to filter/sort results |
| `filter[term]` | query | string | no | Supply filter[term] as a query parameter to filter/sort results |
| `page[number]` | query | integer | no | Supply page[number] as a query parameter to filter/sort results |
| `page[size]` | query | integer | no | Supply page[size] as a query parameter to filter/sort results |
| `option[count]` | query | boolean | no | Supply option[count] as a query parameter to filter/sort results |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | AI Metrics Response | [`AiMetricsIndexSchema`](/docs/polarity-rest-api-reference#schema-aimetricsindexschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden - Admin Only | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Audit Logs

This endpoint allows developers to record new audit logs, capturing important events for tracking and review.

#### `POST /api/logs` — Create an audit log

`operationId: PolarityWeb.AuditLogController.create`

Creates a new audit log.

**Request body**

Create Audit Log Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

*Example request:*

```
{
  "data": [
    {
      "attributes": {
        "event": "",
        "log-data": {},
        "message": "",
        "user-id": 0
      },
      "type": ""
    }
  ]
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `201` | Audit Log Created | [`CreateAuditLogResponse`](/docs/polarity-rest-api-reference#schema-createauditlogresponse) |
| `422` | Invalid Request | [`InvalidAuditLogPayload`](/docs/polarity-rest-api-reference#schema-invalidauditlogpayload) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### Health

Health check endpoints for the server

This group of endpoints allows developers to verify the overall health and functionality of the server, including checking the application status and testing email notifications.

#### `GET /api/healthcheck` — Check the health of the application

`operationId: PolarityWeb.HealthController.check`

Check the health of the application by checking the database and Redis connection. Returns 204 if everything is healthy.

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |

**Example**

```
curl -X GET https://{POLARITY_SERVER}/api/healthcheck -H "Authorization: Bearer $TOKEN"
```

#### `POST /api/healthcheck/emails` — Test sending emails

`operationId: PolarityWeb.HealthController.test_emails`

Test sending all email templates by sending a test email to the email address of the current user.

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Bad Request | [`EmailTestErrorSchema`](/docs/polarity-rest-api-reference#schema-emailtesterrorschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `429` | Too Many Requests | [`RateLimitErrorSchema`](/docs/polarity-rest-api-reference#schema-ratelimiterrorschema) |

**Example**

```
curl -X POST https://{{POLARITY_SERVER}}/api/healthcheck/emails -H "Authorization: Bearer $TOKEN"
```

#### `POST /api/healthcheck/emails/{id}` — Test sending an email

`operationId: PolarityWeb.HealthController.test_email`

Test sending a specific email template to the current user

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the email template to test |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `400` | Bad Request | [`EmailTestErrorSchema`](/docs/polarity-rest-api-reference#schema-emailtesterrorschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `429` | Too Many Requests | [`RateLimitErrorSchema`](/docs/polarity-rest-api-reference#schema-ratelimiterrorschema) |

**Example**

```
curl -X POST https://api.polarity.com/healthcheck/emails/{id} -H "Authorization: Bearer $TOKEN"
```

[↑ Back to top](/docs/polarity-rest-api-reference#top)

### HUD URLs

Endpoints for HUD URLs

This group of endpoints allows developers to manage HUD URLs, including listing existing URLs, creating new ones, updating their details, and deleting them as needed.

#### `GET /api/default-hud-urls` — List HUD URLs

`operationId: PolarityWeb.HudUrlController.index`

List HUD URLs

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | List Groups Response | [`ListHudUrlsResponse`](/docs/polarity-rest-api-reference#schema-listhudurlsresponse) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |

#### `POST /api/default-hud-urls` — Create HUD URL

`operationId: PolarityWeb.HudUrlController.create`

Create HUD URL

**Request body**

Create HUD URL Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "enabled": false,
      "locked": false,
      "title": "",
      "url": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | HUD URL | [`HudUrlSchema`](/docs/polarity-rest-api-reference#schema-hudurlschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `422` | Error | [`ErrorSchema`](/docs/polarity-rest-api-reference#schema-errorschema) |

#### `DELETE /api/default-hud-urls/{id}` — Delete HUD URL

`operationId: PolarityWeb.HudUrlController.delete`

Delete HUD URL

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the HUD URL to delete |

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `204` | No Content | — |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`HudUrlNotFoundSchema`](/docs/polarity-rest-api-reference#schema-hudurlnotfoundschema) |

#### `PATCH /api/default-hud-urls/{id}` — Update HUD URL

`operationId: PolarityWeb.HudUrlController.update_2`

Update HUD URL

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the HUD URL to update |

**Request body**

Update HUD URL Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "enabled": false,
      "locked": false,
      "title": "",
      "url": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | HUD URL | [`HudUrlSchema`](/docs/polarity-rest-api-reference#schema-hudurlschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`HudUrlNotFoundSchema`](/docs/polarity-rest-api-reference#schema-hudurlnotfoundschema) |
| `422` | Error | [`ErrorSchema`](/docs/polarity-rest-api-reference#schema-errorschema) |

#### `PUT /api/default-hud-urls/{id}` — Update HUD URL

`operationId: PolarityWeb.HudUrlController.update`

Update HUD URL

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | The ID of the HUD URL to update |

**Request body**

Update HUD URL Request

*Content type: `application/vnd.api+json`*

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

*Example request:*

```
{
  "data": {
    "attributes": {
      "description": "",
      "enabled": false,
      "locked": false,
      "title": "",
      "url": ""
    },
    "type": ""
  }
}
```

**Responses**

| Code | Description | Schema |
| --- | --- | --- |
| `200` | HUD URL | [`HudUrlSchema`](/docs/polarity-rest-api-reference#schema-hudurlschema) |
| `401` | Unauthorized | [`UnauthenticatedSchema`](/docs/polarity-rest-api-reference#schema-unauthenticatedschema) |
| `403` | Forbidden | [`ForbiddenSchema`](/docs/polarity-rest-api-reference#schema-forbiddenschema) |
| `404` | Not Found | [`HudUrlNotFoundSchema`](/docs/polarity-rest-api-reference#schema-hudurlnotfoundschema) |
| `422` | Error | [`ErrorSchema`](/docs/polarity-rest-api-reference#schema-errorschema) |

[↑ Back to top](/docs/polarity-rest-api-reference#top)

---

## Schema reference

The request and response bodies above reference the object schemas defined below.

### AiMetricsIndexSchema

Schema for AiMetricsIndexSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### AlreadyAuthenticatedSchema

Schema for AlreadyAuthenticatedSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ApiKeyIndexResponse

Schema for ApiKeyIndexResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ApiKeyMeResponse

Schema for ApiKeyMeResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ApiKeyNotFoundSchema

Schema for ApiKeyNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ApiKeyShowResponse

Schema for ApiKeyShowResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### AuthenticationSchemeNotFoundSchema

Schema for AuthenticationSchemeNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### AuthenticationSchemeResponseSchema

Schema for AuthenticationSchemeResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### AuthenticationSchemesResponseSchema

Schema for AuthenticationSchemesResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### BadCredsSchema

Schema for BadCredsSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ChannelNameTakenSchema

Schema for ChannelNameTakenSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ChannelNotFoundSchema

Schema for ChannelNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ChannelSchema

Schema for ChannelSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ChannelSubscriptionNotFound

Schema for ChannelSubscriptionNotFound

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ChannelWriteSubscriptionNotFound

Schema for ChannelWriteSubscriptionNotFound

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ChannelsSchema

Schema for ChannelsSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### CloneUserNotFoundSchema

Schema for CloneUserNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ColorNotFoundResponse

Schema for ColorNotFoundResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### CommentNotFoundResponse

Schema for CommentNotFoundResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### CommentTagNotFoundResponse

Schema for CommentTagNotFoundResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### CreateApiKeyResponse

Schema for CreateApiKeyResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### CreateAuditLogResponse

Schema for CreateAuditLogResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

### CreateAuthTokenResponse

Schema for CreateAuthTokenResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### CreateChannelSchema

Schema for CreateChannelSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |

### CreateChannelSubscriptionResponse

Schema for CreateChannelSubscriptionResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### CreateChannelWriteSubscriptionPendingDeletionResponse

Schema for CreateChannelWriteSubscriptionPendingDeletionResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### CreateChannelWriteSubscriptionResponse

Schema for CreateChannelWriteSubscriptionResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### CreateCommentResponse

Schema for CreateCommentResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### CreateGroupResponse

Schema for CreateGroupResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### CreateTagResponse

Schema for CreateTagResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### CreateUserSchema

Schema for CreateUserSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |

### CreateVoteResponse

Schema for CreateVoteResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### DeleteChannelSchema

Schema for DeleteChannelSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `meta` | object | no |  |

### DeleteCommentResponse

Schema for DeleteCommentResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `meta` | object | no |  |

### DeleteCoreTypeSchema

Schema for DeleteCoreTypeSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### DeleteTagResponse

Schema for DeleteTagResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `meta` | object | no |  |

### DestroyTagEntityResponseSchema

Schema for DestroyTagEntityResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `meta` | object | no |  |

### EmailTestErrorSchema

Schema for EmailTestErrorSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### EntityNotFoundResponse

Schema for EntityNotFoundResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ErrorSchema

Schema for ErrorSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### FeatureFlagResponseSchema

Schema for FeatureFlagResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### FeatureFlagsResponseSchema

Schema for FeatureFlagsResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### FeatureNotFoundSchema

Schema for FeatureNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ForbiddenSchema

Schema for ForbiddenSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### GeneralGroupCantDeleteSchema

Schema for GeneralGroupCantDeleteSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### GeneralGroupReadOnlySchema

Schema for GeneralGroupReadOnlySchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### GroupNameTakenResponse

Schema for GroupNameTakenResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### GroupNotFoundResponse

Schema for GroupNotFoundResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### GroupResponse

Schema for GroupResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### HudUrlNotFoundSchema

Schema for HudUrlNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### HudUrlSchema

Schema for HudUrlSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IndexTagEntitiesResponseSchema

Schema for IndexTagEntitiesResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### IndexVotesResponse

Schema for IndexVotesResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### IntegrationDoesntSupportCustomTypesSchema

Schema for IntegrationDoesntSupportCustomTypesSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### IntegrationErrorSchema

Schema for IntegrationErrorSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IntegrationErrorsSchema

Schema for IntegrationErrorsSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### IntegrationFileNotFound

Schema for IntegrationFileNotFound

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### IntegrationIndexSchema

Schema for IntegrationIndexSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### IntegrationInstallationResponseSchema

Schema for IntegrationInstallationResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IntegrationLookupSchema

Schema for IntegrationLookupSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IntegrationMessageSchema

Schema for IntegrationMessageSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `foo` | string | no |  |

### IntegrationNotFoundSchema

Schema for IntegrationNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### IntegrationOptionsSchema

Schema for IntegrationOptionsSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### IntegrationPermissionsSchema

Schema for IntegrationPermissionsSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |

### IntegrationSchema

Schema for IntegrationSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IntegrationStatusSchema

Schema for IntegrationStatusSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IntegrationTemplatesSchema

Schema for IntegrationTemplatesSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IntegrationTypeSchema

Schema for IntegrationTypeSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### IntegrationTypesSchema

Schema for IntegrationTypesSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### InvalidAuditLogPayload

Schema for InvalidAuditLogPayload

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### InvalidCreateUserPayloadSchema

Schema for InvalidCreateUserPayloadSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### InvalidEntityNameFilterResponse

Schema for InvalidEntityNameFilterResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### InvalidLicenseSchema

Schema for InvalidLicenseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### InvalidLoginPayload

Schema for InvalidLoginPayload

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ListChannelSubscriptions

Schema for ListChannelSubscriptions

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListChannelWriteSubscriptionsResponse

Schema for ListChannelWriteSubscriptionsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListColorsResponse

Schema for ListColorsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### ListCommentsResponseSchema

Schema for ListCommentsResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListEntitiesResponse

Schema for ListEntitiesResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListFilterWordsSchema

Schema for ListFilterWordsSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `count` | integer | no |  |
| `recent-word-list-end` | integer | no |  |
| `words` | array of object | no |  |

### ListFiltersSchema

Schema for ListFiltersSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `filter-details` | array of object | no |  |
| `number-of-filters` | integer | no |  |

### ListGroupsResponse

Schema for ListGroupsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListHudUrlsResponse

Schema for ListHudUrlsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### ListMembersResponse

Schema for ListMembersResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |

### ListPermissionsSchema

Schema for ListPermissionsSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### ListSearchableItemsResponse

Schema for ListSearchableItemsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListServerSettingsResponse

Schema for ListServerSettingsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### ListTagsResponse

Schema for ListTagsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListUserStatsResponse

Schema for ListUserStatsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ListUserViewsResponse

Schema for ListUserViewsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### LoginSchema

Schema for LoginSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

### LookupEntitiesResponseSchema

Schema for LookupEntitiesResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### MembershipHistoryResponse

Schema for MembershipHistoryResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### ModelSettings

Schema for AI model configuration settings used in conversations

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### NotFoundSchema

Schema for NotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | object | no |  |

### ParsedEntitiesResponseSchema

Schema for ParsedEntitiesResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### PassResetRequiredSchema

Schema for PassResetRequiredSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### PasswordResetNotAvailableSchema

Schema for PasswordResetNotAvailableSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ProtectedChannelSchema

Schema for ProtectedChannelSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ProtectedGroupMembershipResponse

Schema for ProtectedGroupMembershipResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### ProviderModelsResponse

Schema for listing available models for a provider

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### ProvidersResponse

Schema for listing available chat providers

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |

### RateLimitErrorSchema

Schema for RateLimitErrorSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | object | no |  |

### RefreshTokenSchema

Schema for RefreshTokenSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |

### ServerResponseSchema

Schema for ServerResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ServerSettingNotFoundSchema

Schema for ServerSettingNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### SessionRevokedSchema

Schema for SessionRevokedSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `ok` | string | no |  |

### SessionSchema

Schema for SessionSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |

### ShowColorResponse

Schema for ShowColorResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ShowEntityResponse

Schema for ShowEntityResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ShowFilterSchema

Schema for ShowFilterSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `filter-details` | array of object | no |  |
| `number-of-filters` | integer | no |  |

### ShowGlobalProxySettingsResponse

Schema for ShowGlobalProxySettingsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ShowServerSettingResponse

Schema for ShowServerSettingResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ShowTagEntityResponseSchema

Schema for ShowTagEntityResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ShowTagResponse

Schema for ShowTagResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### ShowUserSchema

Schema for ShowUserSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `included` | array of object | no |  |
| `jsonapi` | object | no |  |

### ShowUserStatsResponse

Schema for ShowUserStatsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### SmtpTestResponse

Schema for SmtpTestResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | string | no |  |
| `success` | boolean | no |  |

### SocketTokenResponseSchema

Schema for SocketTokenResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `socket-token` | string | no |  |

### StaticFileSchema

Schema for StaticFileSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | no |  |
| `contentType` | string | no |  |

### TagNotFoundResponse

Schema for TagNotFoundResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### UnauthenticatedSchema

Schema for UnauthenticatedSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | string | no |  |

### UpdateChannelSubscriptionResponse

Schema for UpdateChannelSubscriptionResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### UpdateCommentResponse

Schema for UpdateCommentResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### UpdateGlobalProxySettingsResponse

Schema for UpdateGlobalProxySettingsResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### UpdateServerSettingResponse

Schema for UpdateServerSettingResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### UpdateTagEntityResponseSchema

Schema for UpdateTagEntityResponseSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### UpdateUserGroupResponse

Schema for UpdateUserGroupResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### UpdateUserSchema

Schema for UpdateUserSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### UserIndexSchema

Schema for UserIndexSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of object | no |  |
| `jsonapi` | object | no |  |
| `links` | object | no |  |
| `meta` | object | no |  |

### UserNotFoundSchema

Schema for UserNotFoundSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |

### UserPermissionSchema

Schema for UserPermissionSchema

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `jsonapi` | object | no |  |

### UserStatsNotFoundResponse

Schema for UserStatsNotFoundResponse

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `errors` | array of object | no |  |
| `jsonapi` | object | no |  |
