# Dry Run Mode using APIs

Endpoints for running a Guardian policy in dry-run (simulation) mode. Dry-run mode allows testing a policy workflow with virtual users and documents without making any Hedera transactions or persistent changes.

**Authentication:** Bearer token required (`Authorization: Bearer <token>`)

**Permission:** Standard Registry role required.

***

| Method   | Endpoint                                                | Description                                        | Auth Required |
| -------- | ------------------------------------------------------- | -------------------------------------------------- | ------------- |
| `GET`    | `/api/v1/policies/{policyId}/dry-run/users`             | Returns all virtual users for the dry-run instance | Yes           |
| `POST`   | `/api/v1/policies/{policyId}/dry-run/user`              | Creates a new virtual user                         | Yes           |
| `POST`   | `/api/v1/policies/{policyId}/dry-run/login`             | Logs in as a virtual user                          | Yes           |
| `POST`   | `/api/v1/policies/{policyId}/dry-run/restart`           | Restarts the policy dry-run execution              | Yes           |
| `GET`    | `/api/v1/policies/{policyId}/dry-run/transactions`      | Returns the list of dry-run transactions           | Yes           |
| `GET`    | `/api/v1/policies/{policyId}/dry-run/artifacts`         | Returns the list of dry-run artifacts              | Yes           |
| `GET`    | `/api/v1/policies/{policyId}/dry-run/ipfs`              | Returns the list of IPFS files created in dry-run  | Yes           |
| `DELETE` | `/api/v1/policies/{policyId}/draft`                     | Returns the policy to draft/editing state          | Yes           |
| `GET`    | `/api/v1/policies/{policyId}/save-points`               | Returns all savepoints for the dry-run session     | Yes           |
| `POST`   | `/api/v1/policies/{policyId}/save-points`               | Creates a new savepoint                            | Yes           |
| `GET`    | `/api/v1/policies/{policyId}/save-points/{savepointId}` | Returns the savepoint state                        | Yes           |
| `POST`   | `/api/v1/policies/{policyId}/save-points/{savepointId}` | Restores a savepoint                               | Yes           |
| `DELETE` | `/api/v1/policies/{policyId}/save-points/{savepointId}` | Deletes a savepoint                                | Yes           |

## Endpoints

* [Returning All Virtual Users](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/returning-all-virtual-users.md)
* [Creating Virtual Account](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/creating-virtual-account.md)
* [Logging Virtual User](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/logging-virtual-user.md)
* [Restarting the Execution of Policy](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/restarting-the-execution-of-policy.md)
* [Returns List of Transactions](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/returns-list-of-transactions.md)
* [Returns List of Artifacts](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/returns-list-of-artifacts.md)
* [Returns List of IPFS Files](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/returns-list-of-ipfs-files.md)
* [Returning Policy to Editing](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/returning-policy-to-editing.md)
* [Running Policy Without Making Any Changes](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/running-policy-without-making-any-changes.md)
* [Returns Savepoint State](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/returns-savepoint-state.md)
* [Create Savepoint](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/create-savepoint.md)
* [Restoring Savepoint](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/restoring-savepoint.md)
* [Deletes Savepoint](/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis/deletes-savepoint.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guardian.hedera.com/docs/develop/guardian/standard-registry/policies/dry-run/dry-run-mode-using-apis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
