← API

AGENTES DE IA

MCP v1
// API AMIGABLE PARA AGENTES

Pequi está diseñada desde cero para ser consumida por agentes de IA. Cada respuesta incluye metadatos que un agente puede parsear determinísticamente, los errores son estructurados y recuperables, y el ecosistema MCP permite integración directa con Claude Desktop, Cursor, Copilot y cualquier agente compatible.

// Ejemplo de respuesta de error estructurada { "error": "Demasiadas solicitudes.", "code": "RATE_LIMIT_EXCEEDED", "recoverable": true, "suggestedAction": "El límite se restablecerá automáticamente...", "retryAfter": 30, "requestId": "req_a1b_2c3" }

// AUTENTICACIÓN

Q1.

¿Cómo autentico mi agente?

Usa el header Authorization: Bearer pk_live_tu_llave. Los endpoints GET públicos funcionan sin API key con rate limits generosos.

Q2.

¿Puedo rotar llaves automáticamente?

Sí. Genera múltiples API keys desde el dashboard y usa la que esté activa. Revoca las comprometidas sin afectar las demás.

Q3.

¿Qué scopes existen?

properties:read, barrios:read, benchmarks:read, geocode:read son públicos. contracts:write, payments:write, avm:read requieren API key.

// SELECCIÓN DE HERRAMIENTAS

Q1.

¿Qué endpoints debe priorizar un agente?

Para búsqueda de propiedades: GET /api/v1/properties con filtros. Para contexto de barrio: GET /api/v1/barrios. Para análisis de precios: GET /api/v1/benchmarks.

Q2.

¿Cómo manejo resultados vacíos?

Los endpoints siempre devuelven un array data (puede estar vacío) con un objeto meta que incluye total. Verifica meta.total === 0.

Q3.

¿Y si el endpoint cambia?

Todos los endpoints v1 están versionados bajo /api/v1/. No habrá cambios breaking sin un nuevo major version.

// MANEJO DE ERRORES ESTRUCTURADOS

Q1.

¿Cómo son los errores de la API?

Todos los errores siguen una estructura estándar con campos que un agente puede parsear determinísticamente.

Q2.

¿Qué campos tiene un error?

error (mensaje legible), code (código máquina como RATE_LIMIT_EXCEEDED), recoverable (booleano), suggestedAction (qué hacer), retryAfter (segundos), requestId (para tracing).

Q3.

¿Cómo decido si reintentar?

Usa recoverable. Si es true, espera retryAfter segundos (si existe) o 1-5 segundos genéricos. Si es false, no reintentes — notifica al usuario.

// ECOSISTEMA MCP

Q1.

¿Cómo uso Pequi desde Claude / Cursor / Copilot?

Instala @MCPVOT/mcp-server via npm. Configura la API key en PEQUI_API_KEY. El servidor expone 4 herramientas: search_properties, get_barrios, get_benchmarks y geocode.

Q2.

¿Puedo limitar herramientas por tier?

Sí. El MCP server soporta guardrails por API key tier. FREE tier solo tiene acceso a herramientas de solo lectura. AGENTE y superiores incluyen generación de contratos y AVM.

Q3.

¿El MCP server audita llamadas?

Sí. Cada invocación de herramienta se registra con timestamp, herramienta usada, argumentos y resultado. Consulta el audit trail en el dashboard de monitoreo.

// RATE LIMITS PARA AGENTES

Q1.

¿Cuáles son los límites para FREE?

30 req/min general, 5 req/min para chat. Response headers incluyen X-RateLimit-Remaining y Retry-After.

Q2.

¿Cómo diseño mi agente para rate limits?

Usa el header X-RateLimit-Remaining para anticipar límites. Implementa backoff exponencial. El campo retryAfter en errores 429 te dice exactamente cuándo reintentar.

Q3.

¿Qué pasa si excedo la cuota diaria?

Recibirás QUOTA_EXCEEDED (código: 429). El error incluye recoverable: true. La cuota se restablece cada 24 horas.

// SDKS PARA AGENTES

Q1.

¿Qué SDKs están disponibles?

TypeScript (@MCPVOT/api-client con 21 métodos) y Python (pequi-api-client con PequiClient fluido). Ambos manejan autenticación y reintentos automáticamente.

Q2.

¿El SDK maneja errores estructurados?

Sí. Ambos SDKs retornan errores con la misma estructura. En TypeScript, los errores lanzan PequiApiError con code, recoverable, suggestedAction.

// MEJORES PRÁCTICAS

Q1.

Tool calling agrupado

Pre-fiere llamar /properties con múltiples filtros en vez de hacer N llamadas secuenciales. Usa limit=100 para paginación eficiente.

Q2.

Cachea datos de barrios localmente

Los barrios cambian raramente. Cachea GET /barrios por hasta 24 horas. Usa la metadata (verificationStatus) para filtrar datos no verificados.

Q3.

Usa IDs únicos para idempotencia

Para POST (pagos, contratos), incluye un idempotencyKey en los headers. Si el request falla, reintenta con la misma key — la API garantiza que se procese una sola vez.

Q4.

Maneja el error NOT_FOUND con gracia

Si una propiedad específica no existe, NO asumas que el agente se equivocó. Podría haberse despublicado. Ofrece alternativas: "Esa propiedad ya no está disponible. ¿Quieres buscar otras similares en el mismo barrio?"

// LISTO PARA INTEGRAR TU AGENTE?

Crea una API key gratuita, lee los SDKs y conecta tu agente en minutos.

OBTENER API KEY →GUÍAS PARA DEVELOPERS →API PLAYGROUND →