POST /api/v1/events/create-full
Creates a complete event with pools, markets, and all associated metadata in a single request. This is the preferred method for event creation when all details are known upfront.
Authentication
Required. User must have the Creator role.
Request
| Parameter | Type | In | Description |
|---|---|---|---|
name | string | body | Required. Event name in English |
name_ru | string | body | Event name in Russian |
tags | string[] | body | Array of tag slugs |
versus_names | string[] | body | Names of the opposing sides |
versus_images | string[] | body | Image URLs for each side |
has_draw | bool | body | Whether the event supports a draw outcome |
image_url | string | body | URL of the event cover image |
polymarket_event_url | string | body | Polymarket event URL for odds syncing |
main_pool_index | int | body | Index of the pool to use as the main/default pool (0-based) |
loop_interval_minutes | int | body | Interval in minutes for loop (recurring) events; 0 for one-off events |
pools | array | body | Required. Array of pool objects |
pools[].name | string | body | Pool name in English |
pools[].name_ru | string | body | Pool name in Russian |
pools[].margin | float | body | Pool margin (fee percentage, e.g. 0.02 for 2%) |
pools[].finish_at | string | body | ISO 8601 deadline for the pool |
pools[].live_at | string | body | ISO 8601 time when the pool goes live |
pools[].rules | string | body | Resolution rules in plain text |
pools[].metadata | object | body | Pool metadata containing market configuration |
pools[].metadata.market_names | string[] | body | Names for each market outcome |
pools[].metadata.market_probabilities | float[] | body | Initial probabilities for each market (must sum to 1.0) |
pools[].metadata.lmsr_b_kopecks | int | body | LMSR liquidity parameter b in kopecks (1/100 of base currency unit) |
Example
curl -X POST "https://api.intotes.com/api/v1/events/create-full" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "ETH price at end of April",
"name_ru": "Цена ETH в конце апреля",
"tags": ["crypto", "ethereum"],
"versus_names": ["Above $4000", "Below $4000"],
"versus_images": [],
"has_draw": false,
"image_url": "https://images.intotes.com/events/eth-april.png",
"polymarket_event_url": "",
"main_pool_index": 0,
"loop_interval_minutes": 0,
"pools": [
{
"name": "Main Pool",
"name_ru": "Основной пул",
"margin": 0.02,
"finish_at": "2026-04-30T23:59:59Z",
"live_at": "2026-04-04T12:00:00Z",
"rules": "Resolves based on ETH/USD spot price on Coinbase at 2026-04-30 23:59 UTC.",
"metadata": {
"market_names": ["Above $4000", "Below $4000"],
"market_probabilities": [0.55, 0.45],
"lmsr_b_kopecks": 1000000
}
}
]
}'
Response
201 Created
{
"id": 4,
"name": "ETH price at end of April",
"name_ru": "Цена ETH в конце апреля",
"tags": ["crypto", "ethereum"],
"image_url": "https://images.intotes.com/events/eth-april.png",
"status": "new",
"is_active": false,
"created_at": "2026-04-04T12:00:00Z",
"versus_names": ["Above $4000", "Below $4000"],
"versus_images": [],
"has_draw": false,
"pools": [
{
"id": 11,
"name": "Main Pool",
"name_ru": "Основной пул",
"margin": 0,
"finish_at": "2026-04-30T23:59:59Z",
"live_at": "2026-04-04T12:00:00Z",
"rules": "Resolves based on ETH/USD spot price on Coinbase at 2026-04-30 23:59 UTC.",
"markets": [
{
"id": 103,
"pool_id": 11,
"name": "Above $4000",
"yes_probability": 0.55,
"market_type": "lmsr",
"volume": 0,
"b": 1000000,
"q_yes": 0,
"q_no": 0,
"paused": false,
"resolved": false,
"outcome_index": 0
},
{
"id": 104,
"pool_id": 11,
"name": "Below $4000",
"yes_probability": 0.45,
"market_type": "lmsr",
"volume": 0,
"b": 1000000,
"q_yes": 0,
"q_no": 0,
"paused": false,
"resolved": false,
"outcome_index": 1
}
]
}
]
}
403 Forbidden
{
"error": "insufficient permissions"
}