# Models

## The ReportExportResponse object

```json
{"openapi":"3.1.0","info":{"title":"Agency API — Reports","version":"3.0"},"components":{"schemas":{"ReportExportResponse":{"type":"object","description":"Job-handle response returned from the ReportExport endpoint. The export runs asynchronously through impact.com's Jobs system; use the URIs in this response to track and retrieve the result.\n\nOn invalid input the API returns the same HTTP 200 with an `ErrorResponse` envelope instead — check the `Status` field.","properties":{"Status":{"type":"string","description":"The initial status of the export job. Returns `QUEUED` on successful submission, or `ERROR` if the request was invalid (in which case a `Message` field will be populated instead of the URIs).","enum":["QUEUED","ERROR"]},"QueuedUri":{"type":"string","format":"uri-reference","description":"The relative URI of the underlying job. Use it (or its trailing job ID) with the Jobs API to poll for status updates."},"ResultUri":{"type":"string","format":"uri-reference","description":"The relative URI to download the exported result file. Available once the job completes — calling it before completion returns the job status, not the file."},"ReplayUri":{"type":"string","format":"uri-reference","description":"The relative URI to re-run the same export with the same parameters. Useful for retrying failed jobs without re-specifying inputs."},"Message":{"type":"string","description":"A human-readable error description. Only present when `Status` is `ERROR`."}}}}}}
```

## The Report object

```json
{"openapi":"3.1.0","info":{"title":"Agency API — Reports","version":"3.0"},"components":{"schemas":{"Report":{"type":"object","description":"A single report definition in the report catalog.","properties":{"Name":{"type":"string","description":"The human-readable name of the report."},"Id":{"type":"string","description":"The unique identifier of the report on impact.com. Use this as the `ReportId` path parameter when running or exporting the report. May not be present for some web-only reports."},"Category":{"type":"string","description":"The category the report belongs to. Categories group reports by purpose in the impact.com UI.\n\nAdditional categories may exist beyond the values listed below.","enum":["Admin","Beta","Compliance","Cross-Program","Custom","Finance","Insights","Listing","Operations","Partner","Performance"]},"Description":{"type":"string","description":"A short explanation of the data this report shows."},"ApiAccessible":{"type":"boolean","description":"Whether this report can be run via the API. When `false`, only `RunUri` (web app URL) is populated; the report can only be run from the impact.com UI."},"ApiRunUri":{"type":"string","format":"uri-reference","description":"The relative URI to run the report synchronously via the legacy `GET /Reports/{ReportId}` endpoint. Present when `ApiAccessible` is `true`."},"DeferredApiRunUri":{"type":"string","format":"uri-reference","description":"The relative URI to export the report asynchronously via the `GET /ReportExport/{ReportId}` endpoint. Present when `ApiAccessible` is `true`.\n\n**Recommended** over `ApiRunUri` for any non-trivial report."},"MetaDataUri":{"type":"string","format":"uri-reference","description":"The relative URI to retrieve the report's metadata (filters and attributes). Present when `ApiAccessible` is `true`."},"RunUri":{"type":"string","format":"uri-reference","description":"The relative URI to run the report in the impact.com web app. Present when `ApiAccessible` is `false` — these reports cannot be run via API."}}}}}}
```

## The ReportMetadata object

```json
{"openapi":"3.1.0","info":{"title":"Agency API — Reports","version":"3.0"},"components":{"schemas":{"ReportMetadata":{"type":"object","description":"Metadata describing a single report's accepted filters (input parameters) and returned attributes (output columns).","properties":{"Name":{"type":"string","description":"The human-readable name of the report."},"Id":{"type":"string","description":"The unique identifier of the report on impact.com."},"Description":{"type":"string","description":"A short explanation of the data this report shows."},"Filters":{"type":"array","description":"The filter parameters this report accepts as query parameters. Filter names from this list (uppercased with underscores, e.g., `Start Date` → `START_DATE`) are passed as query parameters to the `Reports/{ReportId}` or `ReportExport/{ReportId}` endpoints.","items":{"$ref":"#/components/schemas/ReportFilter"}},"Attributes":{"type":"array","description":"The output columns this report returns. Each entry describes one field of each record in the report results.","items":{"$ref":"#/components/schemas/ReportAttribute"}},"RunUri":{"type":"string","format":"uri-reference","description":"The relative URI to run the report."},"Uri":{"type":"string","format":"uri-reference","description":"The relative URI of this metadata resource."}}},"ReportFilter":{"type":"object","description":"A single filter parameter that a report accepts.","properties":{"Name":{"type":"string","description":"The display name of the filter as shown in the impact.com UI (e.g., `\"Start Date\"`). When passing the filter as a query parameter, convert it to uppercase with underscores in place of spaces — `\"Start Date\"` becomes `START_DATE`."},"DataType":{"type":"string","description":"The data type the filter accepts.","enum":["Boolean","Date (yyyy-MM-dd'T'HH:mm:ssZZ)","Decimal","Integer","String"]},"Format":{"type":"string","description":"An optional input format constraint. When empty, no specific format is enforced beyond the data type.","enum":["yyyy-MM-dd",""]}}},"ReportAttribute":{"type":"object","description":"A single output column that a report returns.","properties":{"Name":{"type":"string","description":"The field name as it appears in the report records."},"DataType":{"type":"string","description":"The data type of this field.","enum":["Boolean","Date (yyyy-MM-dd'T'HH:mm:ssZZ)","Decimal","Integer","String"]},"Description":{"type":"string","description":"A short description of what this field represents. May be empty."}}}}}}
```

## The ReportFilter object

```json
{"openapi":"3.1.0","info":{"title":"Agency API — Reports","version":"3.0"},"components":{"schemas":{"ReportFilter":{"type":"object","description":"A single filter parameter that a report accepts.","properties":{"Name":{"type":"string","description":"The display name of the filter as shown in the impact.com UI (e.g., `\"Start Date\"`). When passing the filter as a query parameter, convert it to uppercase with underscores in place of spaces — `\"Start Date\"` becomes `START_DATE`."},"DataType":{"type":"string","description":"The data type the filter accepts.","enum":["Boolean","Date (yyyy-MM-dd'T'HH:mm:ssZZ)","Decimal","Integer","String"]},"Format":{"type":"string","description":"An optional input format constraint. When empty, no specific format is enforced beyond the data type.","enum":["yyyy-MM-dd",""]}}}}}}
```

## The ReportAttribute object

```json
{"openapi":"3.1.0","info":{"title":"Agency API — Reports","version":"3.0"},"components":{"schemas":{"ReportAttribute":{"type":"object","description":"A single output column that a report returns.","properties":{"Name":{"type":"string","description":"The field name as it appears in the report records."},"DataType":{"type":"string","description":"The data type of this field.","enum":["Boolean","Date (yyyy-MM-dd'T'HH:mm:ssZZ)","Decimal","Integer","String"]},"Description":{"type":"string","description":"A short description of what this field represents. May be empty."}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.1.0","info":{"title":"Agency API — Reports","version":"3.0"},"components":{"schemas":{"ErrorResponse":{"type":"object","description":"Error envelope returned with HTTP 200 when a request is invalid. The Reports and ReportExport endpoints do not use 4xx status codes — always check the `Status` field on every response.","properties":{"Status":{"type":"string","description":"Returns `ERROR` on a failed request.","enum":["ERROR"]},"Message":{"type":"string","description":"Human-readable description of the error."}}}}}}
```


---

# 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/agency-v3/reference/reportexport/models.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.
