Order book feed health
curl --request GET \
--url https://api.routeur.app/v1/books/health \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/books/health"
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/books/health', 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/books/health"
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": [
{
"venue": "kalshi",
"status": "up",
"connected": true,
"started_at": "2023-11-07T05:31:56Z",
"stale_seconds": 123,
"messages_per_minute": 123,
"events_per_minute": 123,
"full_depth_markets": 123,
"rest_markets": 123,
"reconnects": 123,
"gaps": 123,
"resyncs": 123,
"dropped": 123,
"rest_errors": 123,
"updated_at": "2023-11-07T05:31:56Z",
"connected_since": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z",
"rest_cycle_seconds": 123,
"latency_ms_p50": 123,
"latency_ms_p99": 123,
"issue": "<string>"
}
]
}{
"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>"
}
}Books
Order book feed health
The state of each venue’s order book feed as its collector last
reported it: whether it is connected and since when, message and
level-change rates, how many markets are recorded at full depth and
how many polled (and how long a polling cycle takes), and the counts
since the collector started of reconnects, sequence gaps, resyncs and
level changes dropped under overload, with feed latency percentiles
where the venue stamps its messages. status is up, degraded
(silent for two minutes, or an issue reported) or down (not
connected, or no report for two minutes).
GET
/
v1
/
books
/
health
Order book feed health
curl --request GET \
--url https://api.routeur.app/v1/books/health \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.routeur.app/v1/books/health"
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/books/health', 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/books/health"
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": [
{
"venue": "kalshi",
"status": "up",
"connected": true,
"started_at": "2023-11-07T05:31:56Z",
"stale_seconds": 123,
"messages_per_minute": 123,
"events_per_minute": 123,
"full_depth_markets": 123,
"rest_markets": 123,
"reconnects": 123,
"gaps": 123,
"resyncs": 123,
"dropped": 123,
"rest_errors": 123,
"updated_at": "2023-11-07T05:31:56Z",
"connected_since": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z",
"rest_cycle_seconds": 123,
"latency_ms_p50": 123,
"latency_ms_p99": 123,
"issue": "<string>"
}
]
}{
"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>"
}
}