Errors and Status Codes
Developer Platform errors use one stable envelope.
{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Retry after the rate limit resets."
}
}HTTP status codes
| Status | Meaning |
|---|---|
400 | Malformed JSON, unsupported parameter, or invalid request shape |
401 | Missing, malformed, unknown, or revoked API key |
402 | Inactive subscription or no remaining Home Valuations credits |
403 | Scope, plan, product grant, site binding, MLS approval, origin, or add-on requirement failed |
404 | The resource is not present inside the authenticated tenant and website boundary |
409 | The requested operation conflicts with current resource state |
422 | A field failed semantic validation |
429 | The account and website traffic window is exhausted |
503 | A required upstream or traffic-control dependency is temporarily unavailable |
Authentication and authorization codes
| Code | Action |
|---|---|
INVALID_API_KEY | Check the server secret and Authorization header |
API_KEY_REVOKED | Create or deploy a new credential |
SUBSCRIPTION_INACTIVE | Restore the account subscription |
INSUFFICIENT_SCOPE | Create a least-privilege key that includes the required scope |
PLAN_REQUIRED | Use an eligible Pro or higher account |
CAPABILITY_NOT_AVAILABLE | Check the plan or delegated agency product |
DOMAIN_NOT_ALLOWED | Send the exact site ID bound to the key and use an approved browser origin |
SITE_NOT_VERIFIED | Verify the selected website |
FEED_INACTIVE | Complete or restore MLS approval for the website |
AHV_ADDON_REQUIRED | Activate Home Valuations for the selected website |
Safe retries
Retry 429 responses after the Retry-After delay. Retry temporary 503 responses with exponential backoff and jitter. Do not retry validation, credential, scope, plan, site, or MLS approval errors until their cause changes.
Note
ReadRateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset on authenticated responses. Limits aggregate by account and approved website, not by key.