---
title: "Check the TXT record and where the domain points, and turn it on"
method: POST
path: "/api/computers/{id}/domains/{domainId}/verify"
tags: ["public-urls"]
---

# Check the TXT record and where the domain points, and turn it on

`POST /api/computers/{id}/domains/{domainId}/verify`

## Request

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

Checks the TXT record, then that the domain points at the edge, then the plan’s custom domain limit. Active, the domain serves its port; its HTTPS certificate is made on the first visit (cert_status). Safe to call again and again: the Domains tab calls it every 15 seconds while a domain waits. GET .../dns-check says which record is missing and where to set it.

## Path parameters

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

## Response `200`

{ status: "active" }, plus verified_at when it already was.

## Other responses

- `400`: A computer custom domains cannot serve (CUSTOM_DOMAINS_UNSUPPORTED).
- `403`: Not a paid account (UPGRADE_REQUIRED), publishing turned off by Orgo support (HOSTING_BLOCKED), or the plan’s custom domain limit is reached (no code; remove another domain to turn this one on).
- `404`: Not found on this computer, or custom domains are not enabled for this account (CUSTOM_DOMAINS_NOT_ENABLED).
- `409`: The TXT record is not visible yet ({ status: "verifying", code: "TXT_NOT_FOUND", dns, dns_records }); the TXT record is there but the domain does not point at the edge yet ({ status: "verifying", code: "DNS_NOT_POINTED", dns_records }); or Orgo turned the domain off ({ status: "disabled" }). Both checks ask the domain’s own nameservers first, so a record counts as soon as the provider serves it.
- `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-11-01** `60e768a2bb9d`: 6 info
  - added the optional property `docs_url` to the response with the `400` status
  - added the optional property `docs_url` to the response with the `403` status
  - added the optional property `next` to the response with the `400` status
  - added the optional property `next` to the response with the `403` status
  - …2 more
- **2026-10-30** `afb6f0ee1aac`: 1 info
  - added the non-success response with the status `429`
- **2026-10-22** `a506f6169bb5`: 1 info
  - added the media type `application/json` for the response with the status `403`
- **2026-10-18** `dcaee154d80e`: 1 info
  - added the non-success response with the status `400`
- **2026-10-06** `75ff4e54d86d`: 1 info
  - endpoint added

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