One-shot LLM analytics dashboard (fan-out of 6 pipes)
GET
/
v1
/
analytics
/
model-router
/
dashboard
One-shot LLM analytics dashboard (fan-out of 6 pipes)
curl --request GET \
--url https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard \
--header 'x-api-key: <api-key>'import requests
url = "https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard"
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-sandbox.featherhq.com/v1/analytics/model-router/dashboard', 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://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard"
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))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"cost_timeseries": [
{
"time_bucket": "2023-11-07T05:31:56Z",
"total_cost_usd": 123,
"input_cost_usd": 123,
"output_cost_usd": 123,
"cache_cost_usd": 123,
"invocations": 123
}
],
"cost_by_model": [
{
"served_model": "<string>",
"total_cost_usd": 123,
"input_cost_usd": 123,
"output_cost_usd": 123,
"cache_cost_usd": 123,
"invocations": 123,
"p95_ms": 123,
"avg_ms": 123,
"provider": "<string>"
}
],
"latency": [
{
"served_model": "<string>",
"invocations": 123,
"p50_ms": 123,
"p95_ms": 123,
"p99_ms": 123,
"avg_ms": 123,
"max_ms": 123,
"provider": "<string>"
}
],
"error_rate": [
{
"organization_id": "<string>",
"terminal_failures": 123,
"terminal_total": 123,
"error_rate": 123
}
],
"cache_savings": [
{
"served_model": "<string>",
"cache_read_tokens": 123,
"cache_write_tokens": 123,
"cache_cost_usd": 123,
"cache_savings_usd": 123,
"input_cost_usd": 123,
"total_cost_usd": 123,
"invocations": 123,
"cache_hit_rate": 123,
"provider": "<string>"
}
],
"fallback_rate": [
{
"time_bucket": "2023-11-07T05:31:56Z",
"total_calls": 123,
"fallback_calls": 123,
"fallback_rate": 123
}
]
}{
"error": "<string>",
"message": "<string>",
"retryable": true,
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"retryable": true,
"retry_after": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Query Parameters
Pattern:
^(minute|hour|day|week)$Response
Successful Response
One-shot LLM dashboard — fans out six existing model-router pipes.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I
One-shot LLM analytics dashboard (fan-out of 6 pipes)
curl --request GET \
--url https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard \
--header 'x-api-key: <api-key>'import requests
url = "https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard"
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-sandbox.featherhq.com/v1/analytics/model-router/dashboard', 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://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard"
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))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.featherhq.com/v1/analytics/model-router/dashboard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"cost_timeseries": [
{
"time_bucket": "2023-11-07T05:31:56Z",
"total_cost_usd": 123,
"input_cost_usd": 123,
"output_cost_usd": 123,
"cache_cost_usd": 123,
"invocations": 123
}
],
"cost_by_model": [
{
"served_model": "<string>",
"total_cost_usd": 123,
"input_cost_usd": 123,
"output_cost_usd": 123,
"cache_cost_usd": 123,
"invocations": 123,
"p95_ms": 123,
"avg_ms": 123,
"provider": "<string>"
}
],
"latency": [
{
"served_model": "<string>",
"invocations": 123,
"p50_ms": 123,
"p95_ms": 123,
"p99_ms": 123,
"avg_ms": 123,
"max_ms": 123,
"provider": "<string>"
}
],
"error_rate": [
{
"organization_id": "<string>",
"terminal_failures": 123,
"terminal_total": 123,
"error_rate": 123
}
],
"cache_savings": [
{
"served_model": "<string>",
"cache_read_tokens": 123,
"cache_write_tokens": 123,
"cache_cost_usd": 123,
"cache_savings_usd": 123,
"input_cost_usd": 123,
"total_cost_usd": 123,
"invocations": 123,
"cache_hit_rate": 123,
"provider": "<string>"
}
],
"fallback_rate": [
{
"time_bucket": "2023-11-07T05:31:56Z",
"total_calls": 123,
"fallback_calls": 123,
"fallback_rate": 123
}
]
}{
"error": "<string>",
"message": "<string>",
"retryable": true,
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"retryable": true,
"retry_after": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}