curl --request GET \
--url https://api.routeur.app/v1/insights/strategies \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/insights/strategies"
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.routeur.app/v1/insights/strategies', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.routeur.app/v1/insights/strategies"
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))
}{
"data": [
{
"id": "<string>",
"venue": "all",
"category": "<string>",
"horizon_days": 1,
"from_usd": "<string>",
"to_usd": "<string>",
"side": "yes",
"markets": 123,
"avg_price_usd": "<string>",
"win_rate": "<string>",
"return_per_100_usd": "<string>",
"return_low_usd": "<string>",
"return_high_usd": "<string>",
"horizons": 123,
"open_matches": 123
}
],
"graph_run": 2
}{
"error": {
"code": "invalid_parameter",
"message": "Invalid or unsupported query parameter: limit."
}
}{
"error": {
"code": "api_key_required",
"message": "Send an API key in the X-API-Key header or as a Bearer token."
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Strategies history supports
Rules to buy one side of markets priced in a 10-cent band some days before they close, drawn from settled history, with what $100 spread across every such market came back as and a 95% range on it. Only rules with at least 100 settled markets, a return of 3% or more before fees, and an edge in the same direction on at least one horizon are listed, best cautious return first. Bands below 10 cents and above 90 cents are left out: history prices them at the midpoint, and that far out the ask is too far from it for the return to be reachable. Each carries how many listed markets fit it now.
curl --request GET \
--url https://api.routeur.app/v1/insights/strategies \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/insights/strategies"
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.routeur.app/v1/insights/strategies', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.routeur.app/v1/insights/strategies"
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))
}{
"data": [
{
"id": "<string>",
"venue": "all",
"category": "<string>",
"horizon_days": 1,
"from_usd": "<string>",
"to_usd": "<string>",
"side": "yes",
"markets": 123,
"avg_price_usd": "<string>",
"win_rate": "<string>",
"return_per_100_usd": "<string>",
"return_low_usd": "<string>",
"return_high_usd": "<string>",
"horizons": 123,
"open_matches": 123
}
],
"graph_run": 2
}{
"error": {
"code": "invalid_parameter",
"message": "Invalid or unsupported query parameter: limit."
}
}{
"error": {
"code": "api_key_required",
"message": "Send an API key in the X-API-Key header or as a Bearer token."
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Query Parameters
kalshi, polymarket, or all for both venues' markets taken together.
all, kalshi, polymarket A category, or All for rules across categories. Omit for every category.
All, Sports, Politics, Economics, Crypto, Culture, Tech & Science, Weather, World, Other Rules to return, best cautious return first.
1 <= x <= 60