API de BetTune

BetTune API

Documentación interactiva de la API externa de BetTune: descubrir partidos, leer filtros de predicción y gestionar cuotas de predicción.

Descargar esquema OpenAPI
URL base de la API pública
https://ovaccess.com/bet-tune-api/v1
Token API

Puedes crear o regenerar tu token API en la página Settings de BetTune.

Abrir Settings de BetTune
Solo suscripción PRO

La API de BetTune está disponible solo para usuarios con una suscripción PRO activa.

Autenticación

Authorization: Bearer tu_bettune_api_token

Endpoints

Abre un endpoint para ver parámetros, body, respuestas, ejemplos y esquemas.

get/sports

List available sports

Sports

Respuestas

200 Available sports.
object
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 1
namerequerido
string
ejemplo: "football"
{
  "count": 1,
  "items": [
    {
      "id": 1,
      "name": "football"
    }
  ]
}
401 Missing or invalid API token.
object
coderequerido
string
messagerequerido
string
{
  "code": "missing_token",
  "message": "No token provided"
}
429 Rate limit exceeded.
object
coderequerido
string
messagerequerido
string
{
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded"
}
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
get/matches

List matches for one UTC date

Matches

Parámetros

NombreEnRequeridoTipoDescripción
datequerystring:dateUTC date in `YYYY-MM-DD` format.
sportqueryintegerSport id. Currently only football is exposed by `/sports`.

Respuestas

200 Matches for the requested UTC date.
object
daterequerido
string:date
ejemplo: "2026-06-06"
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 1611243
daterequerido
string:date-time
ejemplo: "2026-06-06T18:00:00+00:00"
finishedrequerido
boolean
ejemplo: false
scorerequerido
object
countryrequerido
object
tournamentrequerido
object
seasonrequerido
object
homerequerido
object
awayrequerido
object
400 Invalid query parameters.
object
coderequerido
string
messagerequerido
string
{
  "code": "date_invalid",
  "message": "Invalid or missing date. Expected format: YYYY-MM-DD"
}
401 Missing or invalid API token.
object
coderequerido
string
messagerequerido
string
{
  "code": "missing_token",
  "message": "No token provided"
}
429 Rate limit exceeded.
object
coderequerido
string
messagerequerido
string
{
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded"
}
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
get/prediction-filters

List prediction filters

Prediction Filters

Respuestas

200 Prediction-based filters for the current API token user.
object
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 11583
namerequerido
string
ejemplo: "Manual football"
sportrequerido
object
betTyperequerido
string
ejemplo: "Home"
statusrequerido
string
ejemplo: "approved"
enum: disabled, approved
401 Missing or invalid API token.
object
coderequerido
string
messagerequerido
string
{
  "code": "missing_token",
  "message": "No token provided"
}
429 Rate limit exceeded.
object
coderequerido
string
messagerequerido
string
{
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded"
}
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window
post/predictions/search

Search existing predictions

Predictions

Body de la petición

object
filterIdrequerido
integer
ejemplo: 11583
matchIdsrequerido
array<integer>
ejemplo: [1611243,1611244]
{
  "filterId": 11583,
  "matchIds": [
    1611243,
    1611244
  ]
}

Respuestas

200 Existing predictions for requested matches.
object
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 10
filterIdrequerido
integer
ejemplo: 11583
matchIdrequerido
integer
ejemplo: 1611243
oddsrequerido
string
ejemplo: "2.150000"
sourcerequerido
string
ejemplo: "api"
enum: api, ui
createdAtrequerido
string:date-time
ejemplo: "2026-06-06T12:00:00+00:00"
updatedAtrequerido
string:date-time
ejemplo: "2026-06-06T12:05:00+00:00"
400 Validation error.
object
coderequerido
string
messagerequerido
string
{
  "code": "invalid_json_body",
  "message": "Invalid JSON body"
}
401 Missing or invalid API token.
object
coderequerido
string
messagerequerido
string
{
  "code": "missing_token",
  "message": "No token provided"
}
403 The current user cannot access this resource.
object
coderequerido
string
messagerequerido
string
{
  "code": "pro_subscription_required",
  "message": "Prediction-based filters are available only for PRO subscription"
}
404 Filter or match not found.
object
coderequerido
string
messagerequerido
string
{
  "code": "filter_not_found",
  "message": "Filter not found"
}
429 Rate limit exceeded.
object
coderequerido
string
messagerequerido
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

Create or update prediction odds

Predictions

Parámetros

NombreEnRequeridoTipoDescripción
filterIdpathinteger-
matchIdpathinteger-

Body de la petición

object
oddsrequerido
string | number
ejemplo: "2.15"
{
  "odds": "2.15"
}

Respuestas

