Reports
Publish shareable HTML reports at public, unguessable, expiring, revocable URLs — and track who opened them. Plus the sector-momentum report generator.
Publishing sends a report to a public URL (no login required to view, though you can protect it with an access code). Revoking and access-code changes take effect immediately.
publish_report
Publish an HTML report at a shareable public URL and return the link. The URL is public but unguessable (128-bit id), expiring, and revocable.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
html | string | Yes | The report HTML to publish |
title | string | No | Report title |
recipient | string | No | Named recipient (for your own tracking) |
entity_id / entity_name | string | No | Brand/rightholder the report is about |
expires_in_days | number | No | Link lifetime (default 90) |
require_access_code | boolean | No | Protect with an access code (default true) |
access_code | string | No | Set a specific code (otherwise one is generated) |
workspace_logo | boolean | No | Co-brand with the workspace logo (default false) |
Returns
{ id, url, title, sizeBytes, expiresAt, accessCode, coBranded }.
Example prompt
"Publish this report for Decathlon with an access code"
set_report_access_code
Add, change, or remove a published report's access code. Changing or removing it invalidates every unlock already granted.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
report_id | string | Yes | The published report id |
require_access_code | boolean | No | true generates a fresh code (default) |
access_code | string | No | Set a specific code; omit with require_access_code:false to remove protection |
Example prompt
"Rotate the access code on that report"
list_published_reports
List the workspace's published reports, most recent first.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | number | No | Max rows (default 50, max 200) |
Returns
Rows including viewCount, firstViewedAt, lastViewedAt, fetchCount. Read
viewCount (not fetchCount) for "did they open it?".
get_report_stats
Detailed open history for one published report.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
report_id | string | Yes | The published report id |
Returns
Counters plus up to 100 individual events, each with a timestamp, a viewerHash,
a counted flag, and isBot; uniqueViewers counts distinct real readers.
Example prompt
"Has anyone opened the Decathlon report?"
revoke_published_report
Cut off public access to a report (the link then shows a "report withdrawn" page). Reversible; the URL is unchanged. Previews before running.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
report_id | string | Yes | The published report id |
restore_published_report
Re-open access to a revoked report. Returns the same URL as before.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
report_id | string | Yes | The published report id |
sponsorship_sector_report
Start the sector-momentum sponsorship report for one rightholder: resolves the club/federation, classifies its current sponsorship portfolio by sector, and returns report instructions with sport/league/country/comparable leagues filled in. Read-only.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
entity_name | string | Yes | The rightholder to report on |
language | string | No | Report language (default English) |
Returns
{ entity, current_portfolio, benchmark_scope, instructions }, or
{ found: false, candidates, hint } when the name is ambiguous/unknown.
Example prompt
"Build a sector-momentum report for Stade Rennais"