Unusual flow
curl --request GET \
--url https://api.routeur.app/v1/flow \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/flow"
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/flow', 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/flow"
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": 123,
"kind": "burst",
"market": {
"venue": "kalshi",
"id": "<string>",
"title": "<string>"
},
"window_start": "2023-11-07T05:31:56Z",
"window_end": "2023-11-07T05:31:56Z",
"first_detected_at": "2023-11-07T05:31:56Z",
"last_detected_at": "2023-11-07T05:31:56Z",
"detections": 2,
"score": 123,
"metrics": {}
}
]
}{
"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>"
}
}Signals
Unusual flow
Markets whose last 15 minutes of trading were unusual against their own previous week, scored every five minutes. Repeated detections of the same market and kind within an hour extend one signal. Signals describe trading, not its cause.
GET
/
v1
/
flow
Unusual flow
curl --request GET \
--url https://api.routeur.app/v1/flow \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/flow"
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/flow', 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/flow"
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": 123,
"kind": "burst",
"market": {
"venue": "kalshi",
"id": "<string>",
"title": "<string>"
},
"window_start": "2023-11-07T05:31:56Z",
"window_end": "2023-11-07T05:31:56Z",
"first_detected_at": "2023-11-07T05:31:56Z",
"last_detected_at": "2023-11-07T05:31:56Z",
"detections": 2,
"score": 123,
"metrics": {}
}
]
}{
"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>"
}
}Authorizations
apiKeybearer
Query Parameters
Only results on this venue.
Available options:
kalshi, polymarket Only signals of this kind.
burst: far more trades than the market normally sees. large_fill: one
fill much larger than its typical trade. one_sided: unusual flow almost
all in one direction that moved the Yes price with it.
Available options:
burst, large_fill, one_sided Signals last detected within this many hours.
Required range:
1 <= x <= 168Signals to return, most recent first.
Required range:
1 <= x <= 200Response
Signals, most recently detected first.
Show child attributes
Show child attributes