Betting
Get Betting Teaser
Retrieve betting odds teaser for a specific game with related matches and bookmaker information.
GET
/
bets
/
teaser
Betting Teaser
curl --request GET \
--url https://api.sportsapipro.com/v1/football/bets/teaser \
--header 'x-api-key: <api-key>'import requests
url = "https://api.sportsapipro.com/v1/football/bets/teaser"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sportsapipro.com/v1/football/bets/teaser', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sportsapipro.com/v1/football/bets/teaser",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sportsapipro.com/v1/football/bets/teaser"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sportsapipro.com/v1/football/bets/teaser")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sportsapipro.com/v1/football/bets/teaser")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyOverview
The Betting Teaser endpoint provides betting odds for a specific game, along with related matches from the same competition/round. This is useful for displaying pre-match betting information with odds from your preferred bookmaker.Parameters
integer
required
The unique game/match identifier to get odds for.
integer
default:"14"
Preferred bookmaker ID for odds (e.g.,
14 for Bet365).Parameters
appTypeId, langId, timezoneName, and userCountryId are automatically resolved. You can override timezoneName with a specific timezone (e.g., America/New_York). All startTime fields use ISO 8601 format with a dynamic timezone offset.Request
curl -X GET "https://api.sportsapipro.com/v1/football/bets/teaser?gameId=4609055&topBookmaker=14" \
-H "x-api-key: YOUR_API_KEY"
const response = await fetch(
'https://api.sportsapipro.com/v1/football/bets/teaser?gameId=4609055&topBookmaker=14',
{
headers: {
'x-api-key': 'YOUR_API_KEY'
}
}
);
const data = await response.json();
Response
{
"sports": [
{
"id": 1,
"name": "Football",
"nameForURL": "football",
"drawSupport": true,
"imageVersion": 1
}
],
"countries": [
{
"id": 1,
"name": "England",
"nameForURL": "england",
"sportTypes": [1, 9, 11],
"imageVersion": 1,
"isInternational": false
}
],
"competitions": [
{
"id": 7,
"countryId": 1,
"sportId": 1,
"name": "Premier League",
"shortName": "EPL",
"nameForURL": "premier-league",
"popularityRank": 92856977,
"imageVersion": 12,
"color": "#075C9C"
}
],
"bookmakers": [
{
"id": 14,
"name": "Bet365",
"link": "https://extra.bet365.com/features/en/sports-live-streaming",
"nameForURL": "bet365",
"actionButton": {
"link": "https://www.bet365.com/olp/open-account",
"label": "Bet Now"
},
"color": "#007B5B",
"imageVersion": 3,
"promotionText": "Sign up at bet365 today"
}
],
"games": [
{
"id": 4452715,
"sportId": 1,
"competitionId": 7,
"seasonNum": 131,
"stageNum": 1,
"roundNum": 17,
"roundName": "Round",
"competitionDisplayName": "Premier League",
"startTime": "2025-12-20T15:00:00+00:00",
"statusGroup": 2,
"statusText": "Scheduled",
"shortStatusText": "Sched.",
"homeCompetitor": {
"id": 110,
"name": "Manchester City",
"shortName": "Man City",
"symbolicName": "MCI",
"score": -1.0,
"color": "#ABD1F5",
"imageVersion": 1
},
"awayCompetitor": {
"id": 113,
"name": "West Ham United",
"shortName": "West Ham",
"symbolicName": "WHU",
"score": -1.0,
"color": "#74112E",
"imageVersion": 7
},
"hasStandings": true,
"winner": 0
}
],
"odds": [
{
"lineId": 1625689226,
"gameId": 4452715,
"bookmakerId": 14,
"lineTypeId": 1,
"lineType": {
"id": 1,
"name": "Full Time Result",
"shortName": "1X2",
"title": "Full Time Result",
"internalOptionType": -1
},
"options": [
{
"num": 1,
"name": "1",
"rate": {
"decimal": 1.22,
"fractional": "2/9",
"american": "-455"
},
"oldRate": {
"decimal": 1.18,
"fractional": "2/11",
"american": "-556"
},
"originalRate": {
"decimal": 1.18,
"fractional": "2/11",
"american": "-556"
},
"trend": 3
},
{
"num": 2,
"name": "X",
"rate": {
"decimal": 7.5,
"fractional": "13/2",
"american": "+650"
},
"oldRate": {
"decimal": 8.0,
"fractional": "7/1",
"american": "+700"
},
"originalRate": {
"decimal": 6.5,
"fractional": "11/2",
"american": "+550"
},
"trend": 1
},
{
"num": 3,
"name": "2",
"rate": {
"decimal": 11.0,
"fractional": "10/1",
"american": "+1000"
},
"oldRate": {
"decimal": 13.0,
"fractional": "12/1",
"american": "+1200"
},
"originalRate": {
"decimal": 13.0,
"fractional": "12/1",
"american": "+1200"
},
"trend": 1
}
]
}
]
}
Response Fields
Root Level
| Field | Type | Description |
|---|---|---|
sports | array | Sport metadata |
countries | array | Country metadata |
competitions | array | Competition details |
bookmakers | array | Bookmaker information with branding |
games | array | Related games with match details |
odds | array | Betting odds for each game |
Bookmaker Object
| Field | Type | Description |
|---|---|---|
id | integer | Unique bookmaker identifier |
name | string | Bookmaker name (e.g., “Bet365”) |
link | string | Bookmaker website link |
nameForURL | string | URL-safe name |
actionButton | object | CTA button with link and label |
color | string | Brand color hex code |
imageVersion | integer | Logo image version |
promotionText | string | Promotional tagline |
Game Object
| Field | Type | Description |
|---|---|---|
id | integer | Unique game identifier |
sportId | integer | Sport ID |
competitionId | integer | Competition ID |
seasonNum | integer | Season number |
stageNum | integer | Stage number |
roundNum | integer | Round number |
roundName | string | Round name (e.g., “Round”) |
competitionDisplayName | string | Full competition name |
startTime | string | ISO 8601 start time with dynamic timezone offset |
statusGroup | integer | Status group (1=Not Started, 2=Scheduled, 3=Live, 4=Ended, 5=Cancelled, 6=Postponed, 8=Abandoned) |
statusText | string | Human-readable status |
shortStatusText | string | Abbreviated status |
homeCompetitor | object | Home team details |
awayCompetitor | object | Away team details |
hasStandings | boolean | Whether standings are available |
winner | integer | Winner (0=none/undecided, 1=home, 2=away) |
Competitor Object
| Field | Type | Description |
|---|---|---|
id | integer | Team unique identifier |
name | string | Full team name |
shortName | string | Abbreviated name |
longName | string | Extended official name |
symbolicName | string | 3-letter code |
score | number | Current score (-1 if not started) |
color | string | Primary team color |
awayColor | string | Away kit color |
imageVersion | integer | Team logo version |
mainCompetitionId | integer | Primary competition ID |
hasSquad | boolean | Whether squad data is available |
Odds Object
| Field | Type | Description |
|---|---|---|
lineId | integer | Unique betting line ID |
gameId | integer | Associated game ID |
bookmakerId | integer | Bookmaker providing the odds |
lineTypeId | integer | Bet type ID |
lineType | object | Bet type details |
options | array | Available betting options |
Line Type Object
| Field | Type | Description |
|---|---|---|
id | integer | Line type ID |
name | string | Full name (e.g., “Full Time Result”) |
shortName | string | Abbreviated name (e.g., “1X2”) |
title | string | Display title |
internalOptionType | integer | Internal option type flag |
Odds Option Object
| Field | Type | Description |
|---|---|---|
num | integer | Option number (1=Home, 2=Draw, 3=Away) |
name | string | Option label (“1”, “X”, “2”) |
rate | object | Current odds |
oldRate | object | Previous odds for comparison |
originalRate | object | Opening odds |
trend | integer | Movement: 1=shortened, 2=unchanged, 3=drifted |
Rate Object
| Field | Type | Description |
|---|---|---|
decimal | number | Decimal odds (e.g., 1.22) |
fractional | string | Fractional odds (e.g., “2/9”) |
american | string | American odds (e.g., “-455”) |
Odds Movement Trends
| Value | Meaning | Description |
|---|---|---|
| 1 | Shortened | Odds decreased (more likely outcome) |
| 2 | Unchanged | Odds remain the same |
| 3 | Drifted | Odds increased (less likely outcome) |
Use Cases
- Display pre-match betting odds for a specific game
- Show odds movement with trend indicators
- Build bet slip or odds comparison features
- Display related matches from the same round
- Show bookmaker branding and CTAs
Last modified on June 29, 2026
Was this page helpful?
⌘I
Betting Teaser
curl --request GET \
--url https://api.sportsapipro.com/v1/football/bets/teaser \
--header 'x-api-key: <api-key>'import requests
url = "https://api.sportsapipro.com/v1/football/bets/teaser"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sportsapipro.com/v1/football/bets/teaser', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sportsapipro.com/v1/football/bets/teaser",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sportsapipro.com/v1/football/bets/teaser"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sportsapipro.com/v1/football/bets/teaser")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sportsapipro.com/v1/football/bets/teaser")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body