# Provide debugging information for a transaction (or group).

**POST**

`/v2/teal/dryrun`

Executes TEAL program(s) in context and returns debugging information about the execution. This endpoint is only enabled when a node’s configuration file sets EnableDeveloperAPI to true.

## Authorizations

- **[api_key](https://dev.algorand.co/reference/rest-api/algod/#api_key)**

## Request Body

Transaction (or group) and any accompanying state-simulation data.

Select media type `application/json / application/msgpack`

Request data type for dryrun endpoint. Given the Transactions and simulated ledger state upload, run TEAL scripts and return debugging information.

---

### Object

**accounts**  
(required)  
Array<object>

- **address**  
(required)  
The account public key  
string
- **amount**  
(required)  
Total number of MicroAlgos in the account  
integer format: uint64
- **amount-without-pending-rewards**  
(required)  
Specifies the amount of MicroAlgos in the account, without the pending rewards.  
integer format: uint64

---

**apps-local-state**  
[appl] Applications local data stored in this account.  
Note the raw object uses `map[int] -> AppLocalState` for this type.  
Array<object>

- **id**  
(required)  
The application which this local state is for.  
integer

---

**key-value**  
Represents a key-value store for use in an application.  
Array<object>

- **key**  
(required)  
string
- **value**  
(required)  
Represents a TEAL value.  
object
- **bytes**  
(required)  
[tb] bytes value.  
string
- **type**  
(required)  
[tt] value type. Value `1` refers to **bytes**, value `2` refers to **uint**
integer
- **uint**  
(required)  
[ui] uint value.  
integer format: uint64

---

**schema**  
(required)  
Specifies maximums on the number of each type that may be stored.  
object
- **num-byte-slice**  
(required)  
[nbs] num of byte slices.  
integer format: uint64
- **num-uint**  
(required)  
[nui] num of uints.  
integer format: uint64

---

**assets**  
[asset] Assets held by this account.  
Array<object>

- **amount**  
(required)  
[a] number of units held.  
integer format: uint64
- **asset-id**  
(required)  
Asset ID of the holding.  
integer
- **is-frozen**  
(required)  
[f] whether or not the holding is frozen.  
boolean

---

### Responses

#### 200

DryrunResponse contains per-txn debug information from a dryrun.

Select media type `application/json`

---

**error**  
(required)  
string

**protocol-version**  
(required)  
Protocol version is the protocol version Dryrun was operated under.  
string

**txns**  
(required)  
Array<object>

- **app-call-messages**  
Array<string>

- **app-call-trace**  
Array<object>

---

**logs**

#### 400

Bad Request

---

**data**  
object
- **message**  
(required)  
string

#### 401

Invalid API Token

---

**data**  
object
- **message**  
(required)  
string

#### 404

Developer API not enabled

#### 500

Internal Error

---

**data**  
object
- **message**  
(required)  
string

#### default

Unknown Error
