# Directions

> Retrieve the list of available deposit and withdrawal directions with their current statuses and fees.

The endpoint returns all supported currency + network pairs with their current statuses, limits, and estimated withdrawal fees. Use it to dynamically build a currency selector UI and show users the withdrawal cost upfront.

## List directions

`GET /v1/directions`

No authentication is required beyond the standard project signature. For a GET request, sign an empty body:
`hash_hmac('sha256', base64_encode(''), $apiKey)`

> **INFO:** Sign the request with an empty body:
`hash_hmac('sha256', base64_encode(''), $apiKey)`

### Request example

```bash
curl -X GET https://api.2328.io/api/v1/directions \
  -H "project: YOUR_PROJECT_UUID" \
  -H "sign: YOUR_HMAC_SIGNATURE"
```

### Response example

```json
{
  "state": 0,
  "result": [
    {
      "network": "Tron",
      "currency": "USDT",
      "deposit_status": "active",
      "withdrawal_status": "active",
      "min_deposit": "1.000000000000000000",
      "max_deposit": "50000.000000000000000000",
      "min_withdrawal": "5.000000000000000000",
      "max_withdrawal": "50000.000000000000000000",
      "withdrawal_fee": "2.500000000000000000",
      "withdrawal_fee_type": "fixed"
    },
    {
      "network": "Bitcoin",
      "currency": "BTC",
      "deposit_status": "inactive",
      "withdrawal_status": "active",
      "min_deposit": "0.000100000000000000",
      "max_deposit": "2.000000000000000000",
      "min_withdrawal": "0.000100000000000000",
      "max_withdrawal": "2.000000000000000000",
      "withdrawal_fee": null,
      "withdrawal_fee_type": "estimated"
    }
  ]
}
```

### Response fields

| Field | Type | Description |
|-------|------|-------------|
| `network` | string | Network name (e.g. `Tron`, `Bitcoin`, `Ethereum`) |
| `currency` | string | Currency code (e.g. `USDT`, `BTC`, `ETH`) |
| `deposit_status` | string | Deposit availability status (see below) |
| `withdrawal_status` | string | Withdrawal availability status (see below) |
| `min_deposit` | string \| null | Minimum deposit amount. `null` — no limit |
| `max_deposit` | string \| null | Maximum deposit amount. `null` — no limit |
| `min_withdrawal` | string \| null | Minimum withdrawal amount. `null` — no limit |
| `max_withdrawal` | string \| null | Maximum withdrawal amount. `null` — no limit |
| `withdrawal_fee` | string \| null | Estimated withdrawal fee in the direction's currency. `null` — not available yet |
| `withdrawal_fee_type` | string | Fee type: `fixed`, `estimated`, or `unknown` (see below) |

### Direction statuses

| Status | Description |
|--------|-------------|
| `active` | Direction is fully operational |
| `inactive` | Temporarily unavailable (maintenance) |
| `disabled` | Not supported |

> **WARNING:** If `deposit_status` or `withdrawal_status` is anything other than `active`, the corresponding operation will be rejected with a [`direction_disabled`](#direction-disabled-error) error. Use this endpoint to hide unavailable directions in your UI before the user attempts an operation.

### Withdrawal fee types

| Type | Description |
|------|-------------|
| `fixed` | Fixed fee amount in the `withdrawal_fee` field |
| `estimated` | Estimated fee based on the current network fee. The final amount may differ slightly — use [`/v1/payout/calc`](/docs/payouts#calculate-payout) for a precise quote |
| `unknown` | No fee configured for this direction |