---
title: "List Project Domains by Apex Domain"
method: GET
path: "/v1/domains/{domain}/project-domains"
tags: ["domains"]
---

# List Project Domains by Apex Domain

`GET /v1/domains/{domain}/project-domains`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v1/domains/{domain}/project-domains`
- Auth: HTTP bearer

List all project domains associated with an apex domain owned by the authenticated account.

## Path parameters

- `domain` string, required: The apex domain name.

## Query parameters

- `limit` number: Maximum number of project domains to list from a request.
- `since` number: Get project domains created after this JavaScript timestamp.
- `until` number: Get project domains created before this JavaScript timestamp.
- `teamId` string
- `slug` string

## Response `200`

Successful response retrieving project domains for an apex domain.

- object
  - `pagination` Pagination, required: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.
    - `count` number, required: Amount of items in the current page.
    - `next` number, nullable, required: Timestamp that must be used to request the next page.
    - `prev` number, nullable, required: Timestamp that must be used to request the previous page.
  - `projectDomains` object[], required
    - `apexName` string, required
    - `createdAt` number
    - `customEnvironmentId` string, nullable
    - `gitBranch` string, nullable
    - `name` string, required
    - `projectId` string, required
    - `redirect` string, nullable
    - `redirectStatusCode` 301 | 302 | 307 | 308 | null, nullable
    - `updatedAt` number
    - `verification` object[]: A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
      - `domain` string, required
      - `reason` string, required
      - `type` string, required
      - `value` string, required
    - `verified` false | true, required: `true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.

## Other responses

- `400`: One of the provided values in the request query is invalid.
- `401`: The request is not authorized.
- `403`: You do not have permission to access this resource.
- `404`
- `410`

## Changes

- **2026-07-21** `2ae10ee9d21c`: 1 info
  - added the non-success response with the status `410`
- **2026-06-22** `7bd30e62d868`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v1/domains/:domain/project-domains/get.md)

---

[API](https://skmtc.dev/vercel/apis/vercel-api.md) - [All operations](https://skmtc.dev/vercel/apis/vercel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vercel/apis/vercel-api/revisions/60686c0e1f6a?raw)
