API BetTune
BetTune API
Интерактивная документация внешнего API BetTune: поиск матчей, просмотр ставок, получение prediction-фильтров и управление коэффициентами прогнозов и индивидуальными суммами ставок.
Скачать OpenAPI схемуБазовый URL публичного API
https://ovaccess.com/bet-tune-api/v1API token
Создать или перегенерировать API token можно на странице Settings в BetTune.
Открыть Settings BetTuneТолько для PRO подписки
API BetTune доступен только пользователям с активной PRO подпиской.
Authentication
Authorization: Bearer your_bettune_api_tokenEndpoints
Open an endpoint to see parameters, request body, responses, examples, and schemas.
get/sportsСписок доступных видов спорта
Sports
get
/sportsСписок доступных видов спорта
Responses
200 Доступные виды спорта.
object
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 1
namerequired
string
example: "football"
{
"count": 1,
"items": [
{
"id": 1,
"name": "football"
}
]
}401 API token отсутствует или некорректен.
object
coderequired
string
messagerequired
string
{
"code": "missing_token",
"message": "No token provided"
}429 Превышен лимит запросов.
object
coderequired
string
messagerequired
string
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
get/matchesСписок матчей за одну дату UTC
Matches
get
/matchesСписок матчей за одну дату UTC
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| date | query | Yes | string:date | Дата UTC в формате `YYYY-MM-DD`. |
| sport | query | Yes | integer | ID вида спорта. |
Responses
200 Матчи за запрошенную дату UTC.
object
daterequired
string:date
example: "2026-06-06"
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 1611243
daterequired
string:date-time
example: "2026-06-06T18:00:00+00:00"
finishedrequired
boolean
example: false
scorerequired
object
countryrequired
object
tournamentrequired
object
seasonrequired
object
homerequired
object
awayrequired
object
400 Некорректные query-параметры.
object
coderequired
string
messagerequired
string
{
"code": "date_invalid",
"message": "Invalid or missing date. Expected format: YYYY-MM-DD"
}401 API token отсутствует или некорректен.
object
coderequired
string
messagerequired
string
{
"code": "missing_token",
"message": "No token provided"
}429 Превышен лимит запросов.
object
coderequired
string
messagerequired
string
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
get/betsСписок ставок пользователя
Bets
get
/betsСписок ставок пользователя
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | No | integer | Номер страницы. Нумерация начинается с 1. Каждая страница возвращает до 100 ставок. |
Responses
200 Ставки авторизованного пользователя, отсортированные по дате ставки: сначала новые.
object
pagerequired
integer
example: 1
perPagerequired
integer
example: 100
hasNextPagerequired
boolean
True, если существует следующая страница.
example: true
countrequired
integer
Количество ставок, возвращённых на этой странице.
example: 100
itemsrequired
array<object>
object
idrequired
integer
example: 12345
createdAtrequired
string:date-time
Дата размещения ставки.
example: "2026-06-09T12:30:00+00:00"
statusrequired
string
example: "pending"
enum: pending, won, lost, push, canceled, refunded
approvedrequired
boolean
True, если результат ставки подтверждён.
example: false
sportrequired
object
matchrequired
object
filterrequired
object
betTyperequired
string
example: "Home"
oddsrequired
string
example: "2.15"
amountrequired
string
example: "10"
profitrequired
string | null
example: null
{
"page": 1,
"perPage": 100,
"hasNextPage": true,
"count": 100,
"items": [
{
"id": 12345,
"createdAt": "2026-06-09T12:30:00+00:00",
"status": "pending",
"approved": false,
"sport": {
"id": 1,
"name": "football"
},
"match": {
"id": 1611243,
"date": "2026-06-06T18:00:00+00:00",
"finished": true,
"score": {
"home": 2,
"away": 1
},
"home": {
"id": 10,
"name": "Team A"
},
"away": {
"id": 20,
"name": "Team B"
}
},
"filter": {
"id": 11583,
"name": "Manual football"
},
"betType": "Home",
"odds": "2.15",
"amount": "10",
"profit": null
}
]
}400 Некорректные query-параметры.
object
coderequired
string
messagerequired
string
{
"code": "page_invalid",
"message": "Page must be a positive integer"
}401 API token отсутствует или некорректен.
object
coderequired
string
messagerequired
string
{
"code": "missing_token",
"message": "No token provided"
}429 Превышен лимит запросов.
object
coderequired
string
messagerequired
string
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
get/prediction-filtersСписок prediction-фильтров
Prediction Filters
get
/prediction-filtersСписок prediction-фильтров
Responses
200 Prediction-based фильтры пользователя текущего API token.
object
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 11583
namerequired
string
example: "Manual football"
sportrequired
object
betTyperequired
string
example: "Home"
statusrequired
string
example: "approved"
enum: disabled, approved
401 API token отсутствует или некорректен.
object
coderequired
string
messagerequired
string
{
"code": "missing_token",
"message": "No token provided"
}429 Превышен лимит запросов.
object
coderequired
string
messagerequired
string
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
post/predictions/searchПоиск существующих predictions
Predictions
post
/predictions/searchПоиск существующих predictions
Request body
object
filterIdrequired
integer
example: 11583
matchIdsrequired
array<integer>
example: [1611243,1611244]
{
"filterId": 11583,
"matchIds": [
1611243,
1611244
]
}Responses
200 Существующие predictions для запрошенных матчей.
object
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 10
filterIdrequired
integer
example: 11583
matchIdrequired
integer
example: 1611243
oddsrequired
string | null
example: "2.150000"
amountrequired
string | null
Индивидуальная сумма ставки для этого матча. Null означает, что используется стандартная сумма из фильтра.
example: "25.000000"
sourcerequired
string
example: "api"
enum: api, ui
createdAtrequired
string:date-time
example: "2026-06-06T12:00:00+00:00"
updatedAtrequired
string:date-time
example: "2026-06-06T12:05:00+00:00"
400 Ошибка валидации.
object
coderequired
string
messagerequired
string
{
"code": "invalid_json_body",
"message": "Invalid JSON body"
}401 API token отсутствует или некорректен.
object
coderequired
string
messagerequired
string
{
"code": "missing_token",
"message": "No token provided"
}403 Текущий пользователь не может получить доступ к этому ресурсу.
object
coderequired
string
messagerequired
string
{
"code": "pro_subscription_required",
"message": "Prediction-based filters are available only for PRO subscription"
}404 Фильтр или матч не найден.
object
coderequired
string
messagerequired
string
{
"code": "filter_not_found",
"message": "Filter not found"
}429 Превышен лимит запросов.
object
coderequired
string
messagerequired
string
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
put/prediction-filters/{filterId}/matches/{matchId}/predictionСоздать или обновить коэффициент prediction
Predictions
put
/prediction-filters/{filterId}/matches/{matchId}/predictionСоздать или обновить коэффициент prediction
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| filterId | path | Yes | integer | - |
| matchId | path | Yes | integer | - |
Request body
object
oddsrequired
string | number
example: "2.15"
amount
string | number
Опциональная индивидуальная сумма ставки для этого матча. Пустое значение или null означает, что будет использована стандартная сумма из фильтра.
example: "25"
{
"odds": "2.15",
"amount": "25"
}Responses
200 Prediction создан или обновлён.
object
idrequired
integer
example: 10
filterIdrequired
integer
example: 11583
matchIdrequired
integer
example: 1611243
oddsrequired
string | null
example: "2.150000"
amountrequired
string | null
Индивидуальная сумма ставки для этого матча. Null означает, что используется стандартная сумма из фильтра.
example: "25.000000"
sourcerequired
string
example: "api"
enum: api, ui
createdAtrequired
string:date-time
example: "2026-06-06T12:00:00+00:00"
updatedAtrequired
string:date-time
example: "2026-06-06T12:05:00+00:00"
400 Ошибка валидации.
object
coderequired
string
messagerequired
string
{
"code": "invalid_json_body",
"message": "Invalid JSON body"
}401 API token отсутствует или некорректен.
object
coderequired
string
messagerequired
string
{
"code": "missing_token",
"message": "No token provided"
}403 Текущий пользователь не может получить доступ к этому ресурсу.
object
coderequired
string
messagerequired
string
{
"code": "pro_subscription_required",
"message": "Prediction-based filters are available only for PRO subscription"
}404 Фильтр или матч не найден.
object
coderequired
string
messagerequired
string
{
"code": "filter_not_found",
"message": "Filter not found"
}429 Превышен лимит запросов.
object
coderequired
string
messagerequired
string
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
delete/prediction-filters/{filterId}/matches/{matchId}/predictionУдалить prediction
Predictions
delete
/prediction-filters/{filterId}/matches/{matchId}/predictionУдалить prediction
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| filterId | path | Yes | integer | - |
| matchId | path | Yes | integer | - |
Responses
204 Prediction удалён. Endpoint идемпотентный.
400 Ошибка валидации.
object
coderequired
string
messagerequired
string
{
"code": "invalid_json_body",
"message": "Invalid JSON body"
}401 API token отсутствует или некорректен.
object
coderequired
string
messagerequired
string
{
"code": "missing_token",
"message": "No token provided"
}403 Текущий пользователь не может получить доступ к этому ресурсу.
object
coderequired
string
messagerequired
string
{
"code": "pro_subscription_required",
"message": "Prediction-based filters are available only for PRO subscription"
}404 Фильтр или матч не найден.
object
coderequired
string
messagerequired
string
{
"code": "filter_not_found",
"message": "Filter not found"
}429 Превышен лимит запросов.
object
coderequired
string
messagerequired
string
{
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
Schemas
ErrorResponse
object
coderequired
string
messagerequired
string
SportsResponse
object
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 1
namerequired
string
example: "football"
Sport
object
idrequired
integer
example: 1
namerequired
string
example: "football"
MatchesResponse
object
daterequired
string:date
example: "2026-06-06"
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 1611243
daterequired
string:date-time
example: "2026-06-06T18:00:00+00:00"
finishedrequired
boolean
example: false
scorerequired
object
countryrequired
object
tournamentrequired
object
seasonrequired
object
homerequired
object
awayrequired
object
Match
object
idrequired
integer
example: 1611243
daterequired
string:date-time
example: "2026-06-06T18:00:00+00:00"
finishedrequired
boolean
example: false
scorerequired
object
countryrequired
object
tournamentrequired
object
seasonrequired
object
homerequired
object
awayrequired
object
BetsResponse
object
pagerequired
integer
example: 1
perPagerequired
integer
example: 100
hasNextPagerequired
boolean
True, если существует следующая страница.
example: true
countrequired
integer
Количество ставок, возвращённых на этой странице.
example: 100
itemsrequired
array<object>
object
idrequired
integer
example: 12345
createdAtrequired
string:date-time
Дата размещения ставки.
example: "2026-06-09T12:30:00+00:00"
statusrequired
string
example: "pending"
enum: pending, won, lost, push, canceled, refunded
approvedrequired
boolean
True, если результат ставки подтверждён.
example: false
sportrequired
object
matchrequired
object
filterrequired
object
betTyperequired
string
example: "Home"
oddsrequired
string
example: "2.15"
amountrequired
string
example: "10"
profitrequired
string | null
example: null
Bet
object
idrequired
integer
example: 12345
createdAtrequired
string:date-time
Дата размещения ставки.
example: "2026-06-09T12:30:00+00:00"
statusrequired
string
example: "pending"
enum: pending, won, lost, push, canceled, refunded
approvedrequired
boolean
True, если результат ставки подтверждён.
example: false
sportrequired
object
matchrequired
object
filterrequired
object
betTyperequired
string
example: "Home"
oddsrequired
string
example: "2.15"
amountrequired
string
example: "10"
profitrequired
string | null
example: null
BetMatch
object
idrequired
integer
example: 1611243
daterequired
string:date-time | null
example: "2026-06-06T18:00:00+00:00"
finishedrequired
boolean
example: true
scorerequired
object
homerequired
object
awayrequired
object
Score
object
homerequired
integer | null
example: null
awayrequired
integer | null
example: null
IdName
object
idrequired
integer
namerequired
string
NullableIdName
object
idrequired
integer | null
namerequired
string | null
PredictionFiltersResponse
object
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 11583
namerequired
string
example: "Manual football"
sportrequired
object
betTyperequired
string
example: "Home"
statusrequired
string
example: "approved"
enum: disabled, approved
PredictionFilter
object
idrequired
integer
example: 11583
namerequired
string
example: "Manual football"
sportrequired
object
betTyperequired
string
example: "Home"
statusrequired
string
example: "approved"
enum: disabled, approved
SearchPredictionsRequest
object
filterIdrequired
integer
example: 11583
matchIdsrequired
array<integer>
example: [1611243,1611244]
PutPredictionRequest
object
oddsrequired
string | number
example: "2.15"
amount
string | number
Опциональная индивидуальная сумма ставки для этого матча. Пустое значение или null означает, что будет использована стандартная сумма из фильтра.
example: "25"
PredictionsResponse
object
countrequired
integer
itemsrequired
array<object>
object
idrequired
integer
example: 10
filterIdrequired
integer
example: 11583
matchIdrequired
integer
example: 1611243
oddsrequired
string | null
example: "2.150000"
amountrequired
string | null
Индивидуальная сумма ставки для этого матча. Null означает, что используется стандартная сумма из фильтра.
example: "25.000000"
sourcerequired
string
example: "api"
enum: api, ui
createdAtrequired
string:date-time
example: "2026-06-06T12:00:00+00:00"
updatedAtrequired
string:date-time
example: "2026-06-06T12:05:00+00:00"
Prediction
object
idrequired
integer
example: 10
filterIdrequired
integer
example: 11583
matchIdrequired
integer
example: 1611243
oddsrequired
string | null
example: "2.150000"
amountrequired
string | null
Индивидуальная сумма ставки для этого матча. Null означает, что используется стандартная сумма из фильтра.
example: "25.000000"
sourcerequired
string
example: "api"
enum: api, ui
createdAtrequired
string:date-time
example: "2026-06-06T12:00:00+00:00"
updatedAtrequired
string:date-time
example: "2026-06-06T12:05:00+00:00"