# Получение данных

## Получить сессию

Если вы уверены что пользователь существует и это его профиль.

Например: человек залогинился с логином и паролем, и потом переходит&#x20;

POST /SimpleLogin

```
{ 
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "Phone": "79777221374", // обязательно одно из полей Phone, ExtraLogin или Email 
        "Email": "test@test.ru", 
        "ExtraLogin": "wqwqwq", 
    } 
} 
```

### Ответ

В случае успеха возвращает 200 ОК и сессию юзера

```
{ 
    "UserData":{ 
        "UserId":"Test_74fcb1212a9-4483-11eb-86e0-ace2d35288a0", 
        "SecretKey":"Test_Kn71212lJZ4Wk0tVQ0cDRCFZNf" 
     } 
} 
```

В случае ошибки возвращаются статусы 4xx (см. раздел ошибок)

## Получить сессию используя код из sms или email

Используется, когда у пользователя нет пароля, или он его забыл.

### 1. Отправить код на емейл или телефон

POST /SendLoginCode

```
{  
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "AuthorizationType": "Phone", // Phone или Email в зависимости от того куда выслать код подтверждения 
    "UserData": { 
        "UserId": "Test_UserId",  
        "SecretKey": "Test_SecretKey" 
    } 
} 
```

### 2. Логин с помощью кода

POST /LoginByCode

```
{ 
    " ApplicationId ": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "Phone": "79161111111", 
        "Code" : "Xasasa"         // код из письма или смс 
    } 
} 
```

### Ответ

В случае успеха возвращает 200 ОК и сессию юзера

```
{ 
    "UserData":{ 
        "UserId":"Test_74fcb1212a9-4483-11eb-86e0-ace2d35288a0", 
        "SecretKey":"Test_Kn71212lJZ4Wk0tVQ0cDRCFZNf" 
     } 
} 
```

В случае ошибки возвращаются статусы 4xx (см. раздел ошибок)

## Получить данные пользователя

POST /GetUser

```
{ 
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "UserId": "Test_UserId",  
        "SecretKey": "Test_SecretKey" 
    } 
} 
```

### Ответ

в случае успеха возвращает 200 ОК и данные пользователя

```
{ 
   "UserData":{ 
      "UserId":"Test_74fcb1212a9-4483-11eb-86e0-ace2d35288a0", 
      "SecretKey":"Test_Kn71212lJZ4Wk0tVQ0cDRCFZNf" 
      "Firstname":"Имя", 
      "Surname":"Фамилия", 
      "Middlename":"Отчество", 
      "Phone":"79777221374", 
      "Email":"test@test.com", 
      "BirthDate":"2020.12.12", 
      "City":"г.Москва, Ул Первая, д 2", 
      "PersonalDataAgree":false, 
      "EmailSubscribeAgree":false, 
      "SmsSubscribeAgree":false, 
      "EmailConfirmed":true, 
      "PhoneConfirmed":false, 
      "ExtraParameters":[ 
         { 
                    "Name": "ClientType", 
                    "Value": " Breeder" // Breeder, Veterinar или User  
         }, 
         { 
            "Name":"Название магазина", 
            "Value":"Магазин Гранат" 
         }, 
         { 
            "Name":"Адрес магазина", 
            "Value":"Ул Мира д1" 
         }, 
         { 
            "Name":"Серия и номер", 
            "Value":"0011 223344" 
         }, 
         { 
            "Name":"Кем выдан", 
            "Value":"Отделом УФМС по Московской области в гор. Подольске" 
         }, 
         { 
            "Name":"Когда выдан", 
            "Value":"19.12.2019" 
         }, 
         { 
            "Name":"Данные регистрации по паспорту", 
            "Value":"г. Москва Ул. Зеленая д 1 кв 1" 
         }, 
         { 
            "Name":"Номер ИНН", 
            "Value":"123456789" 
         } 
      ], 
      "Consent":null 
   } 
} 
```

## Получить данные пользователей

POST /GetUsers

