Customer Portal Domain Administration
6 API calls in this section.
List Customer Portal Domains
/system/delivery/customer-portal-domains?page=1&limit=20&status=&search=&language=enReturns paginated customer portal custom domain records across tenants.
1curl --request GET "$ONDI_BASE_URL/system/delivery/customer-portal-domains?page=1&limit=20&status=&search=&language=en" \2 --header "Authorization: Bearer {{access_token}}"Query parameters
pageOptional1
limitOptional20
statusOptionalpending_dns | dns_verified | active | disconnecting | archived
searchOptionalSearch by custom domain or tenant name/slug
languageOptionalen
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "message": "Customer portal custom domains retrieved successfully",4 "data": {5 "items": [6 {7 "id": "domain-uuid",8 "tenant_id": "tenant-uuid",9 "custom_domain": "portal.tenant.com",10 "status": "active",11 "dns_verified_at": "2026-04-30T10:00:00Z",12 "tenant": {13 "id": "tenant-uuid",14 "slug": "tenant-one",15 "name": {16 "en": "Tenant One"17 }18 }19 }20 ],21 "pagination": {22 "page": 1,23 "limit": 20,24 "total": 1,25 "totalPages": 126 }27 }28}List Available Tenants For Domain Connection
/system/delivery/customer-portal-domains/available-tenants?search=&language=enLists tenants that do not have an active or pending customer portal custom domain.
1curl --request GET "$ONDI_BASE_URL/system/delivery/customer-portal-domains/available-tenants?search=&language=en" \2 --header "Authorization: Bearer {{access_token}}"Query parameters
searchOptionalOptional tenant slug or name search
languageOptionalen
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "message": "Tenants retrieved successfully",4 "data": {5 "tenants": [6 {7 "id": "tenant-uuid",8 "slug": "tenant-one",9 "name": {10 "en": "Tenant One"11 }12 }13 ]14 }15}Get Tenant Customer Portal Domain
/system/delivery/:tenantId/customer-portal/custom-domain?language=enReturns the customer portal custom domain currently attached to the tenant.
1curl --request GET "$ONDI_BASE_URL/system/delivery/:tenantId/customer-portal/custom-domain?language=en" \2 --header "Authorization: Bearer {{access_token}}"Path parameters
tenantIdRequiredtenant-uuid
Query parameters
languageOptionalen
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "message": "Customer portal custom domain retrieved successfully",4 "data": {5 "custom_domain": {6 "id": "domain-uuid",7 "tenant_id": "tenant-uuid",8 "custom_domain": "portal.tenant.com",9 "status": "pending_dns"10 }11 }12}Connect Customer Portal Domain
/system/delivery/:tenantId/customer-portal/custom-domain/connect?language=enConnects a customer portal custom domain on behalf of a tenant from the system admin console.
1curl --request POST "$ONDI_BASE_URL/system/delivery/:tenantId/customer-portal/custom-domain/connect?language=en" \2 --header "Authorization: Bearer {{access_token}}" \3 --header "Content-Type: application/json" \4 --header "Content-Type: application/json" \5 --data '{6 "custom_domain": "portal.tenant.com"7}'1{2 "custom_domain": "portal.tenant.com"3}Path parameters
tenantIdRequiredtenant-uuid
Query parameters
languageOptionalen
Request body fields
custom_domainExampleExample field from the request body.
Headers
AuthorizationOptionalBearer {{access_token}}
Content-TypeOptionalapplication/json
Responses
1{2 "success": true,3 "message": "Customer portal custom domain connected successfully",4 "data": {5 "custom_domain": {6 "id": "domain-uuid",7 "tenant_id": "tenant-uuid",8 "custom_domain": "portal.tenant.com",9 "status": "pending_dns"10 }11 }12}Verify Customer Portal Domain
/system/delivery/:tenantId/customer-portal/custom-domain/verify?language=enRe-checks Vercel/DNS verification for the tenant's customer portal domain.
1curl --request POST "$ONDI_BASE_URL/system/delivery/:tenantId/customer-portal/custom-domain/verify?language=en" \2 --header "Authorization: Bearer {{access_token}}"Path parameters
tenantIdRequiredtenant-uuid
Query parameters
languageOptionalen
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "message": "Customer portal custom domain verified successfully",4 "data": {5 "verified": true,6 "custom_domain": {7 "id": "domain-uuid",8 "status": "active",9 "dns_verified_at": "2026-04-30T10:00:00Z"10 }11 }12}1{2 "success": true,3 "message": "Customer portal custom domain DNS verification is still pending",4 "data": {5 "verified": false,6 "custom_domain": {7 "id": "domain-uuid",8 "status": "pending_dns",9 "dns_verified_at": null10 }11 }12}Disconnect Customer Portal Domain
/system/delivery/:tenantId/customer-portal/custom-domain?language=enDisconnects the tenant's customer portal custom domain (admin override).
1curl --request DELETE "$ONDI_BASE_URL/system/delivery/:tenantId/customer-portal/custom-domain?language=en" \2 --header "Authorization: Bearer {{access_token}}"Path parameters
tenantIdRequiredtenant-uuid
Query parameters
languageOptionalen
Headers
AuthorizationOptionalBearer {{access_token}}
Responses
1{2 "success": true,3 "message": "Customer portal custom domain disconnected successfully",4 "data": {5 "custom_domain": {6 "id": "domain-uuid",7 "status": "archived",8 "disconnected_at": "2026-04-30T11:00:00Z"9 }10 }11}