Domains API
API reference for managing domains — list, add, remove, and check DNS status.
The Domains API manages domain assignments on hosting services. Use it to automate domain provisioning, DNS verification, and SSL status checks.
List domains
/api/admin/servicehosting/{service_id}/domainsList all domains on a hosting service.
Response:
{
"result": [
{
"id": 1,
"domain": "example.com",
"is_primary": true,
"ssl_status": "active",
"created_at": "2026-04-01T08:00:00Z"
},
{
"id": 2,
"domain": "www.example.com",
"is_primary": false,
"ssl_status": "active",
"created_at": "2026-04-01T08:00:00Z"
}
]
}Add domain
/api/admin/servicehosting/{service_id}/domainsAdd a domain to a hosting service.
Body:
{
"domain": "newsite.com",
"set_primary": false
}Notes:
- Domain must not already be assigned to another service
- SSL issuance is triggered automatically once DNS resolves
- Adding
www.variant is recommended alongside the bare domain
Remove domain
/api/admin/servicehosting/{service_id}/domains/{domain_id}Remove a domain from a hosting service.
Set primary domain
/api/admin/servicehosting/{service_id}/domains/{domain_id}Update domain settings (set as primary, configure redirects).
{
"is_primary": true
}Non-primary domains redirect to the primary by default (301).
Check DNS status
/api/admin/servicehosting/{service_id}/domains/{domain_id}/dnsCheck current DNS resolution status for a domain.
Response:
{
"result": {
"domain": "example.com",
"resolves_to_us": true,
"current_ip": "1.2.3.4",
"expected_ip": "1.2.3.4",
"ssl_status": "active",
"ssl_expires": "2026-09-28T00:00:00Z"
}
}Use this to verify DNS is properly configured before enabling features that require it.
SSL status values
| Status | Meaning |
|---|---|
pending | DNS not yet resolving to us; cert not issued |
issuing | DNS resolved; certificate being generated |
active | Valid certificate installed and serving |
renewal | Certificate renewing (auto, no action needed) |
error | Issuance failed — check DNS configuration |
Bulk operations
For reseller integrations managing many domains:
# Add multiple domains in sequence
for domain in site1.com site2.com site3.com; do
curl -s -X POST \
"https://billing.openhost.one/api/admin/servicehosting/101/domains" \
-H "Authorization: Bearer oh_live_..." \
-H "Content-Type: application/json" \
-d "{\"domain\": \"$domain\"}"
doneRate limits apply (120 req/min). For large batches, add a brief delay between requests.