---
title: "List the custom domains one owned node serves for a service"
method: GET
path: "/api/nodes/{node_id}/services/{service}/domains"
tags: ["nodes"]
---

# List the custom domains one owned node serves for a service

`GET /api/nodes/{node_id}/services/{service}/domains`

## Request

- Base URL: `https://app.nerdit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.nerdit.ai/api/nodes/{node_id}/services/{service}/domains`
- Auth: none declared

Ask the node what names this app answers to (D-NC9, D-NC10).

Ownership only: ``OwnedNodePolicy`` has already refused every node that
is not the caller's, and this is a page render — no standing check, no
entitlement, no audit row, and nothing stored on the way through.

## Path parameters

- `service` string, required
- `node_id` string, uuid, required

## Response `200`

Successful Response

- NodeDomainsView: What one service answers to, and whether the node was reachable to ask.
  - `online` boolean, required
  - `service_name` string, required
  - `domains` DomainRow[], required
    - `domain` string, required
    - `acme` boolean, required
    - `created_at` string, date-time, required
    - `url` string, required
    - `state` 'ready' | 'withheld', required
    - `cert_state` 'internal' | 'disabled' | 'pending' | 'issued' | 'expired', required
    - `cert_not_after` string, date-time, nullable

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Content
- `502`: Bad Gateway

---

[API](https://skmtc.dev/nerdit/apis/nerdit-cloud-web.md) · [All operations](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/llms.txt) · [OpenAPI document](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/revisions/06e3b44b58be?raw)
