Référence de l'API
Errors & Rate Limits
The JSON error envelope, error codes, and the rate-limit headers every response returns.
Dernière mise à jour :
Error Handling
All error responses follow a consistent format with an error code and human-readable message:
{
"error": {
"code": "ERROR_CODE",
"message": "Description of what went wrong"
}
}Error Codes
| HTTP Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid or missing request parameters |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 402 | PAYMENT_REQUIRED | Insufficient credits |
| 403 | FORBIDDEN | API access requires an active Hero plan, or action not permitted |
| 403 | LIMIT_EXCEEDED | Plan limits reached (projects, builds, API keys, etc.) |
| 404 | NOT_FOUND | Resource not found or not accessible |
| 409 | CONFLICT | Resource conflict (deployment in progress, subdomain taken, etc.) |
| 429 | RATE_LIMITED | Too many requests — check rate limit headers |
| 500 | INTERNAL_ERROR | Server error — please retry or contact support |
Rate Limit Headers
Every response includes these headers:
X-RateLimit-Remaining— Number of requests remaining in the current windowX-RateLimit-Reset— Seconds until the rate limit window resets
When you receive a 429 response, wait for the number of seconds indicated by X-RateLimit-Reset before retrying.
Troubleshooting
- 401 Unauthorized — Check that your API key starts with
flp_and is included as a Bearer token. See Authentication. - 403 Forbidden — Verify your account has an active Hero subscription.
- 409 Conflict on deploy — Wait for the current deployment to complete, or cancel it first. See Deployment API.
- Subdomain errors — Subdomains must be lowercase, 3-63 characters, and contain only letters, numbers, and hyphens.