# Running Ad-Hoc Reports

As opposed to scheduled reports, ad-hoc reports are created for a one-time use. In BillingPlatform, they can be executed through workflow so that reporting can be triggered on a event.

To accomplish this through the API, proceed as follows:

1. Create a task specifying which report to run by sending a CREATE request for the ADHOC_SCHEDULED_REPORT entity. The example below shows how to create a task for the Account Aging Report:



```json
{
    "brmObjects": [
        {
        "CustomReportIdObj": {
             "Name": "Account Aging Report"
        }
        }
    ]
}
```

> **NOTE**: Make sure to replace "Account Aging Report" with the name of the report you want to run.


1. Add report variable values by sending a CREATE request for the ADHOC_SCHEDULED_FILTER entity. For successful submission, each filter must have a label and must be submitted separately, as shown in the example below:



```json
{
    "brmObjects": [
        {
            "AdhocScheduledReportId": "ID from ADHOC_SCHEDULED_REPORT",
            "Name": "Bill Cycle Start Date",
            "Value": "06/01/2023"
        },
        {
            "AdhocScheduledReportId": "ID from ADHOC_SCHEDULED_REPORT",
            "Name": "Bill Cycle End Date",
            "Value": "06/30/2023"
        }
    ]
}
```

> **NOTE**: Make sure to replace ID from ADHOC_SCHEDULED_REPORT with the actual ID obtained from the ADHOC_SCHEDULED_REPORT creation process.


1. Run the task to generate a report by updating the ADHOC_SCHEDULED_REPORT entity and changing the value of its ReadyForExecution parameter from 0 to 1.



```json
{
    "brmObjects": [
        {
            "Id": "string",
            "ReadyForExecution": "1"
        }
    ]
}
```

To cancel a report that is queued for generation or is being generated, follow the instructions in [Cancelling Ad-Hoc Reports](https://docs.billingplatform.com/smart/userguide/cancelling-ad-hoc-reports).