---
title: "Execute saved report with optional recipient, subject, and message overrides"
method: POST
path: "/api/2.0/reports/{objectId}/run"
tags: ["Report Management API"]
---

# Execute saved report with optional recipient, subject, and message overrides

`POST /api/2.0/reports/{objectId}/run`

## Path parameters

- `objectId` integer, required

## Request body

- RunReportRequest
  - `recipients` string[]
  - `cc` string[]
  - `bcc` string[]
  - `subject` string
  - `message` string
  - `reportContentFilters` Filter[]
    - `fieldName` string, required — Filter field name. Either fieldName or fieldNames has to be not empty
    - `fieldNames` string[], required — Filter field names in case of tree filter. Either fieldName or fieldNames has to be not empty
    - `values` object[] — Filter values
    - `operator` string — Filter operator
    - `locked` boolean — Whether or not filter is locked (ie: not modifiable)
    - `requireValue` boolean — Whether or not filter requires value to be set
    - `enabled` boolean — Whether or not filter is enabled (default is true)
    - `controlType` string — Filter control type
    - `visible` boolean — Whether or not filter is visible (default is true)
    - `hitList` integer — Suggestion values dataset ID
    - `hitListLabel` string — Suggestion label field name of the hit list dataset
    - `hitListValue` string — Suggestion value field name of the hit list dataset
    - `filteringResult` boolean — Whether the filter should be applied before (false) or after (true) the widget data has been processed
    - `label` string — Display label for the filter
    - `or` boolean — Whether this filter is OR'd with the previous filter (for SQL parsing)
    - `description` string — Filter description
    - `dateLimit` string — Filter date limit
    - `dateLimitOptions` string — Filter date limit options (restriction and from token)
    - `displayValues` object[] — Custom display values
    - `plainControlType` string — Control type for plain text field type
    - `dynamic` boolean — Whether or not filter's value is automatically selected
    - `inclusiveTime` boolean — Whether time range filter is inclusive (includes exact start/end times, where start time is for Start Date and end time for End Date. UI tooltip: When checked, creates a single continuous time period from Start Date/Time to End Date/Time. When unchecked, applies the time range to each day separately (e.g., 9:00-17:00 every day within the date range).)

## Response `200`

Success

- ExecutionReport — Email execution report
  - `executionDate` integer — Date in milliseconds
  - `executionStatus` 'UNKNOWN' | 'RUNNING' | 'SUCCESS' | 'FAILURE' | 'ALERT' | 'TIMEOUT' — Status
  - `duration` integer — Duration
  - `details` ActionApiResponse[] — Details
    - `ok` boolean — Whether or not the response is a success
    - `channel` 'EMAIL' | 'WEBHOOK' | 'SLACK' | 'TEAMS' — Channel
    - `message` string — Action result details message

## Other responses

- `400` — Bad request
- `401` — User is not authenticated
- `403` — User is not allowed to access this resource
- `500` — Error during processing

---

[API](https://skmtc.net/knowi/apis/user-management-api.md) · [All operations](https://skmtc.net/knowi/apis/user-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/knowi/user-management-api/revisions/6e6982573ba6/schema)
