Support
Three layers: monthly account quota, per-minute burst rate, optional per-key monthly caps. Editor MCP and terminal CLI share the same account quota. This page is the rate-limit policy plus how to spend efficiently.
Keys are hashed. Usage metadata is logged. Tool payloads are request-scoped. Terminal credentials stay on your machine.
| Tier | Requests / month | Price |
|---|---|---|
| Free | 555 | $0/mo |
| Pro | 3,500 | $7/mo |
| Max | 10,000 | $19/mo |
| Error | Meaning |
|---|---|
-32002 / HTTP 429 | Burst / rate limit — respect Retry-After |
-32003 | Monthly quota or per-key cap exceeded |
-32001 | Auth failure (invalid/expired key) |
Response headers often include: X-RateLimit-Limit · X-RateLimit-Remaining · X-RateLimit-Reset · Retry-After (on 429).
| Rule | Do | Don't |
|---|---|---|
| Context once per session | get_project_context or overview first | Re-read package.json via ten read_code calls |
| Find before symbol | find_code then read_code / symbol | symbol without location on huge monorepos |
| Topic zoom | get-context --topic auth|database|env | Always pull full standard dump |
| Terminal vs agent | Human: answer cards; scripts: --json | Paste full terminal prose into agents |
| check_test session | run once, then failures/why on session_id | Re-run full suite for every question |
# Orientmcpcli overviewmcpcli get-context --topic auth # Locate → readmcpcli find-code "validateToken"mcpcli symbol validateToken # Verifymcpcli check-testmcpcli check url https://staging.example.com # Remember tribal knowledgemcpcli remember "webhooks dedupe event.id in Redis 24h"mcpcli recall webhook # Machine pathmcpcli get-context --json | jq .| Tier | Requests/month | Burst (req/min) | API Keys | MCP Backends |
|---|---|---|---|---|
| Free | 555 | 50 | Unlimited | 3 |
| Pro ($7/mo) | 3,500 | 300 | Unlimited | 10 |
| Max ($19/mo) | 10,000 | 1,000 | Unlimited | 20 |
Monthly quotas reset on the 1st of each month at 00:00 UTC. If you upgrade mid-cycle, the higher limit applies immediately for the remainder of the month.
tools/call that reaches the Zephex endpoint — regardless of tool, duration, or response size.tools/list, initialize, ping, and connection handshakes.Burst limits use a sliding-window algorithm. If you exceed the per-minute cap, requests are rejected with error code -32002 and a Retry-After header indicating when to retry.
Burst limits exist to protect service stability. Normal interactive usage (an AI editor calling tools during a coding session) will never hit them. They primarily prevent runaway automation loops.
Pro and Max users can set a monthly request cap on individual API keys. This prevents a single integration from consuming the entire account quota.
Example: You have a Pro account (3,500/mo) with multiple keys:
production — cap: 2,000staging — cap: 500personal — cap: unlimitedIf production hits 2,000, it stops working. staging and personal continue until the account total reaches 3,500.
{ "jsonrpc": "2.0", "error": { "code": -32003, "message": "Per-key monthly cap reached", "data": { "key_prefix": "mcp_prod_cosmic-1861", "monthly_request_count": 1000, "monthly_request_cap": 1000, "reset_date": "2026-07-01T00:00:00Z" } }}Pro and Max users can enable overage billing from Dashboard → Billing. When enabled, requests beyond your monthly limit are metered and charged on your next invoice instead of being blocked.
| Tier | Overage rate | Billed |
|---|---|---|
| Pro | $0.003 per request | Added to next monthly invoice |
| Max | $0.002 per request | Added to next monthly invoice |
Overage billing can be toggled on or off at any time. When disabled, requests are blocked at the monthly limit. There is no minimum overage charge.
Instead of overage billing, you can purchase one-time request packs that add to your monthly balance immediately:
| Pack | Extra requests | Price | Per-request rate |
|---|---|---|---|
| Starter | 2,000 | $5 | $0.0025 |
| Growth | 4,000 | $10 | $0.0025 |
Top-up balances do not expire within the billing month. Unused top-up requests do not roll over to the next month. Purchase from Dashboard → Billing when you hit your limit.
Every response includes rate-limit headers so your client can track remaining quota:
HTTP/1.1 200 OKX-RateLimit-Limit: 3500X-RateLimit-Remaining: 2847X-RateLimit-Reset: 1717200000X-RateLimit-Burst-Limit: 300X-RateLimit-Burst-Remaining: 298| Header | Meaning |
|---|---|
| X-RateLimit-Limit | Monthly request cap for your tier |
| X-RateLimit-Remaining | Requests remaining this month |
| X-RateLimit-Reset | Unix timestamp when the monthly counter resets |
| X-RateLimit-Burst-Limit | Per-minute burst cap |
| X-RateLimit-Burst-Remaining | Burst requests remaining in the current window |
{ "jsonrpc": "2.0", "error": { "code": -32003, "message": "Monthly usage limit exceeded", "data": { "tier": "pro", "current_usage": 3500, "limit": 3500, "reset_date": "2026-07-01T00:00:00Z", "upgrade_url": "https://zephex.dev/dashboard/billing" } }}When you receive this error, your options are: wait for the monthly reset, purchase a top-up pack, enable overage billing, or upgrade your plan.
Zephex sends email notifications when you approach your limit. Default thresholds are 50%, 75%, and 90%. You can disable or customize these from Dashboard → Settings → Notifications.
Opt into a weekly email summary (sent Mondays at 9am UTC) showing your request count, top tools used, remaining quota, and reset date. Enable from Dashboard → Settings → Notifications → Weekly usage digest.
If you need more than 10,000 requests/month or custom rate limits, contact support@zephex.dev to discuss enterprise options.