Skip to content
POST /org-domain/{id}/verify

Runs the DNS TXT challenge now. Idempotent and safe to poll. Returns the domain plus `detail`, which explains a failed lookup (`detail` appears only on this response). Requires `org:manage`. A BROWSER SESSION must additionally carry a fresh step-up reauthentication (`X-Step-Up-Token`, obtained from `/auth/step-up`); without one the call answers `428 step_up_required` and `error.details` names the action and resource to prove. An organization API token is not challenged: step-up re-proves the person behind a session, and a token has no person behind it. Verification is the step that ARMS auto-join, so it is gated alongside the claim and the default-role update.

Path Parameters

idstring
required·

Org domain id.

Response Body

created_atstring · date-time
default_role_idstring,null

Role (role_…) explicitly configured for domain auto-join, or null to track the default. Org Owner is refused here. Read effective_default_role_id to learn what a join actually grants.

detailstring,null

Why verification failed, when it did.

domainstring

DNS name, lowercased (e.g. acme.com).

effective_default_role_idstring,null

Server-computed: the role a verified-domain auto-join really grants. Equals default_role_id when that is set and the role still exists; otherwise the Member system role, which is what the join falls back to both when nothing is configured and when the configured role has since been deleted. null means even that fallback is missing, so auto-join on this domain fails rather than seating anyone.

idstring

Org domain id.

organization_idstring

Owning organization (org_…).

sso_connection_idstring,null

Linked SSO connection (sso_…).

updated_atstring · date-time
verification_recordstring,null

The exact DNS TXT value to publish. Present until the domain is verified, then null — the token is of no further use.

verifiedboolean

Outcome of this attempt.

curl -X POST 'https://api.elaichi.ai/org-domain/<id>/verify' \
  -H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
  -H 'Content-Type: application/json'
const response = await fetch('https://api.elaichi.ai/org-domain/<id>/verify', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
import os
import requests

url = "https://api.elaichi.ai/org-domain/<id>/verify"
headers = {
    "Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
    "Content-Type": "application/json",
}

response = requests.post(url, headers=headers)
print(response.json())