Error codes and known API pitfalls
This page documents real integration issues that have occurred in production or testing.
Schema
| Error Code | Cause | Solution / Bug |
|---|---|---|
404 Website not found | Some website sub-endpoints previously accepted only the legacy numeric website ID, even though the docs showed websitePublicId. | Fixed. GET /api/websites/:websitePublicId/check-history and GET /api/websites/:websitePublicId/uptime-stats now accept public IDs and still keep legacy-ID compatibility. |
403 Forbidden on GET /api/organizations/:organizationPublicId | The route previously interpreted the path parameter directly as a number. A UUID therefore failed during permission checks. | Fixed. Organization detail and billing routes now resolve publicId correctly. |
400 Bad Request with ZodError on customer-ips or customer-domains | Query parameters like organizationId=, page=, or perPage= were sent as empty strings. Zod coerced them to 0, which then violated min constraints. | Fixed for organizationId, page, and perPage. Optional still means: omit unused parameters instead of sending empty strings. |
Public IDs in DNS and DNSBL monitor routes
The following path endpoints support public IDs in docs and client integrations:
GET /api/customer-domains/:customerDomainPublicIdPATCH /api/customer-domains/:customerDomainPublicIdDELETE /api/customer-domains/:customerDomainPublicIdGET /api/customer-ips/:customerIpPublicIdPATCH /api/customer-ips/:customerIpPublicIdDELETE /api/customer-ips/:customerIpPublicId
Legacy numeric IDs are still accepted for backward compatibility, but public IDs are the recommended integration format.
Update Billing Details: required body
Endpoint:
PATCH /api/organizations/:organizationPublicId/billing
Currently supported request body:
{
"billingEmail": "billing@example.com"
}This endpoint currently accepts only billingEmail.