---
title: "Get one custom domain with its DNS records"
method: GET
path: "/api/computers/{id}/domains/{domainId}"
tags: ["public-urls"]
---

# Get one custom domain with its DNS records

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

## Request

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

## Path parameters

- `id` string, required
- `domainId` string, uuid, required

## Response `200`

The domain.

- 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

- `403`: No access to this computer, view-only access, or a share-link guest.
- `404`: Not found on this computer.
- `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 non-success response with the status `403`
  - added the optional property `dns/oneOf[#/components/schemas/DnsRecord]/host` to the response with the `200` status
  - added the optional property `dns/oneOf[#/components/schemas/DnsRecord]/zone` to the response with the `200` status
  - added the optional property `dns_records/items/host` to the response with the `200` status
  - …2 more
- **2026-10-18** `dcaee154d80e`: 1 info
  - added the optional property `cert_status` to the response with the `200` status
- **2026-10-06** `75ff4e54d86d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/orgo/apis/orgo-api/changes/api/computers/:id/domains/:domainId/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)
