---
title: "Download Usage Runs Report"
method: GET
path: "/api/v1/organizations/usage/runs/report"
tags: ["main"]
---

# Download Usage Runs Report

`GET /api/v1/organizations/usage/runs/report`

## Request

- Base URL: `https://app.dograh.com`
- URL: `https://app.dograh.com/api/v1/organizations/usage/runs/report`
- Auth: none declared

Download a CSV of runs matching the same filters as `/usage/runs`.

## Query parameters

- `start_date` string, nullable: ISO 8601 date-time string (UTC). Lower bound (inclusive) on `created_at`.
- `end_date` string, nullable: ISO 8601 date-time string (UTC). Upper bound (inclusive) on `created_at`.
- `filters` string, nullable: JSON-encoded array of filter objects. Each object has the shape: ```json { "attribute": "<name>", "type": "<type>", "value": <value> } ``` Supported `attribute` / `type` / `value` combinations: | attribute | type | value shape | matches | |-----------------|---------------|----------------------------------------------|------------------------------------------------------| | `runId` | `number` | `{ "value": 12345 }` | exact run id | | `workflowId` | `number` | `{ "value": 42 }` | exact agent (workflow) id | | `campaignId` | `number` | `{ "value": 7 }` | exact campaign id | | `callerNumber` | `text` | `{ "value": "415555" }` | substring match on `initial_context.caller_number` | | `calledNumber` | `text` | `{ "value": "9911848" }` | substring match on `initial_context.called_number` | | `dispositionCode` | `multiSelect` | `{ "codes": ["XFER", "DNC"] }` | any of the codes in `gathered_context.mapped_call_disposition` | | `duration` | `numberRange` | `{ "min": 60, "max": 300 }` | call duration (seconds), inclusive bounds | | `callDirection` | `radio` | `{ "status": "inbound" }` | `inbound` or `outbound`; any other value matches all | | `callChannel` | `radio` | `{ "status": "telephony" }` | `telephony`, `web`, or `chat` — the group of run modes for that channel | Unknown attributes and unsupported `type` values are silently ignored. Date filtering on this endpoint is done via the dedicated `start_date` / `end_date` query params, not via a `dateRange` filter object.

## Headers

- `authorization` string, nullable
- `X-API-Key` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `404`: Not found
- `422`: Validation Error

## Changes

- **2026-11-03** `faa00cf76fcb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/dograh/apis/dograh-api/changes/api/v1/organizations/usage/runs/report/get.md)

---

[API](https://skmtc.dev/dograh/apis/dograh-api.md) - [All operations](https://skmtc.dev/dograh/apis/dograh-api/llms.txt) - [OpenAPI document](https://skmtc.dev/dograh/apis/dograh-api/revisions/faa00cf76fcb?raw)
