---
url: /apidocs/matchmaking.md
---
## Matchmaking API

| Endpoint | Method | Description |
|-----|-----|-----|
| [matchmaking:getQuestionnaireTemplate](#get-questionnaire-template) | websocket | Get questionnaire template |
| [matchmaking:getQuestionnaireData](#get-questionnaire-data) | websocket | Get questionnaire data |
| [matchmaking:saveQuestionnaireData](#save-questionnaire-data) | websocket | Save questionnaire data |
| [matchmaking:getUserMatchmakingRoom](#get-user-matchmaking-room) | websocket | Get user matchmaking room |
| [matchmaking:publishMatchmakingRoom](#publish-matchmaking-room) | websocket | Publish matchmaking room |
| [matchmaking:unpublishMatchmakingRoom](#unpublish-matchmaking-room) | websocket | Unpublish matchmaking room |
| [matchmaking:searchMatchmakingRooms](#search-matchmaking-rooms) | websocket | Search matchmaking rooms |
| [matchmaking:searchMatchmakingStorylines](#search-matchmaking-storylines) | websocket | Search matchmaking storylines |
| [matchmaking:searchMatchmakingUsers](#search-matchmaking-users) | websocket | Search matchmaking users |
| [matchmaking:sendIdealMatchRequest](#send-ideal-match-request) | websocket | Send ideal match request |
| [matchmaking:deleteIdealMatchRoom](#delete-ideal-match-room) | websocket | Delete ideal match room |
| [matchmaking:listIdealMatchRooms](#list-ideal-match-rooms) | websocket | List ideal match rooms |
| [matchmaking:becomeSupporter](#become-supporter) | websocket | Become supporter |
| [matchmaking:removeUserSupporter](#remove-user-supporter) | websocket | Remove user supporter |
| [matchmaking:removeSupportedUser](#remove-supported-user) | websocket | Remove supported user |
| [matchmaking:listUserSupporters](#list-user-supporters) | websocket | List user supporters |
| [matchmaking:listSupportedUsers](#list-supported-users) | websocket | List supported users |
| [matchmaking:recommendIdealMatch](#recommend-ideal-match) | websocket | Recommend ideal match |
| [matchmaking:inviteSupportersToIdealMatchRoom](#invite-supporters-to-ideal-match-room) | websocket | Invite supporters to ideal match room |
| [matchmaking:listSearchCards](#list-search-cards) | websocket | List search cards |
| [matchmaking:updateSearchCard](#update-search-card) | websocket | Update search card |
| [matchmaking:searchBySearchCard](#search-matchmaking-rooms-by-search-card) | websocket | Search matchmaking rooms by search card |
| [matchmaking:idealMatchRoomCreated](#ideal-match-room-created-event) | websocketEvent | Ideal match room created event |
| [matchmaking:idealMatchRoomDeleted](#ideal-match-room-deleted-event) | websocketEvent | Ideal match room deleted event |
| [matchmaking:idealMatchRoomEntered](#on-ideal-match-room-entrance-event) | websocketEvent | On ideal match room entrance event |
| [matchmaking:searchCardUpdated](#matchmaking-search-card-updated-event) | websocketEvent | Matchmaking search card updated event |
| [matchmaking:searchCardDeleted](#matchmaking-search-card-deleted-event) | websocketEvent | Matchmaking search card deleted event |
| [matchmaking:supporterAdded](#on-supporter-added-event) | websocketEvent | On supporter added event |
| [matchmaking:supporterRemoved](#on-supporter-removed-event) | websocketEvent | On supporter removed event |
| [matchmaking:questionnaireDataUpdated](#on-questionnaire-data-updated-event) | websocketEvent | On questionnaire data updated event |
| [matchmaking:matchmakingRoomPublished](#matchmaking-room-published-event) | websocketEvent | Matchmaking room published event |
| [matchmaking:matchmakingRoomUnpublished](#matchmaking-room-unpublished-event) | websocketEvent | Matchmaking room unpublished event |
| [matchmaking:matchmakingRoomEntrance](#matchmaking-room-entrance-event) | websocketEvent | Matchmaking room entrance event |

### Get questionnaire template

**Method:** websocket

**Endpoint:** matchmaking:getQuestionnaireTemplate

**Description:** List of questionnaire field types:

| Field | Value type | Search type | Nested field depends on value type | Description |
|-----|-----|-----|-----|-----|
| Tags | array of strings | array of strings | string | Can select and search none, one or all of the tags |
| OneOfTags | string | string / array of strings  | string | Can select and search for one of provided values |
| Gender | string | string | string | One of: male/female; search is using the opposite gender by default |
| Bool | boolean | boolean | not applicable | |
| StringInput | string | string | not applicable | |
| DateOfBirth | timestamp | range of integers | not applicable | { "start": int, "end": int } |

While search, man is \[0-5] years older than woman and both are 18+ by default

**Request:**

**Response:**

### Get questionnaire data

**Method:** websocket

**Endpoint:** matchmaking:getQuestionnaireData

**Description:** fields: map\[ name of the field ] value of the field, depending on type; see matchmaking:getQuestionnaireTemplate for details

**Request:**

**Response:**

### Save questionnaire data

**Method:** websocket

**Endpoint:** matchmaking:saveQuestionnaireData

**Description:** fields: map\[ name of the field ] value of the field, depending on type; see matchmaking:getQuestionnaireTemplate for details

**Request:**

**Response:**

### Get user matchmaking room

**Method:** websocket

**Endpoint:** matchmaking:getUserMatchmakingRoom

**Request:**

**Response:**

### Publish matchmaking room

**Method:** websocket

**Endpoint:** matchmaking:publishMatchmakingRoom

**Description:** User can publish only one matchmaking room. If he tries to publish second mm room, he will receive error status code 3001. If he tries to publish mm room while questionnaire is not filled, he will receive error code 3002.

**Request:**

**Response:**

### Unpublish matchmaking room

**Method:** websocket

**Endpoint:** matchmaking:unpublishMatchmakingRoom

**Request:**

**Response:**

### Search matchmaking rooms

**Method:** websocket

**Endpoint:** matchmaking:searchMatchmakingRooms

**Description:** Parameters: map\[ name of the field ] value of the field, depending on search type; see matchmaking:getQuestionnaireTemplate for details.

Api searches for MM published rooms if network type is Matchmaking and for all public rooms if network type is BusinessSocial. In both cases, users should fill in questionnaire before their rooms appear in search result.

**Request:**

**Response:**

### Search matchmaking storylines

**Method:** websocket

**Endpoint:** matchmaking:searchMatchmakingStorylines

**Description:** Parameters: map\[ name of the field ] value of the field, depending on search type; see matchmaking:getQuestionnaireTemplate for details.

Only in BusinessSocial network.

Api searches for published storylines in public rooms. Users should fill in questionnaire before their storylines appear in search result.

**Request:**

**Response:**

### Search matchmaking users

**Method:** websocket

**Endpoint:** matchmaking:searchMatchmakingUsers

**Description:** Parameters: map\[ name of the field ] value of the field, depending on search type; see matchmaking:getQuestionnaireTemplate for details.

Only in BusinessSocial network.

Users should fill in questionnaire before they appear in search result.

**Request:**

**Response:**

### Send ideal match request

**Method:** websocket

**Endpoint:** matchmaking:sendIdealMatchRequest

**Description:** See [requests API](request.md) for further steps. If user has not published matchmaking room, he will receive error code 3000.

**Request:**

**Response:**

### Delete ideal match room

**Method:** websocket

**Endpoint:** matchmaking:deleteIdealMatchRoom

**Request:**

**Response:**

### List ideal match rooms

**Method:** websocket

**Endpoint:** matchmaking:listIdealMatchRooms

**Request:**

**Response:**

### Become supporter

**Method:** websocket

**Endpoint:** matchmaking:becomeSupporter

**Description:** See [requests API](request.md) for further steps

**Request:**

**Response:**

### Remove user supporter

**Method:** websocket

**Endpoint:** matchmaking:removeUserSupporter

**Request:**

**Response:**

### Remove supported user

**Method:** websocket

**Endpoint:** matchmaking:removeSupportedUser

**Request:**

**Response:**

### List user supporters

**Method:** websocket

**Endpoint:** matchmaking:listUserSupporters

**Description:** Fetch list of supporters who help to find current user ideal match

**Request:**

**Response:**

### List supported users

**Method:** websocket

**Endpoint:** matchmaking:listSupportedUsers

**Description:** Get list of users who are supported by current user

**Request:**

**Response:**

### Recommend ideal match

**Method:** websocket

**Endpoint:** matchmaking:recommendIdealMatch

**Description:** See [requests API](request.md) for further steps

**Request:**

**Response:**

### Invite supporters to ideal match room

**Method:** websocket

**Endpoint:** matchmaking:inviteSupportersToIdealMatchRoom

**Request:**

**Response:**

### List search cards

**Method:** websocket

**Endpoint:** matchmaking:listSearchCards

**Description:** Api returns search cards for all supported users. If search card doesn't exist, it will be generated automatically.

**Request:**

**Response:**

### Update search card

**Method:** websocket

**Endpoint:** matchmaking:updateSearchCard

**Description:** parameters: map\[ name of the field ] value of the field, depending on search type; see matchmaking:getQuestionnaireTemplate for details

**Request:**

**Response:**

### Search matchmaking rooms by search card

**Method:** websocket

**Endpoint:** matchmaking:searchBySearchCard

**Request:**

**Response:**

### Ideal match room created event

**Event:** matchmaking:idealMatchRoomCreated

**Data:**

### Ideal match room deleted event

**Event:** matchmaking:idealMatchRoomDeleted

**Data:**

### On ideal match room entrance event

**Event:** matchmaking:idealMatchRoomEntered

**Data:**

### Matchmaking search card updated event

**Event:** matchmaking:searchCardUpdated

**Data:**

### Matchmaking search card deleted event

**Event:** matchmaking:searchCardDeleted

**Data:**

### On supporter added event

**Event:** matchmaking:supporterAdded

**Data:**

### On supporter removed event

**Event:** matchmaking:supporterRemoved

**Data:**

### On questionnaire data updated event

**Event:** matchmaking:questionnaireDataUpdated

**Data:**

### Matchmaking room published event

**Event:** matchmaking:matchmakingRoomPublished

**Data:**

### Matchmaking room unpublished event

**Event:** matchmaking:matchmakingRoomUnpublished

**Data:**

### Matchmaking room entrance event

**Event:** matchmaking:matchmakingRoomEntrance

**Description:** Event sends useful information about matchmaking network room. Request field has both received and sent requests.

**Data:**

## Models

#### User Simple

#### User Request
