curl --request GET \
--url https://data.gravia.trade/api/v1/markets/crypto/price-to-beat \
--header 'Authorization: <api-key>'import requests
url = "https://data.gravia.trade/api/v1/markets/crypto/price-to-beat"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://data.gravia.trade/api/v1/markets/crypto/price-to-beat', 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://data.gravia.trade/api/v1/markets/crypto/price-to-beat",
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: <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://data.gravia.trade/api/v1/markets/crypto/price-to-beat"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://data.gravia.trade/api/v1/markets/crypto/price-to-beat")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.gravia.trade/api/v1/markets/crypto/price-to-beat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"slug": "btc-updown-5m-1783674600",
"status": "available",
"market_state": "live",
"price_to_beat": 64177.13661696,
"currency": "USD",
"crypto": "BTC",
"interval": "5m",
"price_source": "chainlink",
"twap_window": null,
"resolution_source": "https://data.chain.link/streams/btc-usd",
"start_time": 1783674600,
"end_time": 1783674900,
"start_time_iso": "2026-07-10T09:10:00Z",
"end_time_iso": "2026-07-10T09:15:00Z",
"retryable": false,
"observed_at": "2026-07-10T09:14:42Z"
}Get a market's price to beat
Resolves a crypto up/down market slug, condition ID, or token ID to its opening reference price. The response always contains the canonical market slug. Recognized future and recently-opened markets return 200 with timing instructions in the response.
curl --request GET \
--url https://data.gravia.trade/api/v1/markets/crypto/price-to-beat \
--header 'Authorization: <api-key>'import requests
url = "https://data.gravia.trade/api/v1/markets/crypto/price-to-beat"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://data.gravia.trade/api/v1/markets/crypto/price-to-beat', 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://data.gravia.trade/api/v1/markets/crypto/price-to-beat",
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: <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://data.gravia.trade/api/v1/markets/crypto/price-to-beat"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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://data.gravia.trade/api/v1/markets/crypto/price-to-beat")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.gravia.trade/api/v1/markets/crypto/price-to-beat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"slug": "btc-updown-5m-1783674600",
"status": "available",
"market_state": "live",
"price_to_beat": 64177.13661696,
"currency": "USD",
"crypto": "BTC",
"interval": "5m",
"price_source": "chainlink",
"twap_window": null,
"resolution_source": "https://data.chain.link/streams/btc-usd",
"start_time": 1783674600,
"end_time": 1783674900,
"start_time_iso": "2026-07-10T09:10:00Z",
"end_time_iso": "2026-07-10T09:15:00Z",
"retryable": false,
"observed_at": "2026-07-10T09:14:42Z"
}Authorizations
Raw database-backed API key.
Query Parameters
A supported Polymarket crypto up/down market slug, a condition ID
formatted as 0x followed by exactly 64 hexadecimal characters, or
an unsigned U256 token ID formatted as a base-10 integer. The 0x
prefix is required for condition IDs so decimal values are always
interpreted as token IDs.
1 - 255Response
Market and price-to-beat availability details.
Availability of the immutable opening price. Scheduled and pending responses are retryable; unavailable responses are not.
scheduled, pending, available, unavailable upcoming, live, ended Immutable USD reference price at market start.
USD BTC, ETH, SOL, XRP, BNB, DOGE, HYPE, ZEC 5m, 15m, 1h, 4h, 1d chainlink, binance Chainlink TWAP window the market resolves against. Null for markets that started before the TWAP cutoff and for intervals with no TWAP feed (1h, 1d), which use a spot or Binance price instead.
The window an interval maps to is itself time-dependent: 5m markets use 30s until 2026-08-14T00:00:00Z and 60s from then on, decided on market start time; 15m and 4h use 60s throughout.
30s, 60s Earliest expected availability; present for scheduled markets.
Suggested retry delay; present for scheduled and pending markets.
x >= 1