https://app.evoriqa.com/api/v1/reseller/custom-domainClaim a custom domain
Claims a domain and issues a fresh TXT verification token — status becomes `pending`. A pasted URL is normalized (scheme, path, and port stripped) before hostname validation. Active reseller plan required; rate-limited to 30 per minute per IP. Reseller endpoints additionally require the key to live on the organization owner's own (primary) workspace — any other workspace returns 403.
Requires scope reseller:write
Access is gated — enable it before your first call
The API is off by default. A request succeeds only when all three switches are on: the platform master switch (off by default), your organisation’s API toggle, and your plan or client entitlement. Any one off returns 403 API access is not enabled for this workspace.
Request body
Content type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string 1–300 chars | Required | The domain to claim (host, or a URL that is normalized to one). |
Request
curl -X PUT "https://app.evoriqa.com/api/v1/reseller/custom-domain" \
-H "x-api-key: $EVORIQA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "domain": "chat.acme.com" }'const res = await fetch("https://app.evoriqa.com/api/v1/reseller/custom-domain", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.EVORIQA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"domain": "chat.acme.com"
}),
});
const responseBody = await res.json();import os
import requests
res = requests.put(
"https://app.evoriqa.com/api/v1/reseller/custom-domain",
headers={"Authorization": f"Bearer {os.environ['EVORIQA_API_KEY']}"},
json={
"domain": "chat.acme.com"
},
)
body = res.json()Response
{
"success": true,
"data": {
"domain": "chat.acme.com",
"status": "pending",
"token": "evoriqa-verify-9f2c1b3a",
"record": {
"host": "_evoriqa.chat.acme.com",
"type": "TXT",
"value": "evoriqa-verify-9f2c1b3a"
},
"verifiedAt": null
}
}