# streams_and_revenue > Streams and revenue (USD) from store statements, grouped by month, store, country, release, track or artist/label, over a period, optionally for one release, track… Tool `streams_and_revenue` · Read-only · Every account with MCP access · Role permission: `royalties.view` Streams and revenue (USD) from store statements, grouped by month, store, country, release, track or artist/label, over a period, optionally for one release, track (ISRC), store or country. Statements are monthly and arrive 1–3 months late: there are no daily or weekly numbers. Includes the totals and the change against the previous period of the same length. ## Arguments | Argument | Type | Required | Description | | --- | --- | --- | --- | | `period` | `this_month` \| `last_month` \| `this_quarter` \| `last_quarter` \| `last_3_months` \| `last_6_months` \| `last_12_months` \| `this_year` \| `last_year` \| `all_time` | No | last_N_months = the N full months before this one. Ignored when from_month/to_month are given. Default "last_12_months". | | `from_month` | string | No | First month, YYYY-MM. | | `to_month` | string | No | Last month, YYYY-MM (default: from_month, or this month). | | `group_by` | `month` \| `store` \| `country` \| `release` \| `track` \| `member` | No | member = per artist/label (clients and staff). Default "month". | | `release_id` | integer | No | | | `isrc` | string | No | | | `store` | string | No | Store, e.g. spotify, apple_music, youtube, tiktok, amazon. | | `country` | string | No | | | `member_id` | integer | No | Clients: one of your artists/labels. Staff: any account. | | `limit` | integer (1–100) | No | Default 25. | ## Example call Assistants make this call for you; this is what goes to `https://app.hillsmusic.com/mcp` over JSON-RPC. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "streams_and_revenue", "arguments": { "period": "last_12_months", "group_by": "month", "limit": 25 } } } ``` ## Result A one-line summary as text, then the same data as JSON in `structuredContent`, with these fields: | Field | Type | Description | | --- | --- | --- | | `currency` | `USD` | | | `period` | object | | | `group_by` | string | | | `latest_month_with_data` | string or null | | | `totals` | object | | | `previous_period` | object or null | | | `rows` | array of object | | | `truncated` | boolean | | | `note` | string | | A refusal (no permission, not found, bad input) comes back as a tool error (`isError: true`) whose text says why. Source: https://developer.hillsmusic.com/mcp/streams-and-revenue/