Get matched (ungraded) bets
curl --request GET \
--url https://api.4casters.io/user/getMatchedBets \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.4casters.io/user/getMatchedBets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.4casters.io/user/getMatchedBets', 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.4casters.io/user/getMatchedBets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.4casters.io/user/getMatchedBets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.4casters.io/user/getMatchedBets")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.4casters.io/user/getMatchedBets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"matchedBets": [
{
"id": "<string>",
"txID": "<string>",
"bet": 123,
"odds": 123,
"spread": 123,
"total": 123,
"participantID": "<string>",
"market": "<string>",
"side": "<string>",
"userReference": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"matchedTime": "2023-11-07T05:31:56Z",
"graded": true,
"closed": true,
"origin": "<string>",
"adminRefund": true,
"risk": "<string>",
"win": "<string>",
"fee": "<string>",
"game": {
"id": "<string>",
"league": "<string>",
"sport": "<string>",
"start": "2023-11-07T05:31:56Z",
"ended": true,
"eventName": "<string>",
"isFutures": true,
"participants": [
{
"id": "<string>",
"longName": "<string>",
"shortName": "<string>",
"mainPitcher": "<string>",
"rotationNumber": "<string>",
"futuresSide": "<string>",
"score": 123
}
]
}
}
]
}
}User
Get matched bets
List bets that are matched but not yet graded
GET
/
user
/
getMatchedBets
Get matched (ungraded) bets
curl --request GET \
--url https://api.4casters.io/user/getMatchedBets \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.4casters.io/user/getMatchedBets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.4casters.io/user/getMatchedBets', 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.4casters.io/user/getMatchedBets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.4casters.io/user/getMatchedBets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.4casters.io/user/getMatchedBets")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.4casters.io/user/getMatchedBets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"matchedBets": [
{
"id": "<string>",
"txID": "<string>",
"bet": 123,
"odds": 123,
"spread": 123,
"total": 123,
"participantID": "<string>",
"market": "<string>",
"side": "<string>",
"userReference": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"matchedTime": "2023-11-07T05:31:56Z",
"graded": true,
"closed": true,
"origin": "<string>",
"adminRefund": true,
"risk": "<string>",
"win": "<string>",
"fee": "<string>",
"game": {
"id": "<string>",
"league": "<string>",
"sport": "<string>",
"start": "2023-11-07T05:31:56Z",
"ended": true,
"eventName": "<string>",
"isFutures": true,
"participants": [
{
"id": "<string>",
"longName": "<string>",
"shortName": "<string>",
"mainPitcher": "<string>",
"rotationNumber": "<string>",
"futuresSide": "<string>",
"score": 123
}
]
}
}
]
}
}Returns all of the caller’s bets that have been matched but not yet graded — i.e. open positions on games that are not yet settled.
Request
GET /user/getMatchedBets
Takes no parameters.
curl https://api.4casters.io/user/getMatchedBets \
-H "Authorization: Bearer YOUR_TOKEN"
Response
array
Array of matched bets, sorted ascending by game start time.
Show MatchedBet
Show MatchedBet
string
Bet id.
string
Transaction id of the fill.
string
moneyline, spread, total, or moneyline1x2.number
Original bet size.
integer
American odds at fill time.
number
Present for
spread.number
Present for
total.string
over or under. Present for total.string
Present for
moneyline and spread.string
Present for
moneyline1x2.string
For
moneyline1x2 — yes or no.string
Optional client-defined identifier passed at place time.
string
ISO 8601 timestamp.
string
ISO 8601 timestamp the fill occurred.
string
offer (you posted, taker hit you) or wager (you took resting liquidity).string
Risk on the matched portion (string-formatted, 2 decimals).
string
Win amount net of commission.
string
Commission charged on the matched portion.
boolean
Always
false here.boolean
Whether the bet has been closed by an admin action.
boolean
Whether the bet was refunded by an admin.
Example
{
"data": {
"matchedBets": [
{
"id": "67f45377c18c6697c172afa4",
"txID": "67f45377c18c6697c172afa3",
"type": "moneyline",
"bet": 50,
"odds": -185,
"participantID": "5d48bd5198366d41ec7238da",
"userReference": "my-ref-123",
"createdAt": "2025-09-24T19:30:59.482Z",
"matchedTime": "2025-09-24T19:30:59.482Z",
"origin": "wager",
"risk": "50.27",
"win": "27.16",
"fee": "0.27",
"graded": false,
"closed": false,
"adminRefund": false,
"game": {
"id": "688c0516fbc14da0c202d426",
"league": "NBA",
"sport": "basketball",
"start": "2025-09-25T00:10:00.000Z",
"ended": false,
"eventName": "TORONTO RAPTORS VS PHILADELPHIA 76ERS",
"isFutures": false,
"participants": [/* ... */]
}
}
]
}
}
Was this page helpful?
⌘I