> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryopencomputer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Download Usage Runs Report

> Download CSV matching the supported usage-run date and filter parameters. Check Content-Type; successful output is not JSON.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/organizations/usage/runs/report
openapi: 3.1.0
info:
  title: Athena API
  version: 1.0.0
  description: >-
    Hosted Athena customer API. Authenticate backend management and call-trigger
    requests with X-API-Key. Website embeds and artifact playback use their own
    scoped tokens. Provider availability, feature settings, and verification
    limits are described in the guides.
servers:
  - url: https://athena.tryopencomputer.com
    description: Hosted Athena API
security: []
paths:
  /api/v1/organizations/usage/runs/report:
    get:
      tags:
        - Organizations
      summary: Download Usage Runs Report
      description: >-
        Download CSV matching the supported usage-run date and filter
        parameters. Check Content-Type; successful output is not JSON.
      operationId: download_usage_runs_report_api_v1_organizations_usage_runs_report_get
      parameters:
        - name: start_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              ISO 8601 date-time string (UTC). Lower bound (inclusive) on
              `created_at`.
            title: Start Date
          description: >-
            ISO 8601 date-time string (UTC). Lower bound (inclusive) on
            `created_at`.
        - name: end_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              ISO 8601 date-time string (UTC). Upper bound (inclusive) on
              `created_at`.
            title: End Date
          description: >-
            ISO 8601 date-time string (UTC). Upper bound (inclusive) on
            `created_at`.
        - name: filters
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >
              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.
            title: Filters
          description: >
            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.
        - name: authorization
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
        - name: X-API-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            text/csv:
              schema:
                type: string
        '400':
          description: Bad Request
        '401':
          description: Authentication is missing or invalid.
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.