```
{ 
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserIds": [ // массив user_id максимально 1000 юзеров за батч 
        "Test_UserId1", 
        "Test_UserId2" 
        ], 
    "Fields":[ // массив полей которые нужно вернуть (обязательно наличие хотябы одного поля) - сейчас в примере все возможные значения полей 
        "PersonalDataAgree", 
        "EmailSubscribeAgree", 
        "SmsSubscribeAgree", 
        "EmailConfirmed", 
        "PhoneConfirmed", 
        "Firstname", 
        "Surname", 
        "Middlename", 
        "Birthdate", 
        "City", 
        "ExtraParams", 
        "Consent", 
        "Email", 
        "Phone", 
        "ExtraLogin" 
    ] 
} 
```

### Ответ

в случае успеха возвращает 200 ОК и данные пользователей

```
{ 
    "Users":[ // массив юзеров 
    { 
        "UserId":"Test_74fcb1212a9-4483-11eb-86e0-ace2d35288a0", // будет всегда 
        // Здесь список запрошенных полей 
        "Firstname": "Имя", 
        "Surname": "Фамилия", 
        "Middlename": "Отчество", 
        "Phone": "79777221374", 
        "Email": "test@test.com", 
        "Password": "Phahah", 
        "BirthDate": "2020.12.10", 
        "City": "г.Москва, Ул Первая, д 2", 
        "PersonalDataAgree": true, 
        "EmailSubscribeAgree": true, 
        "ExtraParameters": [ 
            { 
                "Name": "TEST", 
                "Value": "1234567" 
            } 
        ] 
    } 
    ]		 
} 
```

## Поиск пользователя последовательно по Phone, Email, ExtraLogin

POST /FindUser

```
{ 
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "Phone": "79777221374", // обязательно одно из полей Phone, ExtraLogin или Email 
        "Email": "test@test.ru", 
        "ExtraLogin": "wqwqwq"
    } 
} 
```

## Поиск пользователя по UserId

POST /GetUserById

```
{ 
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "UserId": "Test_UserId" 
    } 
} 
```

## Получить события пользователя

POST /EventsList

```
{ 
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "UserId": "Test_UserId",  
        "SecretKey": "Test_SecretKey" 
    }, 
    "Event": { 
        "Name": "Order",  
        "Limit": 10, // не обязательно, сколько евентов отдать 
        "Offset": 0, // c какого элемента передавать 
    } 
} 
```

Ответ:

```
{ 
    "Session": { 
        "UserId":"Test_74fcb1212a9-4483-11eb-86e0-ace2d35288a0", 
        "SecretKey":"Test_Kn71212lJZ4Wk0tVQ0cDRCFZNf" 
    }, 
    "Count": 10, // - всего евентов в базе, чтобы можно было корректно считать евенты 
    "Events":[{ 
        "EventId": "xxxx",
        "Name": "Order",
        "Values": "xxx",
        "Properties": [
            { 
            "Name": "order_time",
            "Value": "12-02-2010" 
            }, 
            ... 
            { 
            "Name": "price",
            "Value": "100" 
            }, 
            } 
    }, 
    .... 
    ] 
} 
```

## Получить инвайт **пользователя**

Используется для [регистрации пользователей по инвайту](/registraciya.md#po-invaitu)

POST /GetInviteCode

```
{  
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "UserId": "Test_UserId",  
        "SecretKey": "Test_SecretKey" 
    } 
} 
```

Ответ:

```
{ 
    "UserData":{ 
        "UserId":"Test_74fcb1212a9-4483-11eb-86e0-ace2d35288a0", 
        "SecretKey":"Test_Kn71212lJZ4Wk0tVQ0cDRCFZNf" 
        } 
    "Invite":{ 
        "Code": "XXXXXX" 
    } 
} 
```

## Получить пользователей зарегестрированных по инвайту

POST /GetInviteUser

```
{  
    "ApplicationId": 123321, 
    "Secret": "123321", 
    "SourceId": "Test_SourceId", 
    "UserData": { 
        "UserId": "Test_UserId",  
        "SecretKey": "Test_SecretKey" 
    } 
} 
```

### Ответ

```
{ 
    "UserData":{ 
        "UserId":"Test_74fcb1212a9-4483-11eb-86e0-ace2d35288a0", 
        "SecretKey":"Test_Kn71212lJZ4Wk0tVQ0cDRCFZNf" 
    }, 
    "InviteUsers":[ 
        "$USER_ID1", 
        "$USER_ID2", 
        ... 
    ] 
} 
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.cxhub.ru/poluchenie-dannykh.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
