# Report runs (https://developers.asip.io/docs/queries/report-runs)

Reports you ran in ASIP, and runs a colleague shared with you. The rows of a run are not returned.

> **Status: Available on request.** API keys, the read-only Data API, the MCP server (with an API key) and signed webhooks are live on app.asip.io. Developer access is off by default for every company: ask ASIP to enable it for yours (https://developers.asip.io/docs/how-to-get-access). One-click OAuth sign-in for AI connectors (claude.ai, ChatGPT, Copilot) is not available yet; use an API key. The changelog at https://developers.asip.io/docs/changelog says when each part becomes available.

|           |                                                                                                                                |
| --------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Data API  | `GET /api/v1/data/report-runs` and `GET /api/v1/data/report-runs/feed` ([endpoint reference](/docs/api-reference/report-runs)) |
| MCP query | `query://asip/report_runs`                                                                                                     |
| Scope     | `reports:read`                                                                                                                 |
| Module    | Reports                                                                                                                        |
| Filters   | `cursor`, `limit`, `updatedSince`. Company-wide: there is no `stationId` filter, and sending one gets `400 bad_input`.         |
| Order     | `createdAt`, then `id`: the feed delivers **new** runs only (see the [feed limit](#feed-limit))                                |

## Who can read it

People who hold the **Run reports & analytics** permission themselves. Anyone else gets
`403 restricted`.

The query returns only:

* **runs the key's owner made**; and
* **runs a colleague shared with them** in ASIP.

Nobody else's runs are returned, whatever the owner's role. The list is company-wide: it is not
limited by station.

## What each record carries

| Field                    | Meaning                                                                                                                                                     |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`, `module`, `url`    | The run's ASIP id, `reports`, and a link that opens the run in ASIP.                                                                                        |
| `ownership`              | `own`, or `shared` when a colleague shared the run with you.                                                                                                |
| `reportModule`           | Which module the report is about, or `unknown` if ASIP could not read the run's settings.                                                                   |
| `summary`                | What the report asked for, in words (module, dates, filters). For a shared run it describes the colleague's filters, which can include their station codes. |
| `dateSince`, `dateUntil` | The report's date range.                                                                                                                                    |
| `savedReportName`        | The name of **your own** saved report the run came from; `null` for a shared run or a one-off run.                                                          |
| `createdAt`              | When the run was made.                                                                                                                                      |

## What is left out, and why

* **The rows of a run.** When a run is opened in ASIP, it is checked again against the viewer's access
  today. Returning stored rows through the API would skip that check, so the API does not. Open the run
  in ASIP with its `url`, or read the underlying records through their own queries.
* Runs of other people that were not shared with you.
* The raw filter settings, user ids (whose run it is, who shared it) and the share note.

## Feed limit

The list and the feed are ordered by when a run was **created**. A run a colleague shares with you
**after your feed cursor has passed its creation time is not delivered on the feed.**

Use the feed for your own new runs. To see runs shared with you since your last read, **re-read the
list endpoint** (not the feed).
