# clients.dispenser_api_client

## Attributes

| [`DISPENSER_ASSETS`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DISPENSER_ASSETS) |  |
| --- | --- |
| [`DISPENSER_REQUEST_TIMEOUT`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DISPENSER_REQUEST_TIMEOUT) |  |
| [`DISPENSER_ACCESS_TOKEN_KEY`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DISPENSER_ACCESS_TOKEN_KEY) |  |

## Classes

| [`DispenserApiConfig`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DispenserApiConfig) |  |
| --- | --- |
| [`DispenserAssetName`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DispenserAssetName) | Enum where members are also (and must be) ints |
| [`DispenserAsset`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DispenserAsset) |  |
| [`DispenserFundResponse`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DispenserFundResponse) |  |
| [`DispenserLimitResponse`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DispenserLimitResponse) |  |
| [`TestNetDispenserApiClient`](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.TestNetDispenserApiClient) | Client for interacting with the [AlgoKit TestNet Dispenser API](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/%5Bhttps://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md%5D(https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md)). |

## Module Contents

### _class_ algokit_utils.clients.dispenser_api_client.DispenserApiConfig

#### BASE*URL = ‘ [https://api.dispenser.algorandfoundation.tools](https://api.dispenser.algorandfoundation.tools/)’_

### _class_ algokit_utils.clients.dispenser_api_client.DispenserAssetName

Bases: `enum.IntEnum`

Enum where members are also (and must be) ints

#### ALGO = 0_

### _class_ algokit_utils.clients.dispenser_api_client.DispenserAsset

#### asset*id : int_

The ID of the asset

#### decimals : int_

The amount of decimal places the asset was created with

#### description : str_

The description of the asset

### _class_ algokit_utils.clients.dispenser_api_client.DispenserFundResponse

#### tx*id : str_

The transaction ID of the funded transaction

#### amount : int_

The amount of Algos funded

### _class_ algokit_utils.clients.dispenser_api_client.DispenserLimitResponse

#### amount : int_

The amount of Algos that can be funded

### algokit_utils.clients.dispenser_api_client.DISPENSER_ASSETS

### algokit*utils.clients.dispenser_api_client.DISPENSER_REQUEST_TIMEOUT = 15_

### algokit_utils.clients.dispenser_api_client.DISPENSER_ACCESS_TOKEN_KEY = ‘ALGOKITDISPENSER_ACCESS_TOKEN’_

### _class_ algokit_utils.clients.dispenser_api_client.TestNetDispenserApiClient(auth_token: str | None = None, request_timeout: int = DISPENSER_REQUEST_TIMEOUT)

Client for interacting with the [AlgoKit TestNet Dispenser API](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/%5Bhttps://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md%5D(https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md)).

To get started create a new access token via algokit dispenser login –ci and pass it to the client constructor as auth_token. Alternatively set the access token as an environment variable ALGOKIT_DISPENSER_ACCESS_TOKEN, and it will be auto-loaded. If both are set, the constructor argument takes precedence.

Default request timeout is 15 seconds. Modify by passing request_timeout to the constructor.

#### auth*token : str_

#### request*timeout = 15_

#### fund(address: str, amount: int) → [DispenserFundResponse](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DispenserFundResponse)

#### fund(address: str, amount: int, asset_id: int | None = None) → [DispenserFundResponse](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#algokit_utils.clients.dispenser_api_client.DispenserFundResponse)

Fund an account with Algos from the dispenser API

- **Parameters:**
  - **address** – The address to fund
  - **amount** – The amount of Algos to fund
  - **asset_id** – The asset ID to fund (deprecated)
- **Returns:**
The transaction ID of the funded transaction
- **Raises:** **Exception** – If the dispenser API request fails
- **Example:**

```
dispenser_client = TestNetDispenserApiClient()

disper_client.fund(address="SENDER_ADDRESS", amount=1000000)
```

#### refund(refund_txn_id: str) → None

Register a refund for a transaction with the dispenser API

#### get_limit(address: str) → [DispenserLimitResponse](https://dev.algorand.co/reference/algokit-utils-py/api/clients/dispenser_api_client/#get_limitaddress-str--dispenserlimitresponse)

Get current limit for an account with Algos from the dispenser API
