---
title: "🔒 Create meeting integration"
method: POST
path: "/integration/meeting/create"
tags: ["Integrations: Meetings"]
---

# 🔒 Create meeting integration

`POST /integration/meeting/create`

## Request

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

Create meeting integration

**Access:** `authorized` (10 ) · **Scope:** `write`

**Allows:** `integration:meetings` (все обязательны; без ресурса)

### TypeScript (copy-paste)

**`POST /integration/meeting/create`**

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

```typescript
export interface IntegrationMeetingCreateParams {
  code: string
  state: string
}
```

</details>

<details open><summary><b>Body (Partial)</b></summary>

```typescript
// Patch-body: все поля опциональны (Valid.Patch)
export type IntegrationMeetingCreateBody = Partial<Resp_integration_meeting_create>

export interface IntegrationMeetingCreateBodyFields {
  ID?: string
  cID?: string
  status?: MeetingIntegration_Status
  type?: MeetingIntegration_type
  account?: {
  id: string
  accountId?: string | null
  email: string
  name?: string | null
  planType?: string | null
} | null
  credentials?: {
  accessToken: string
  refreshToken: string
  expirationTimeIso: string
  scopes: Array<string>
  syncTimeout?: number | null
} | null
  errorCode?: MeetingIntegration_ErrorCode | null
  createdDT?: string
  createdUID?: string
  /** Unix timestamp in milliseconds */
  updTS?: number
  updUID?: string
}
```

</details>

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

```typescript
export type IntegrationMeetingCreateResponse = IServerResponse<Resp_integration_meeting_create>

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

- `code` string, required
- `state` string, required

## Headers

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

## Request body

- IntegrationMeetingCreateBody: Partial body (Valid.Patch) for `integration/meeting/create` — все поля опциональны
  - `ID` string, uuid
  - `cID` string, uuid
  - `status` 1 | -1: `enabled` = 1, `warn` = -1
  - `type` 'zoom': `Zoom` = "zoom"
  - `account` object, nullable
    - `id` string, required
    - `accountId` string, nullable
    - `email` string, required
    - `name` string, nullable
    - `planType` string, nullable
  - `credentials` object, nullable
    - `accessToken` string, required
    - `refreshToken` string, required
    - `expirationTimeIso` string, required
    - `scopes` string[], required
    - `syncTimeout` integer, nullable
  - `errorCode` 1 | 2 | 3: `SubscriptionPlanError` = 1, `IntegrationStatusError` = 2, `AlreadyConnectedError` = 3
  - `createdDT` string, date-time
  - `createdUID` string, uuid
  - `updTS` integer: Unix timestamp in milliseconds
  - `updUID` string

## Response `200`

OK — `IServerResponse<Resp_integration_meeting_create>`

- object
  - `code` integer, required
  - `data` RespIntegrationMeetingCreate, required: Empty response object
  - `srvTS` integer, required: Server timestamp (ms)
  - `rkey` string, required: Request key

## Other responses

- `400`: BadRequest: Invalid parameters or state
- `401`: Unauthorized: Active user session required
- `403`: AccessNotAllowed: Privilege integration:meetings required
- `406`: TimeResync — расхождение rts с сервером
- `422`: UnprocessableContent: Meeting integration with same ID already exist or Zoom integration already connected

---

[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)
