Saltar a contenido

Rate limits

Wiservet aplica rate limit per API key sobre el MCP público. Los contadores se resetean a las 00:00 UTC todos los días.

Cuotas por defecto

Plan rate_limit_per_day Burst (1 minuto)
Standard 1.000 60
Pro 5.000 200
Enterprise A negociar A negociar

Cómo se cuenta

  • Cada POST /tools/{tool}/invoke exitoso o bloqueado por sql_guard suma 1.
  • Health checks (GET /health) no suman.
  • El header X-RateLimit-Remaining viene en cada response 200/4xx con la cuota restante del día.

Comportamiento ante 429

HTTP/1.1 429 Too Many Requests
Content-Type: application/json

{
  "error": "rate_limit_exceeded",
  "code": "RATE_LIMIT_EXCEEDED",
  "details": {
    "limit": 1000,
    "reset_at": "2026-04-27T00:00:00Z"
  }
}

Estrategia recomendada:

  1. No retry hard: backoff exponencial 2^n segundos hasta reset_at.
  2. Cachear get_clinic_context: el resultado cambia cada ~5 min. Cachear cliente-side reduce ~30% del consumo típico.
  3. Pedir incremento: a soporte@wiservet.com con justificación + plan actual.

Burst protection

Adicional al daily limit, hay un cap de 60 req/min (Standard) o 200 req/min (Pro). Excede → 429 con retry_after en segundos:

{
  "code": "BURST_LIMIT_EXCEEDED",
  "details": { "retry_after": 23 }
}

Visibilidad

Desde la consola Wiservet (vista Config → Integraciones):

  • Consumo del día (gráfico hora a hora)
  • Top tools llamados últimas 24h
  • mcp_usage_log rows con SQL truncado y rows_returned