---
title: "List a computer’s custom domains, each with the DNS records to set"
method: GET
path: "/api/computers/{id}/domains"
tags: ["public-urls"]
---

# List a computer’s custom domains, each with the DNS records to set

`GET /api/computers/{id}/domains`

## Request

- Base URL: `https://www.orgo.ai`
- URL: `https://www.orgo.ai/api/computers/{id}/domains`
- Auth: HTTP bearer

enabled is false while custom domains are not enabled for this account, or for a computer they cannot serve (reason says so); the list still shows what the computer has. limit is the plan’s cap across every computer of the workspace owner (-1 = unlimited, 0 = not on the plan) and used what counts against it. cname_target is where a subdomain’s CNAME points and apex_ipv4 the A record for an apex domain. owned_domains are the workspace’s active domains bought through Orgo (GET /api/projects/{id}/domains), to add as registered_domain_id: absent when domains are not enabled for the caller or enabled is false, [] when enabled and the workspace has none. dns_records of a domain not bought through Orgo have zone null and their full names as host here; GET .../dns-check finds the zone.

## Path parameters

- `id` string, required

## Response `200`

The domains.

- object
  - `enabled` boolean
  - `reason` string: Why enabled is false for this computer, when that is the reason.
  - `limit` integer
  - `used` integer
  - `cname_target` string, nullable
  - `apex_ipv4` string, nullable
  - `owned_domains` object[]
    - `id` string, uuid, required
    - `domain` string, required
  - `domains` CustomDomain[]
    - `id` string, uuid, required
    - `domain` string, required
    - `status` 'pending' | 'verifying' | 'active' | 'failed' | 'disabled', required
    - `target_port` integer, required
    - `verified_at` string, date-time, nullable
    - `cert_status` 'pending' | 'issued': issued once Orgo has let the domain get its HTTPS certificate, which happens on its first visit after it is active.
    - `managed` boolean: A domain bought through Orgo: Orgo set the records in dns_records, so there is nothing to copy.
    - `dns` DnsRecord
      - `type` 'TXT' | 'CNAME' | 'A', required
      - `name` string, required: The full name, like _orgo-verify.app.example.com.
      - `value` string, required
      - `host` string: The name to type at a DNS provider: relative to zone ("@" for the zone itself), or the full name when the zone is not known.
      - `zone` string, nullable: The DNS zone the record goes in, when Orgo knows it (a domain bought through Orgo). Null otherwise, and host is then the full name: GET .../dns-check answers the host in the zone it finds.
    - `dns_records` DnsRecord[], required: Every record the domain needs: the TXT challenge, then a CNAME to the edge (an A record for an apex, and for every managed domain).
      - `type` 'TXT' | 'CNAME' | 'A', required
      - `name` string, required: The full name, like _orgo-verify.app.example.com.
      - `value` string, required
      - `host` string: The name to type at a DNS provider: relative to zone ("@" for the zone itself), or the full name when the zone is not known.
      - `zone` string, nullable: The DNS zone the record goes in, when Orgo knows it (a domain bought through Orgo). Null otherwise, and host is then the full name: GET .../dns-check answers the host in the zone it finds.

## Other responses

- `401`: Unauthenticated.
- `403`: No access to this computer, view-only access, or a share-link guest.
- `429`: Over one of the account's rate limits (rate_limited): `limit` names it, `retry_after` and Retry-After say how many seconds to wait. Limits are per account (the workspace owner when the request acts on a computer or a workspace) and set by its plan (x-rate-limits).

## Changes

- **2026-10-30** `afb6f0ee1aac`: 1 info
  - added the non-success response with the status `429`
- **2026-10-22** `a506f6169bb5`: 6 info
  - added the optional property `domains/items/dns/oneOf[#/components/schemas/DnsRecord]/host` to the response with the `200` status
  - added the optional property `domains/items/dns/oneOf[#/components/schemas/DnsRecord]/zone` to the response with the `200` status
  - added the optional property `domains/items/dns_records/items/host` to the response with the `200` status
  - added the optional property `domains/items/dns_records/items/zone` to the response with the `200` status
  - …2 more
- **2026-10-18** `dcaee154d80e`: 7 info
  - added the optional property `apex_ipv4` to the response with the `200` status
  - added the optional property `cname_target` to the response with the `200` status
  - added the optional property `domains/items/cert_status` to the response with the `200` status
  - added the optional property `enabled` to the response with the `200` status
  - …3 more
- **2026-10-06** `75ff4e54d86d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/orgo/apis/orgo-api/changes/api/computers/:id/domains/get.md)

---

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