curl --request POST \
--url https://arena-predictions.com/api/v1/backtest \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://arena-predictions.com/api/v1/backtest"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://arena-predictions.com/api/v1/backtest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"mode": "paper"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Replay settled game-winner markets on paper
Forwards the JSON body to the backtest edge function and returns that function’s JSON. Paper replay of settled Kalshi game-winner markets. Scope markets:read, the same check as the other keyed market routes. A 2xx object has mode paper (set here when the function left it out). GET and every other method answer 405 method_not_allowed with Allow: POST, OPTIONS, and are not forwarded. The function’s fields are ZBGC/Bettr-backend#47; this path is what the public host serves so the route is not 404 route_not_found. Paper only. Not cached.
curl --request POST \
--url https://arena-predictions.com/api/v1/backtest \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://arena-predictions.com/api/v1/backtest"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://arena-predictions.com/api/v1/backtest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"mode": "paper"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retryAfterSeconds": 2
}
}Authorizations
Authorization: Bearer arena_sk_... (the x-arena-key header is accepted too). Keys are made in Settings (https://arena-predictions.com/settings#api-keys) or with arena keys create, shown once, stored hashed.
Body
Forwarded as JSON to the backtest edge function. That function owns the fields.
Response
The edge function's JSON, passed through. mode is paper.
Every successful keyed answer is paper.
"paper"