get_reading_stats
Retrieve aggregated reading statistics for a weekly, monthly, yearly, or custom date range. Get books finished, total pages read, and daily average from your Sansfiction reading logs.
Instructions
Reading statistics for a time range, matching the app's Stats page. Choose the range in ONE of two ways: (a) scope + date — e.g. scope='monthly', date='2026-03-15' covers that whole month; or (b) an explicit from+to pair, which OVERRIDES scope/date when both are given. Returns { range:{start,end}, booksFinishedCount, totalPagesRead, dailyAverage, logsCount, logs? }. dailyAverage is computed only for monthly/yearly scopes (null for weekly and for explicit from/to ranges). When to use: aggregate metrics (pages read, books finished, averages) over a period. To list the underlying books use list_my_books; to record progress that feeds these numbers use update_library_book with current_page. Requires SANSFICTION_TOKEN (a bearer token from https://sansfiction.com/docs/agents).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Explicit range end (ISO 8601 date). Must be paired with `from`. | |
| date | No | Anchor date (ISO 8601 YYYY-MM-DD) selecting which week/month/year `scope` refers to. Default: today. Ignored when both `from` and `to` are supplied. | |
| from | No | Explicit range start (ISO 8601 date). Must be paired with `to`; together they override `scope`/`date`. | |
| scope | No | Granularity of the range relative to `date`. Default 'monthly'. Ignored when both `from` and `to` are supplied. | |
| include_logs | No | When true, include the raw reading-log entries (`logs[]`) in the response. Default false. |