Open in the interactive docs · markdown for agents: https://neuraldeep.tech/docs/limits-api.md

Remaining limits · GET /v1/limits

How much is left on YOUR key — session/week (chat and vector class separately), the live per-minute chat-RPM window, cooldowns, parallelism, the night multiplier, wallet balance in RUB and kimi budget percentage. Same Bearer sk- as inference. Built for agents and cron jobs: plan spending instead of discovering limits via 429.

curl -s https://api.neuraldeep.tech/v1/limits \
  -H "Authorization: Bearer $YOUR_KEY" | jq
# the server has already merged all blockers (cooldowns, windows, RPM, key status)
curl -s https://api.neuraldeep.tech/v1/limits -H "Authorization: Bearer $YOUR_KEY" \
  | jq -e '.decision.can_request'

# fine-tuning: spend only if >20% of the session is left
curl -s https://api.neuraldeep.tech/v1/limits -H "Authorization: Bearer $YOUR_KEY" \
  | jq -e '.chat.cooldown_sec == 0 and .chat.session.remaining > (.chat.session.limit / 5)'

Semantics: decision covers chat inference (check the vector block for the embedding lane); all numbers are already effective (the night ×2 is applied — do not multiply anything); remaining is computed server-side and never negative; key.status ≠ ok means 401 on inference regardless of remaining quota; if counters are unavailable — an honest 503 with Retry-After. decision.notices holds warnings that do not stop you from calling models: wallet_empty means the key is in Wallet mode, the wallet is empty and the key temporarily follows its plan rules (free models stay available, can_request stays true because of it). The endpoint is read-only — polling does not burn quota; polling more often than every 15-30 seconds is pointless.

TIER ceilings (not personal remainders) — GET /api/public/tier-limits: concurrency, RPM and the gateway timeout. Volume quotas are not served there to anyone — your own live in GET /api/me, the limits block.

Reference sections (markdown for agents)