# Reports

## List all reports

> Retrieves a list of all available reports. Only reports with \`ApiAccessible: true\` can be run programmatically — the rest are UI-only and return a \`RunUri\` pointing to the impact.com web app.

```json
{"openapi":"3.1.0","info":{"title":"Partner Reports API","version":"14"},"tags":[{"name":"Reports","description":"List available reports, fetch their metadata, and run them synchronously."}],"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"parameters":{"AccountSID":{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"},"description":"Unique identifier for the partner account."}},"schemas":{"Report":{"type":"object","properties":{"Name":{"type":"string","description":"Display name of the report."},"Id":{"type":"string","description":"The report handle used in the path of all other Report endpoints."},"Category":{"type":"string","enum":["Admin","Beta","Compliance","Cross-Program","Custom","Finance","Insights","Listing","Operations","Performance"],"description":"Category that groups related reports in the impact.com UI. May be empty for some reports."},"Description":{"type":"string","description":"A short description of what the report contains."},"ApiAccessible":{"type":"boolean","description":"When `true`, this report can be run via the API at `ApiRunUri` and exported via `DeferredApiRunUri`. When `false`, the report is UI-only and `RunUri` contains the impact.com web app link."},"ApiRunUri":{"type":"string","description":"API resource path to run this report synchronously. Present only when `ApiAccessible` is `true`."},"DeferredApiRunUri":{"type":"string","description":"API resource path to export this report asynchronously. Present only when `ApiAccessible` is `true`."},"MetaDataUri":{"type":"string","description":"API resource path to retrieve this report's metadata. Present only when `ApiAccessible` is `true`."},"RunUri":{"type":"string","description":"Link to view the report in the impact.com web app. Present only when `ApiAccessible` is `false`."}}}}},"paths":{"/Mediapartners/{AccountSID}/Reports":{"get":{"operationId":"listReports","tags":["Reports"],"summary":"List all reports","description":"Retrieves a list of all available reports. Only reports with `ApiAccessible: true` can be run programmatically — the rest are UI-only and return a `RunUri` pointing to the impact.com web app.","parameters":[{"$ref":"#/components/parameters/AccountSID"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"Reports":{"type":"array","items":{"$ref":"#/components/schemas/Report"}}}}}}}}}}}}
```

## Retrieve report metadata

> Returns the dynamic documentation for a report — the filters it accepts and the attributes (columns) it returns. Call this before running a report to learn its exact contract.

```json
{"openapi":"3.1.0","info":{"title":"Partner Reports API","version":"14"},"tags":[{"name":"Reports","description":"List available reports, fetch their metadata, and run them synchronously."}],"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"parameters":{"AccountSID":{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"},"description":"Unique identifier for the partner account."},"ReportId":{"name":"Id","in":"path","required":true,"schema":{"type":"string"},"description":"The report handle (e.g., `mp_action_listing_fast`). Get this from the `Id` field returned by List Reports."}},"schemas":{"ReportMetadata":{"type":"object","properties":{"Name":{"type":"string","description":"Display name of the report."},"Id":{"type":"string","description":"The report handle."},"Description":{"type":"string","description":"A short description of what the report contains."},"Filters":{"type":"array","description":"The filters this report accepts as query parameters when run.","items":{"$ref":"#/components/schemas/ReportFilter"}},"Attributes":{"type":"array","description":"The columns this report returns. Each row in a Run Report response contains one key per attribute.","items":{"$ref":"#/components/schemas/ReportAttribute"}},"RunUri":{"type":"string","description":"API resource path to run this report."},"Uri":{"type":"string","description":"Unique reference to this report's metadata in the impact.com API."}}},"ReportFilter":{"type":"object","properties":{"Name":{"type":"string","description":"The filter's name. Use this as the query parameter when running the report."},"DataType":{"type":"string","enum":["Boolean","Date (yyyy-MM-dd'T'HH:mm:ssZZ)","Decimal","Integer","String"],"description":"Data type the filter accepts."},"Format":{"type":"string","description":"Additional format hint for the filter, if any."}}},"ReportAttribute":{"type":"object","properties":{"Name":{"type":"string","description":"The column name as it appears in each record returned by Run Report."},"DataType":{"type":"string","description":"Data type of values in this column."},"Description":{"type":"string","description":"A short description of what this column represents."}}}}},"paths":{"/Mediapartners/{AccountSID}/Reports/{Id}/MetaData":{"get":{"operationId":"retrieveReportMetadata","tags":["Reports"],"summary":"Retrieve report metadata","description":"Returns the dynamic documentation for a report — the filters it accepts and the attributes (columns) it returns. Call this before running a report to learn its exact contract.","parameters":[{"$ref":"#/components/parameters/AccountSID"},{"$ref":"#/components/parameters/ReportId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportMetadata"}}}},"404":{"description":"No report exists with the supplied Id."}}}}}}
```

## Run a report (Legacy)

> Runs a report synchronously and returns the records inline. Page size is fixed at 20,000 rows — for larger datasets use the Report Export endpoint instead.\
> \
> Call \`/Reports/{Id}/MetaData\` first to learn which filters the report accepts and which columns it returns. The \`Records\` array contains one object per row with column names matching the metadata \`Attributes\`.<br>

```json
{"openapi":"3.1.0","info":{"title":"Partner Reports API","version":"14"},"tags":[{"name":"Reports","description":"List available reports, fetch their metadata, and run them synchronously."}],"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"parameters":{"AccountSID":{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"},"description":"Unique identifier for the partner account."},"ReportId":{"name":"Id","in":"path","required":true,"schema":{"type":"string"},"description":"The report handle (e.g., `mp_action_listing_fast`). Get this from the `Id` field returned by List Reports."}}},"paths":{"/Mediapartners/{AccountSID}/Reports/{Id}":{"get":{"operationId":"runReport","tags":["Reports"],"summary":"Run a report (Legacy)","description":"Runs a report synchronously and returns the records inline. Page size is fixed at 20,000 rows — for larger datasets use the Report Export endpoint instead.\n\nCall `/Reports/{Id}/MetaData` first to learn which filters the report accepts and which columns it returns. The `Records` array contains one object per row with column names matching the metadata `Attributes`.\n","parameters":[{"$ref":"#/components/parameters/AccountSID"},{"$ref":"#/components/parameters/ReportId"},{"name":"SUBAID","in":"query","required":false,"schema":{"type":"string"},"description":"Program ID to scope the report to a single brand. Omit to include all programs you partner with."},{"name":"START_DATE","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"Start date for the report's date range, in `YYYY-MM-DD` format."},{"name":"END_DATE","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"End date for the report's date range, in `YYYY-MM-DD` format."},{"name":"RQueryIDx","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"For reports that return multiple result tables, selects which table to return."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"Records":{"type":"array","description":"One object per row. Keys match the column names returned by the report's MetaData `Attributes`.","items":{"type":"object","additionalProperties":true}}}}}}},"404":{"description":"No report exists with the supplied Id, or the report is not API accessible."}}}}}}
```

## Export a report (asynchronous)

> Schedules a background job to export a report. Returns immediately with a \`QueuedUri\` pointing to the Partner Jobs API — poll that endpoint to track progress, then download the result from \`ResultUri\` once the job is complete.\
> \
> Use this endpoint instead of Run Report for any dataset that may exceed 20,000 rows.<br>

```json
{"openapi":"3.1.0","info":{"title":"Partner Reports API","version":"14"},"tags":[{"name":"Report Export","description":"Schedule an asynchronous report export and poll for results via the Partner Jobs API."}],"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"parameters":{"AccountSID":{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"},"description":"Unique identifier for the partner account."},"ReportId":{"name":"Id","in":"path","required":true,"schema":{"type":"string"},"description":"The report handle (e.g., `mp_action_listing_fast`). Get this from the `Id` field returned by List Reports."}}},"paths":{"/Mediapartners/{AccountSID}/ReportExport/{Id}":{"get":{"operationId":"exportReport","tags":["Report Export"],"summary":"Export a report (asynchronous)","description":"Schedules a background job to export a report. Returns immediately with a `QueuedUri` pointing to the Partner Jobs API — poll that endpoint to track progress, then download the result from `ResultUri` once the job is complete.\n\nUse this endpoint instead of Run Report for any dataset that may exceed 20,000 rows.\n","parameters":[{"$ref":"#/components/parameters/AccountSID"},{"$ref":"#/components/parameters/ReportId"},{"name":"SUBAID","in":"query","required":false,"schema":{"type":"string"},"description":"Program ID to scope the report to a single brand. Omit to include all programs you partner with."},{"name":"START_DATE","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"Start date for the report's date range, in `YYYY-MM-DD` format."},{"name":"END_DATE","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"End date for the report's date range, in `YYYY-MM-DD` format."},{"name":"ResultFormat","in":"query","required":false,"schema":{"type":"string","enum":["CSV","JSON","XML"],"default":"CSV"},"description":"Format for the exported result file."}],"responses":{"200":{"description":"Job successfully queued.","content":{"application/json":{"schema":{"type":"object","properties":{"Status":{"type":"string","description":"The initial status of the queued export job."},"QueuedUri":{"type":"string","description":"API resource path for polling the job's status via the Partner Jobs API."},"ResultUri":{"type":"string","description":"API resource path to download the result file once the job has completed."},"ReplayUri":{"type":"string","description":"API resource path to replay the export job once it has completed, failed, or been cancelled."}}}}}},"404":{"description":"No report exists with the supplied Id, or the report is not API accessible."}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://integrations.impact.com/partner-api-reference/partner-v14/reference/reports/reports.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
