Errores y límites
Diagnóstico, paginación y reintentos.
Listados: { items: [...], total, page, limit }. page parte en 1; limit por defecto 20, máximo 100. Para recorrer todo: incrementa page hasta page * limit >= total. Errores: { "error": { "code": "bad_request", "message": "La validación del request falló", "details": ["campo inválido"], "requestId": "id", "timestamp": "2026-10-05T14:03:00Z" } }. 400: payload inválido; 401: key ausente/inválida/revocada/expirada; 403: scope insuficiente o corredora inhabilitada; 404: recurso ausente/no accesible; 409: conflicto de idempotencia; 429: rate limit; 500: error inesperado. Guarda x-request-id para diagnóstico. No reintentes 400/401/403 sin corregir la causa. Para 429 espera Retry-After; para 5xx usa backoff y conserva Idempotency-Key al crear. Rate limit por API key: por defecto 120 solicitudes por 60 segundos, compartido con MCP. Headers: X-RateLimit-Limit (cupo), X-RateLimit-Remaining (restante), X-RateLimit-Reset (epoch de reinicio), Retry-After (segundos, al responder 429).