Get matched volume
curl --request GET \
--url https://api.4casters.io/exchange/getMatchedVolume \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.4casters.io/exchange/getMatchedVolume"
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/exchange/getMatchedVolume', 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/exchange/getMatchedVolume",
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/exchange/getMatchedVolume"
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/exchange/getMatchedVolume")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.4casters.io/exchange/getMatchedVolume")
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": {
"startDate": "2026-08-10",
"endDate": "2026-08-11",
"matchedVolume": 6447933.01
}
}{
"error": "<string>"
}Mercados
Obtener volumen cruzado
Volumen cruzado total del sitio en un rango de fechas
GET
/
exchange
/
getMatchedVolume
Get matched volume
curl --request GET \
--url https://api.4casters.io/exchange/getMatchedVolume \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.4casters.io/exchange/getMatchedVolume"
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/exchange/getMatchedVolume', 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/exchange/getMatchedVolume",
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/exchange/getMatchedVolume"
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/exchange/getMatchedVolume")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.4casters.io/exchange/getMatchedVolume")
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": {
"startDate": "2026-08-10",
"endDate": "2026-08-11",
"matchedVolume": 6447933.01
}
}{
"error": "<string>"
}Devuelve el volumen cruzado total del sitio para un rango inclusivo de días de calendario del Este de EE. UU. (ET).
Cómo se calcula el volumen
Cada apuesta cruzada aporta las apuestas de ambos lados del cruce:- la apuesta del taker (el importe cruzado), más
- la apuesta del maker, derivada de las cuotas del taker: a cuotas positivas del taker es
stake × odds / 100, a cuotas negativas del taker esstake × −100 / odds.
risk + win: tu apuesta más tu ganancia potencial, porque tu ganancia potencial es exactamente la apuesta de la contraparte. Un take de 100a+150cuentacomo250 de volumen (100delladotaker+150 del lado maker).
El volumen usa las apuestas brutas antes de comisión. Los campos
risk / win de Obtener apuestas cruzadas ya incluyen comisión, así que sumarlos diferirá ligeramente de este endpoint.Actualidad
Los días ET finalizados se leen de un archivo diario cerrado. Si el rango termina hoy (unendDate posterior a hoy se recorta a hoy), se suma un agregado en vivo de los cruces de hoy, de modo que la porción del día actual se actualiza en tiempo real a medida que se cruzan apuestas.
Solicitud
GET /exchange/getMatchedVolume
string
requerido
Primer día de calendario ET del rango,
YYYY-MM-DD (inclusivo).string
requerido
Último día de calendario ET del rango,
YYYY-MM-DD (inclusivo). No debe ser anterior a startDate. Las fechas posteriores a hoy se recortan a hoy.curl "https://api.4casters.io/exchange/getMatchedVolume?startDate=2026-08-10&endDate=2026-08-11" \
-H "Authorization: Bearer YOUR_TOKEN"
Respuesta
object
Example response
{
"data": {
"startDate": "2026-08-10",
"endDate": "2026-08-11",
"matchedVolume": 6447933.012757301
}
}
Límites de tasa
No hay un límite específico del endpoint: solo aplica el límite global por IP (3,000 solicitudes por minuto móvil). Para dashboards, consultar una vez cada pocos segundos es más que suficiente; ten en cuenta que los días finalizados nunca cambian, así que solo los rangos que incluyen hoy se benefician de volver a consultar.Errores
| Estado | Significado |
|---|---|
400 | Falta o está mal formado startDate / endDate (debe ser YYYY-MM-DD), o startDate es posterior a endDate. |
401 | Token de autenticación ausente o inválido. |
429 | Se superó el límite de tasa global por IP. Respeta el encabezado Retry-After. |
503 | Se alcanzó el timeout de 15 segundos del servidor. Es seguro reintentar. |
Autorizaciones
Pass your auth token in the Authorization header. The Bearer prefix is optional; the server also accepts a signed auth cookie or a token field in the request body.
Parámetros de consulta
First ET calendar day of the range (YYYY-MM-DD, inclusive).
Ejemplo:
"2026-08-01"
Last ET calendar day of the range (YYYY-MM-DD, inclusive). Dates after today are clamped to today. Must not be before startDate.
Ejemplo:
"2026-08-11"
Respuesta
Total matched volume for the range
Show child attributes
Show child attributes
¿Esta página le ayudó?