---
title: "🔒 Открытие чата: участники и сообщения; двигает openedTS открывшего."
method: GET
path: "/chat/open"
tags: ["Chat"]
---

# 🔒 Открытие чата: участники и сообщения; двигает openedTS открывшего.

`GET /chat/open`

## Request

- Base URL: `http://localhost`
- URL: `http://localhost/chat/open`
- Auth: one of:
  - API key in header `sid` and API key in header `rts` and API key in header `sig`
  - HTTP bearer

Открытие чата: участники и сообщения; двигает openedTS открывшего.

**Access:** `authorized` (10 ) · **allowNullCompany:** true · **Scope:** `read`

**Allows:** `chat:read` (все обязательны; проверка в команде по ресурсу из запроса)

### TypeScript (copy-paste)

**`GET /chat/open`**

<details open><summary><b>Params</b></summary>

```typescript
export interface ChatOpenParams {
  chatID: string
  fromTS?: number | null
}
```

</details>

<details open><summary><b>Response</b></summary>

```typescript
export type ChatOpenResponse = IServerResponse<Resp_chat_open>

export interface IServerResponse<T = any> {
  code: number
  data: T
  srvTS: number
  rkey: string
}
```

</details>

> Полный файл типов: [`/docs/types`](/docs/types) · raw: [`/docs/api-types.ts`](/docs/api-types.ts)

## Query parameters

- `chatID` string, uuid, required
- `fromTS` integer, nullable

## Headers

- `devID` string, uuid, required
- `tz` string, required
- `app` string, required
- `appVer` string, required
- `rKey` string

## Response `200`

OK — `IServerResponse<Resp_chat_open>`

