POST /api/v1/events/{id}/pools
Создаёт новый пул внутри события. Пул определяет вопрос с одним или несколькими исходами, каждый из которых обеспечен автоматическим маркет-мейкером LMSR. Только создатель события может добавлять пулы.
Аутентификация
Creator — требуется действительный Bearer-токен в заголовке Authorization. Аутентифицированный пользователь должен быть создателем родительского события.
Запрос
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | integer | Да | ID родительского события |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name | string | Да | Название пула на английском |
name_ru | string | Нет | Название пула на русском |
margin | integer | Нет | Значение маржи (по умолчанию 0) |
finish_at | string (ISO 8601) | Да | Время закрытия пула для торговли |
live_at | string (ISO 8601) | Нет | Время, когда пул становится видимым и доступным для торговли |
rules | string | Нет | Правила разрешения на английском |
rules_ru | string | Нет | Правила разрешения на русском |
metadata | object | Да | Конфигурация рынков (см. ниже) |
Объект metadata
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
market_names | array of strings | Да | Отображаемое название для каждого исхода |
market_probabilities | array of floats | Да | Начальные вероятности для каждого исхода (должны дава ть в сумме 1) |
lmsr_b_kopecks | integer | Нет | Параметр ликвидности LMSR b в копейках. Большие значения означают более глубокую ликвидность. |
Пример
curl -X POST https://intotes.com/api/v1/events/10/pools \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Match Winner",
"name_ru": "Победитель матча",
"margin": 0,
"finish_at": "2026-04-10T18:00:00Z",
"live_at": "2026-04-04T12:00:00Z",
"rules": "Resolves to the team that wins the match in regular time.",
"rules_ru": "Разрешается в пользу команды, победившей в основное время.",
"metadata": {
"market_names": ["Team A", "Draw", "Team B"],
"market_probabilities": [0.40, 0.25, 0.35],
"lmsr_b_kopecks": 1000000
}
}'
Ответ
201 Created
{
"id": 42,
"name": "Match Winner",
"name_ru": "Победитель матча",
"rules": "Resolves to the team that wins the match in regular time.",
"rules_ru": "Разрешается в пользу команды, победившей в основное время.",
"won_side": null,
"margin": 0,
"finish_at": "2026-04-10T18:00:00Z",
"live_at": "2026-04-04T12:00:00Z",
"markets": [
{
"id": 101,
"pool_id": 42,
"name": "Team A",
"yes_probability": 0.40,
"market_type": "lmsr",
"volume": 0,
"b": 10000,
"q_yes": 0,
"q_no": 0,
"paused": false,
"resolved": false,
"outcome_index": 0
},
{
"id": 102,
"pool_id": 42,
"name": "Draw",
"yes_probability": 0.25,
"market_type": "lmsr",
"volume": 0,
"b": 10000,
"q_yes": 0,
"q_no": 0,
"paused": false,
"resolved": false,
"outcome_index": 1
},
{
"id": 103,
"pool_id": 42,
"name": "Team B",
"yes_probability": 0.35,
"market_type": "lmsr",
"volume": 0,
"b": 10000,
"q_yes": 0,
"q_no": 0,
"paused": false,
"resolved": false,
"outcome_index": 2
}
],
"metadata": {
"market_names": ["Team A", "Draw", "Team B"],
"market_probabilities": [0.40, 0.25, 0.35],
"lmsr_b_kopecks": 1000000
}
}
Ошибки
| Статус | Код | Описание |
|---|---|---|
| 400 | invalid_request | Отсутствуют обязательные поля или недопустимые значения |
| 400 | invalid_probabilities | Вероятности не дают в сумме 1 или содержат значения за пределами допустимого диапазона |
| 401 | unauthorized | Отсутствует или недействителен токен аутентификации |
| 403 | forbidden | Аутентифицированный пользователь не является создателем события |
| 404 | event_not_found | Событие с указанным ID не найдено |
| 500 | internal_error | Непредвиденная ошибка сервера |