# List DApps

Retrieve the dApp catalogue configured for the authenticated user's tenant — the entries to show in an in-app dApp browser.

## Overview

Returns the tenant's **active** dApps, ordered by `sortOrder` and then by creation time. The catalogue is managed through the `/v1/admin/dapps` endpoints.

The dApps browser is a per-tenant feature. When it is not enabled for the tenant, this endpoint still returns `200` with an empty `dapps` array. Use `dappsEnabled` from Available Features (`GET /v1/tenant/available-features`) to decide whether to show the browser at all. See the [DApps Browser](https://docs.aureahub.com/docs/guide-dapps.md) guide for the full integration.

## Endpoint

### `GET /v1/dapps/`

Authentication: bearer token required.

Lists the active dApps of the caller's tenant. Empty when the dApps browser is not enabled for the tenant.

**Responses**

`200` OK

```json
{
  "dapps": [
    {
      "id": "9d6f1c2a-7b3e-4f58-a1c4-2e9b8d7f6a51",
      "tenantId": "5a2e8c71-3f4b-4d9a-b6e2-81c7f0d3a9b4",
      "name": "Example DEX",
      "url": "https://dex.example.com",
      "iconUrl": "https://dex.example.com/icon.png",
      "description": "Swap tokens on Gnosis",
      "category": "dex",
      "sortOrder": 0,
      "isActive": true,
      "createdAt": "2026-06-01T09:00:00.000Z",
      "updatedAt": "2026-06-01T09:00:00.000Z"
    }
  ]
}
```

`200` Not Enabled

```json
{ "dapps": [] }
```

**Example request**

```bash
curl https://api.aureahub.com/v1/dapps/ \
  -H "Authorization: Bearer YOUR_TOKEN"
```

`iconUrl`, `description` and `category` may be `null`.

## Implementation

```javascript
async function listDapps(token) {
  const res = await fetch('https://api.aureahub.com/v1/dapps/', {
    headers: { Authorization: `Bearer ${token}` }
  });
  if (!res.ok) throw new Error(`DApps error: ${res.status}`);
  const { dapps } = await res.json();
  return dapps; // already sorted by sortOrder, then creation time
}
```

---

Web version: https://docs.aureahub.com/#dapps-list
