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
400Bad Request — the request itself is malformed.
401Unauthorized — always and only an API key problem.
403Forbidden — authenticated, but not allowed to do this.
404Not Found — the route or resource doesn't exist.
422Unprocessable Entity — request parameters failed validation.
429Too Many Requests — rate limit exceeded.
500Internal 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."
}