- object
  - `code` integer, required
  - `data` RespChatOpen, required: ResponseData for chat/open
    - `members` ChatMember[], required
      - `ID` string, uuid, required
      - `chatID` string, uuid, required
      - `userID` string, uuid, required
      - `isMute` boolean
      - `isAdmin` boolean
      - `openedTS` integer, required: Unix timestamp in milliseconds
      - `createDT` string, date-time, required
      - `updTS` integer, required: Unix timestamp in milliseconds
      - `updUID` string, required
      - `isDeleted` boolean
      - `deletedTS` integer, nullable: Unix timestamp in milliseconds
    - `messages` ChatMessage[], required
      - `chatID` string, uuid, required
      - `ID` string, uuid, required
      - `authorUID` string, uuid, required
      - `authorType` 'user' | 'agent' | 'system', required: `User` = "user", `Agent` = "agent", `System` = "system"
      - `type` 'regular' | 'event' | 'template', required: `Regular` = "regular", `Event` = "event", `Template` = "template"
      - `text` string, required
      - `attachments` unknown[], nullable
        - unknown
      - `dayKey` integer, required: Day key (YYYYMMDD or internal day index)
      - `dt` string, date-time, required
      - `editedDT` string, date-time, nullable
      - `replied` object, nullable
        - `ID` string, uuid, required
        - `text` string, required
        - `authorUID` string, uuid, required
        - `attachmentFID` string, uuid, nullable
        - `attachmentCount` integer, nullable
      - `mentioned` object, nullable
      - `reactions` object, nullable
      - `viewed` object, nullable
      - `meta` object, nullable
        - `apiTokenID` string, uuid, nullable
        - `event` object, nullable
          - `type` 'chat_title_changed' | 'chat_logo_changed' | 'chat_member_added' | 'chat_member_removed' | 'chat_member_joined' | 'chat_member_left', required: `ChatTitleChanged` = "chat_title_changed", `ChatLogoChanged` = "chat_logo_changed", `ChatMemberAdded` = "chat_member_added", `ChatMemberRemoved` = "chat_member_removed", `ChatMemberJoined` = "chat_member_joined", `ChatMemberLeft` = "chat_member_left"
          - `newTitle` string, nullable
          - `targetUID` string, uuid, nullable
        - `forwarded` object, nullable
          - `chatID` string, uuid, required
          - `messageID` string, uuid, nullable
          - `chatTitle` string, nullable
          - `chatLogoUrl` string, nullable
          - `authorUID` string, uuid, required
          - `dt` string, date-time, nullable
          - `entType` 'project' | 'product' | 'module' | 'component' | 'version' | 'feature' | 'task' | 'bug': `project` = "project", `product` = "product", `module` = "module", `component` = "component", `version` = "version", `feature` = "feature", `task` = "task", `bug` = "bug"
          - `productID` string, uuid, nullable
      - `isDeleted` boolean
      - `deletedTS` integer, nullable: Unix timestamp in milliseconds
      - `deletedUID` string, uuid, nullable
      - `updTS` integer, required: Unix timestamp in milliseconds
      - `updUID` string, required
    - `task` Task: Entity `Task` (table: Task )
      - `cID` string, uuid, required
      - `projectID` string, uuid, required
      - `productID` string, uuid, required
      - `versionID` string, uuid, nullable
      - `featureID` string, uuid, nullable
      - `ID` string, uuid, required
      - `status` 0 | 110 | 120 | 130 | 140 | 150 | 200, required: `draft` = 0, `approval` = 110, `work` = 120, `review` = 130, `deployment` = 140, `testing` = 150, `closed` = 200
      - `state` -1 | 0 | 1 | 10, required: `waiting` = -1, `pause` = 0, `work` = 1, `closed` = 10
      - `category` 1 | 3 | 6 | 9, required: `common` = 1, `dev` = 3, `qa` = 6, `bug` = 9
      - `type` 11 | 12 | 13 | 14 | 15 | 16 | 19 | 31 | 32 | 33 | 34 | 35 | 61 | 62 | 63 | 64 | 91 | 93 | 95 | 97 | 99, required: `planning` = 11, `analysis` = 12, `design` = 13, `research` = 14, `education` = 15, `documentation` = 16, `other` = 19, `frontend` = 31, `backend` = 32, `devops` = 33, `tests` = 34, `fullstack` = 35, `freetest` = 61, `smoke` = 62, `regression` = 63, `testcase` = 64, `bug_trivial` = 91, `bug_minor` = 93, `bug_major` = 95, `bug_critical` = 97, `bug_block` = 99
      - `priority` -10 | 0 | 1 | 10 | 20, required: `postponed` = -10, `unset` = 0, `inOrder` = 1, `important` = 10, `urgent` = 20
      - `urgently` integer, nullable
      - `title` string, required
      - `searchTitle` string, required
      - `key` integer, required
      - `currentAssignee` string, required
      - `ord` integer, required: Unix timestamp in milliseconds
      - `spec` string, required
      - `gist` string, nullable
      - `modules` object, nullable
      - `components` object, nullable
      - `approvalAssignee` string, nullable
      - `workAssignee` string, required
      - `workIterationKey` integer, nullable
      - `workTimePlan` integer, nullable
      - `workEvaluation` number, nullable
      - `reviewAssignee` string, nullable
      - `testAssignee` string, nullable
      - `resolutionVersionID` string, uuid, nullable
      - `resolutionType` 0 | 1 | 2 | 3 | 4: `resolved` = 0, `notDoing` = 1, `notReproducible` = 2, `notBug` = 3, `duplicate` = 4
      - `resolutionNote` string, nullable
      - `result` string, nullable
      - `meta` object, nullable
      - `git` object, nullable
      - `createDT` string, date-time, required
      - `creatorUID` string, uuid, required
      - `stage` 0 | 10 | 20 | 30 | 40 | 100, required: `dev` = 0, `alpha` = 10, `betta` = 20, `rc` = 30, `hotfix` = 40, `prod` = 100
      - `browser` 0 | 10 | 20 | 30 | 40 | 50 | 60: `any` = 0, `chrome` = 10, `safari` = 20, `opera` = 30, `edge` = 40, `firefox` = 50, `yandex` = 60
      - `bugType` 10 | 20 | 30 | 40: `ui` = 10, `fn` = 20, `ux` = 30, `spec` = 40
      - `build` string, nullable
      - `devices` unknown[], nullable
        - unknown
      - `labels` unknown[], nullable
        - unknown
      - `fuzzy` boolean, nullable
      - `updTS` integer, required: Unix timestamp in milliseconds
      - `isDeleted` boolean, nullable
      - `deletedTS` integer, nullable
      - `updUID` string, required
      - `rejectUID` string, nullable
      - `rejectTS` integer, nullable
    - `bug` Task: Entity `Task` (table: Task )
      - `cID` string, uuid, required
      - `projectID` string, uuid, required
      - `productID` string, uuid, required
      - `versionID` string, uuid, nullable
      - `featureID` string, uuid, nullable
      - `ID` string, uuid, required
      - `status` 0 | 110 | 120 | 130 | 140 | 150 | 200, required: `draft` = 0, `approval` = 110, `work` = 120, `review` = 130, `deployment` = 140, `testing` = 150, `closed` = 200
      - `state` -1 | 0 | 1 | 10, required: `waiting` = -1, `pause` = 0, `work` = 1, `closed` = 10
      - `category` 1 | 3 | 6 | 9, required: `common` = 1, `dev` = 3, `qa` = 6, `bug` = 9
      - `type` 11 | 12 | 13 | 14 | 15 | 16 | 19 | 31 | 32 | 33 | 34 | 35 | 61 | 62 | 63 | 64 | 91 | 93 | 95 | 97 | 99, required: `planning` = 11, `analysis` = 12, `design` = 13, `research` = 14, `education` = 15, `documentation` = 16, `other` = 19, `frontend` = 31, `backend` = 32, `devops` = 33, `tests` = 34, `fullstack` = 35, `freetest` = 61, `smoke` = 62, `regression` = 63, `testcase` = 64, `bug_trivial` = 91, `bug_minor` = 93, `bug_major` = 95, `bug_critical` = 97, `bug_block` = 99
      - `priority` -10 | 0 | 1 | 10 | 20, required: `postponed` = -10, `unset` = 0, `inOrder` = 1, `important` = 10, `urgent` = 20
      - `urgently` integer, nullable
      - `title` string, required
      - `searchTitle` string, required
      - `key` integer, required
      - `currentAssignee` string, required
      - `ord` integer, required: Unix timestamp in milliseconds
      - `spec` string, required
      - `gist` string, nullable
      - `modules` object, nullable
      - `components` object, nullable
      - `approvalAssignee` string, nullable
      - `workAssignee` string, required
      - `workIterationKey` integer, nullable
      - `workTimePlan` integer, nullable
      - `workEvaluation` number, nullable
      - `reviewAssignee` string, nullable
      - `testAssignee` string, nullable
      - `resolutionVersionID` string, uuid, nullable
      - `resolutionType` 0 | 1 | 2 | 3 | 4: `resolved` = 0, `notDoing` = 1, `notReproducible` = 2, `notBug` = 3, `duplicate` = 4
      - `resolutionNote` string, nullable
      - `result` string, nullable
      - `meta` object, nullable
      - `git` object, nullable
      - `createDT` string, date-time, required
      - `creatorUID` string, uuid, required
      - `stage` 0 | 10 | 20 | 30 | 40 | 100, required: `dev` = 0, `alpha` = 10, `betta` = 20, `rc` = 30, `hotfix` = 40, `prod` = 100
      - `browser` 0 | 10 | 20 | 30 | 40 | 50 | 60: `any` = 0, `chrome` = 10, `safari` = 20, `opera` = 30, `edge` = 40, `firefox` = 50, `yandex` = 60
      - `bugType` 10 | 20 | 30 | 40: `ui` = 10, `fn` = 20, `ux` = 30, `spec` = 40
      - `build` string, nullable
      - `devices` unknown[], nullable
        - unknown
      - `labels` unknown[], nullable
        - unknown
      - `fuzzy` boolean, nullable
      - `updTS` integer, required: Unix timestamp in milliseconds
      - `isDeleted` boolean, nullable
      - `deletedTS` integer, nullable
      - `updUID` string, required
      - `rejectUID` string, nullable
      - `rejectTS` integer, nullable
  - `srvTS` integer, required: Server timestamp (ms)
  - `rkey` string, required: Request key

## Other responses

- `400`: BadRequest / Validation — неверные params/body/headers
- `401`: Unauthorized: Active user session required
- `403`: AccessNotAllowed: Privilege chat:read required (member; entity chat - product access; company and department chats - employee)
- `404`: NotFound: Neither the chat nor an entity with this ID exists in the company
- `406`: TimeResync — расхождение rts с сервером

---

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