Errors
Every error response uses the same envelope, regardless of endpoint or failure type — match on
code, since message is meant for humans and may change wording over time.
{
"success": false,
"code": "SCOPE_REQUIRED",
"message": "The API key does not have the required scope for this operation."
}
HTTP status codes
| Status | Meaning |
|---|---|
| 400 | Bad Request — the request itself is malformed. |
| 401 | Unauthorized — always and only an API key problem. |
| 403 | Forbidden — authenticated, but not allowed to do this. |
| 404 | Not Found — the route or resource doesn't exist. |
| 422 | Unprocessable Entity — request parameters failed validation. |
| 429 | Too Many Requests — rate limit exceeded. |
| 500 | Internal Server Error — something failed on Paqet's side. |
API error codes
API_KEY_INVALID
401
Meaning: The API key is missing, malformed, or doesn't match any active key.
How to fix: Check the Authorization header is exactly "Bearer pk_live_..." with no typos or extra whitespace, and that the key hasn't been deleted from the Developer Portal.
{
"success": false,
"code": "API_KEY_INVALID",
"message": "The API key is invalid."
}
API_KEY_REVOKED
401
Meaning: The API key was manually revoked and can never be reactivated.
How to fix: Generate a new key from the Developer Portal. Revoked keys are permanent — there is no way to un-revoke one.
{
"success": false,
"code": "API_KEY_REVOKED",
"message": "The API key has been revoked."
}
API_KEY_EXPIRED
401
Meaning: The API key's expiration date has passed.
How to fix: Create a new key. If keys shouldn't expire for your use case, set "Never expires" when creating future keys.
{
"success": false,
"code": "API_KEY_EXPIRED",
"message": "The API key has expired."
}
PLAN_EXPIRED
403
Meaning: Your Enterprise subscription is no longer active.
How to fix: Renew your subscription from Billing in Account Settings, or contact sales if you believe this is an error.
{
"success": false,
"code": "PLAN_EXPIRED",
"message": "Your Enterprise subscription has expired."
}
ENTERPRISE_REQUIRED
403
Meaning: The Public API is only available on the Enterprise plan.
How to fix: Upgrade to Enterprise from the Pricing page, or contact sales to discuss a custom plan.
{
"success": false,
"code": "ENTERPRISE_REQUIRED",
"message": "The Public API is available on the Enterprise plan."
}
SCOPE_REQUIRED
403
Meaning: The API key doesn't have the scope required for this endpoint.
How to fix: Create a new key with the required scope — see the Scopes section on the endpoint's documentation page.
{
"success": false,
"code": "SCOPE_REQUIRED",
"message": "The API key does not have the required scope for this operation."
}
RATE_LIMIT_EXCEEDED
429
Meaning: The API key has exceeded its request limit for the current window.
How to fix: Wait until the time in the X-RateLimit-Reset header elapses, or reduce request frequency. See Rate Limits for the full strategy.
{
"success": false,
"code": "RATE_LIMIT_EXCEEDED",
"message": "You have exceeded the allowed number of requests. Please try again later."
}
INVALID_REQUEST
400
Meaning: The request could not be processed as sent.
How to fix: Check the request against the endpoint's documented parameters and HTTP method.
{
"success": false,
"code": "INVALID_REQUEST",
"message": "The request is invalid."
}
RESOURCE_NOT_FOUND
404
Meaning: The requested resource does not exist.
How to fix: Double check the route and any path parameters — this also covers unmatched routes entirely.
{
"success": false,
"code": "RESOURCE_NOT_FOUND",
"message": "The requested resource was not found."
}
VALIDATION_ERROR
422
Meaning: One or more request parameters failed validation.
How to fix: Check the "message" field for specifics, and compare your request against the endpoint's Query Parameters table.
{
"success": false,
"code": "VALIDATION_ERROR",
"message": "The domain field is required."
}
INTERNAL_ERROR
500
Meaning: An unexpected error occurred on Paqet's side.
How to fix: Retry the request. If it persists, contact support with the approximate timestamp and endpoint.
{
"success": false,
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred."
}