API & MCP

Everything a person can do on Practice Log Report (Minutes, Streaks & Tempo Progress), a program or AI agent can do with the same inputs and get the identical result.

HTTP API

Practice Log Report (Minutes, Streaks & Tempo Progress)

Paste a practice log as CSV (date, minutes, piece, tempo, target) or the journal file exported from the Tonegrid app, and get your total and weekly practice time, active days and streak, a calendar heatmap, and for every piece the tempo you started at, the latest and best tempo and how close you are to the target.

Inputs of Practice Log Report (Minutes, Streaks & Tempo Progress)
FieldTypeDefaultDescription
journaltextarea"date,minutes,piece,bpm,target_bpm,note\n2026-10-05,25,Bach Prelude in C,72,96,hPractice log (CSV or Tonegrid journal JSON). CSV header with at least date (YYYY-MM-DD) and minutes; optional piece, bpm, target_bpm and note. Comma, semicolon or tab separated.
todaydate—Report date (optional). Last day of the report. Empty = the date of the latest session.
weeksinteger12Weeks to show

Example request

Five weeks of piano practice on two pieces

curl -X POST https://tonegridpracticereport.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"journal":"date,minutes,piece,bpm,target_bpm,note\n2026-10-05,25,Bach Prelude in C,72,96,hands separately\n2026-10-06,20,Scales,100,120,\n2026-10-08,30,Bach Prelude in C,76,96,\n2026-10-11,15,Scales,104,120,\n2026-10-13,35,Bach Prelude in C,80,96,left hand cleaner\n2026-10-17,20,Scales,108,120,\n2026-10-20,40,Bach Prelude in C,84,96,\n2026-10-22,25,Scales,112,120,\n2026-10-27,30,Bach Prelude in C,88,96,\n2026-10-29,20,Scales,112,120,\n2026-11-02,45,Bach Prelude in C,90,96,run-through\n2026-11-04,25,Scales,116,120,\n2026-11-08,30,Bach Prelude in C,92,96,","weeks":12}'

Every result contains

inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.

MCP (Model Context Protocol)

{
  "mcpServers": {
    "tonegrid-practice-report": { "type": "http", "url": "https://tonegridpracticereport.usefulweb.app/mcp" }
  }
}