> ## Documentation Index
> Fetch the complete documentation index at: https://docs.drin.run/llms.txt
> Use this file to discover all available pages before exploring further.

# List domains

> GET /v1/domains — page through your sending domains, optionally filtered by verification status.

Page through every domain registered for the project, newest first. Filter by verification status to find what's still pending.

**`GET /v1/domains`**

Returns a cursor page of domains. The list omits per-record deliverability detail; fetch a single domain with [retrieve](/api-reference/domains/get) for its full `records` and auth health.

## Query parameters

<ParamField query="status" type="string">
  Filter by verification status — one of `pending`, `verified`, or `failed`.
</ParamField>

<ParamField query="limit" type="integer">
  Page size, 1–100. Defaults to 25.
</ParamField>

<ParamField query="cursor" type="string">
  The `nextCursor` from a previous response. Omit for the first page.
</ParamField>

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.drin.run/v1/domains?status=verified&limit=25" \
    -H "Authorization: Bearer $DRIN_API_KEY"
  ```

  ```typescript Node.js theme={null}
  import { DrinClient } from "@drin00/sdk";

  const drin = new DrinClient({ apiKey: process.env.DRIN_API_KEY });

  const { data, nextCursor } = await drin.domains.list({ status: "verified" });

  for (const domain of data) {
    console.log(domain.domain, domain.status);
  }
  ```
</CodeGroup>

## Response

`200 OK` — a page of domains. When `nextCursor` is `null` you've reached the end. See [Pagination](/api-reference/pagination) for the full walk.

```json theme={null}
{
  "data": [
    {
      "id": "dom_01HZ8K3M9P",
      "domain": "mail.acme.com",
      "status": "verified",
      "records": [ /* … */ ],
      "createdAt": "2026-05-30T11:04:00Z"
    }
  ],
  "nextCursor": null
}
```