200 Created or updated prediction.
object
idrequerido
integer
ejemplo: 10
filterIdrequerido
integer
ejemplo: 11583
matchIdrequerido
integer
ejemplo: 1611243
oddsrequerido
string
ejemplo: "2.150000"
sourcerequerido
string
ejemplo: "api"
enum: api, ui
createdAtrequerido
string:date-time
ejemplo: "2026-06-06T12:00:00+00:00"
updatedAtrequerido
string:date-time
ejemplo: "2026-06-06T12:05:00+00:00"
400 Validation error.
object
coderequerido
string
messagerequerido
string
{
  "code": "invalid_json_body",
  "message": "Invalid JSON body"
}
401 Missing or invalid API token.
object
coderequerido
string
messagerequerido
string
{
  "code": "missing_token",
  "message": "No token provided"
}
403 The current user cannot access this resource.
object
coderequerido
string
messagerequerido
string
{
  "code": "pro_subscription_required",
  "message": "Prediction-based filters are available only for PRO subscription"
}
404 Filter or match not found.
object
coderequerido
string
messagerequerido
string
{
  "code": "filter_not_found",
  "message": "Filter not found"
}
429 Rate limit exceeded.
object
coderequerido
string
messagerequerido
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

Delete prediction

Predictions

Parámetros

NombreEnRequeridoTipoDescripción
filterIdpathinteger-
matchIdpathinteger-

Respuestas

204 Prediction deleted. The endpoint is idempotent.
400 Validation error.
object
coderequerido
string
messagerequerido
string
{
  "code": "invalid_json_body",
  "message": "Invalid JSON body"
}
401 Missing or invalid API token.
object
coderequerido
string
messagerequerido
string
{
  "code": "missing_token",
  "message": "No token provided"
}
403 The current user cannot access this resource.
object
coderequerido
string
messagerequerido
string
{
  "code": "pro_subscription_required",
  "message": "Prediction-based filters are available only for PRO subscription"
}
404 Filter or match not found.
object
coderequerido
string
messagerequerido
string
{
  "code": "filter_not_found",
  "message": "Filter not found"
}
429 Rate limit exceeded.
object
coderequerido
string
messagerequerido
string
{
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded"
}
Headers: Retry-After, X-RateLimit-Limit, X-RateLimit-Window

Esquemas

ErrorResponse
object
coderequerido
string
messagerequerido
string
SportsResponse
object
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 1
namerequerido
string
ejemplo: "football"
Sport
object
idrequerido
integer
ejemplo: 1
namerequerido
string
ejemplo: "football"
MatchesResponse
object
daterequerido
string:date
ejemplo: "2026-06-06"
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 1611243
daterequerido
string:date-time
ejemplo: "2026-06-06T18:00:00+00:00"
finishedrequerido
boolean
ejemplo: false
scorerequerido
object
countryrequerido
object
tournamentrequerido
object
seasonrequerido
object
homerequerido
object
awayrequerido
object
Match
object
idrequerido
integer
ejemplo: 1611243
daterequerido
string:date-time
ejemplo: "2026-06-06T18:00:00+00:00"
finishedrequerido
boolean
ejemplo: false
scorerequerido
object
countryrequerido
object
tournamentrequerido
object
seasonrequerido
object
homerequerido
object
awayrequerido
object
Score
object
homerequerido
integer
ejemplo: null
awayrequerido
integer
ejemplo: null
IdName
object
idrequerido
integer
namerequerido
string
PredictionFiltersResponse
object
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 11583
namerequerido
string
ejemplo: "Manual football"
sportrequerido
object
betTyperequerido
string
ejemplo: "Home"
statusrequerido
string
ejemplo: "approved"
enum: disabled, approved
PredictionFilter
object
idrequerido
integer
ejemplo: 11583
namerequerido
string
ejemplo: "Manual football"
sportrequerido
object
betTyperequerido
string
ejemplo: "Home"
statusrequerido
string
ejemplo: "approved"
enum: disabled, approved
SearchPredictionsRequest
object
filterIdrequerido
integer
ejemplo: 11583
matchIdsrequerido
array<integer>
ejemplo: [1611243,1611244]
PutPredictionRequest
object
oddsrequerido
string | number
ejemplo: "2.15"
PredictionsResponse
object
countrequerido
integer
itemsrequerido
array<object>
object
idrequerido
integer
ejemplo: 10
filterIdrequerido
integer
ejemplo: 11583
matchIdrequerido
integer
ejemplo: 1611243
oddsrequerido
string
ejemplo: "2.150000"
sourcerequerido
string
ejemplo: "api"
enum: api, ui
createdAtrequerido
string:date-time
ejemplo: "2026-06-06T12:00:00+00:00"
updatedAtrequerido
string:date-time
ejemplo: "2026-06-06T12:05:00+00:00"
Prediction
object
idrequerido
integer
ejemplo: 10
filterIdrequerido
integer
ejemplo: 11583
matchIdrequerido
integer
ejemplo: 1611243
oddsrequerido
string
ejemplo: "2.150000"
sourcerequerido
string
ejemplo: "api"
enum: api, ui
createdAtrequerido
string:date-time
ejemplo: "2026-06-06T12:00:00+00:00"
updatedAtrequerido
string:date-time
ejemplo: "2026-06-06T12:05:00+00:00"