---
title: "Get Billing Usage Timeseries Routed Savings"
method: GET
path: "/billing/usage/timeseries-routed-savings"
tags: ["billing"]
---

# Get Billing Usage Timeseries Routed Savings

`GET /billing/usage/timeseries-routed-savings`

Router savings bucketed by time interval for the home page chart.

The routers are retired (ENG-5673), so no new routed inferences are
produced. When the requested window still contains routed traffic the points
are the realized savings stamped on it; otherwise they are an *estimate* of
what the router could have saved, derived from the team's real billed spend.
The ``router_on`` flag on the response tells the client which regime applies
so it can label/colour the line accordingly. ``scope='personal'`` narrows
both paths to the requesting user.

## Query parameters

- `start_date` string, nullable — Range start (ISO date or datetime, UTC); ignored when full_history=true
- `end_date` string, nullable — Range end (ISO date or datetime, UTC); with full_history, caps the window
- `full_history` boolean — If true, span from the team's first request through end (or now); ignores start_date
- `interval_minutes` integer — Bucket width in minutes (default 1440 = daily). Values >= 10080 bucket by week and >= 43200 by month so long ranges stay bounded in point count.
- `scope` 'team' | 'personal' — ``team`` (default) aggregates the active team's usage; ``personal`` narrows to the requesting user's own usage (home page toggle).

## Response `200`

Successful Response

- RoutedSavingsTimeseriesResponse — Timeseries of router savings bucketed by day. ``router_on`` reports whether the requested window contains routed traffic. The routers are retired (ENG-5673), so it can only be true for windows reaching back into the period they served. When true the points are realized savings stamped on those inferences (blue, "actual"). When false the points are an *estimate* of what the router could have saved, derived from the user's real billed spend repriced against a reference model (orange, "estimated").
  - `points` RoutedSavingsTimeseriesPoint[], required
    - `bucket_date` string, required
    - `routed_cost_usd` number
    - `baseline_cost_usd` number
    - `savings_usd` number
    - `routed_request_count` integer
  - `router_on` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/pioneer/apis/brain-api.md) · [All operations](https://skmtc.net/pioneer/apis/brain-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pioneer/brain-api/revisions/b92f75fd3b61/schema)
