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

# Automation dry run results

> Retrieve and manage results from automation dry runs.

The Automation Dry Run Results API retrieves and manages the per-profile results produced when an automation is triggered in dry run mode. See [Reactions](/concepts/automation/reactions) for a conceptual overview of automations and how they execute.

## What is a dry run

When you trigger an automation with `dry_run: true`, Omneo simulates the automation's actions for the requested date range without creating production records or firing events. For each profile the query matches, Omneo stores a dry run result recording what the automation would have done.

Use dry runs to verify automation logic before enabling it in production, or to understand what a past automation run would have produced.

## Triggering a dry run

Send `POST /v3/automations/{automation}/trigger` with `dry_run: true` in the request body. Optionally include `start_date` and `end_date` to simulate over a range of days.

The endpoint returns `202 Accepted`. Results are written asynchronously. Query this API to retrieve them once processing is complete.

## Dry run result attributes

| Attribute       | Type     | Description                                      |
| --------------- | -------- | ------------------------------------------------ |
| `id`            | integer  | Unique identifier for the result                 |
| `automation_id` | integer  | The automation that was simulated                |
| `run_at`        | date     | The date the simulation covered (`YYYY-MM-DD`)   |
| `profile_id`    | integer  | The Profile processed in this result             |
| `result_type`   | string   | Polymorphic type of the associated result object |
| `result_id`     | integer  | ID of the associated result object               |
| `status`        | string   | Outcome: `success`, `failed`, or `skipped`       |
| `result`        | object   | Detailed result data returned by the simulation  |
| `arguments`     | object   | Arguments the automation ran with                |
| `requested_by`  | string   | Identifier of the user who requested the dry run |
| `created_at`    | datetime | When the result was created                      |
| `updated_at`    | datetime | When the result was last updated                 |

## Filtering results

The index endpoint accepts the following filters:

| Filter                  | Description                                       |
| ----------------------- | ------------------------------------------------- |
| `filter[automation_id]` | Limit to results for a specific automation        |
| `filter[run_at]`        | Limit to results for a specific simulated date    |
| `filter[profile_id]`    | Limit to results for a specific Profile           |
| `filter[status]`        | Limit by outcome (`success`, `failed`, `skipped`) |
| `filter[result_type]`   | Limit by result object type                       |
| `filter[result_id]`     | Limit by result object ID                         |
| `filter[requested_by]`  | Limit to results from a specific requester        |
| `filter[created_at]`    | Limit by creation timestamp                       |
| `filter[updated_at]`    | Limit by last-updated timestamp                   |

## Cleaning up

Delete results individually once reviewed. The `delete-reactions` scope is required. There is no bulk delete endpoint.

## Required scopes

| Operation    | Scope              |
| ------------ | ------------------ |
| Browse, read | `read-reactions`   |
| Delete       | `delete-reactions` |

## Related

* [Reactions concept](/concepts/automation/reactions)
* [Automation Queries](/dev-guides/reactions/automation-queries)
* [Automations API](/api-reference/automation/overview)
