Insufficient Tier
insufficient_tier402
This error code is reserved. Product endpoints are not locked to a higher plan.
What this means
Your API key authenticated, but the platform returned insufficient_tier. In the current product, no public calculation endpoint is feature-gated by plan. Sandbox, Builder, Launch, and Scale all expose the same endpoint surface. Plans differ by monthly call quota (and burst limits), not by which endpoints you may call.
The code path that could emit this error (require_tier) exists in the API but is not applied to product routes. You should treat this code as unused for normal integrations. Hitting a call ceiling surfaces as monthly_usage_limit_exceeded instead.
When you'll see this
- You should not see this in normal production use for calculation endpoints.
- If you do receive it, treat it as unexpected platform behavior — contact support@asterwise.com with the
request_id, not as a signal to buy a “higher endpoint tier.”
Learn more about how this works
Asterwise plans: Sandbox (free), Builder, Launch, Scale, plus Enterprise (custom volume/pricing via contact). Paid and free tiers share the same endpoints. Higher plans raise monthly call limits and burst capacity only.
There is no “Launch-only endpoint family.” Do not build product logic that assumes endpoint unlocks by tier.
Example response
{
"success": false,
"error": "insufficient_tier",
"message": "This endpoint requires a higher tier. Please upgrade your plan.",
"details": [],
"retry_after": null,
"doc_url": "https://docs.asterwise.com/reference/errors/insufficient_tier",
"request_id": "req_01HXYZABCDEFGH",
"timestamp": "2026-05-25T12:34:56Z"
}
- Confirm you are not interpreting a quota problem as a tier lock — check for
monthly_usage_limit_exceededandburst_limit_exceeded. - Review pricing for call volumes (Builder 10k / Launch 50k / Scale 300k), not endpoint lists.
- If you still receive
insufficient_tieron a product endpoint, email support@asterwise.com with therequest_id.
This error is not expected for quota-gated access. Prefer handling monthly_usage_limit_exceeded and burst_limit_exceeded in production clients.
Python:
Production handler
- Python
- TypeScript
import httpx
class AsterwiseTierError(Exception):
"""Unexpected insufficient_tier — not used for endpoint feature gating."""
def call_asterwise(url, headers, payload):
response = httpx.post(url, headers=headers, json=payload, timeout=30)
if response.status_code == 402:
body = response.json()
if body.get("error") == "insufficient_tier":
raise AsterwiseTierError(
f"Unexpected insufficient_tier (endpoints are not tier-locked). "
f"Check quota errors instead. "
f"request_id={body.get('request_id')}"
)
response.raise_for_status()
return response.json()
class AsterwiseTierError extends Error {}
async function callAsterwise(url: string, headers: HeadersInit, payload: unknown) {
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify(payload),
});
if (response.status === 402) {
const body = await response.json();
if (body.error === "insufficient_tier") {
throw new AsterwiseTierError(
`Unexpected insufficient_tier (endpoints are not tier-locked). ` +
`Check quota errors instead. ` +
`request_id=${body.request_id}`
);
}
}
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return response.json();
}
Avoid this error by
- Size your plan for call volume, not for endpoint access — every plan can call every product endpoint.
- Handle
monthly_usage_limit_exceededandburst_limit_exceededas the real capacity limits. - Do not feature-flag “higher-tier endpoints” in your app based on Asterwise plan — that model is incorrect for this API.