Quickstart — primeros pasos con la API de vario
Esta guía te lleva desde cero hasta tu primer análisis de texto en menos de 5 minutos. Al terminarla habrás registrado una cuenta, consultado los playbooks disponibles, enviado un request de análisis e interpretado el response.
Base URL: https://api.vario.lat/v1
Autenticación: Authorization: Bearer vario_TU_API_KEY
Paso 1 — Registrar cuenta de API
Crea una cuenta API-only con créditos de bienvenida. No requiere tarjeta de crédito.
curl -X POST https://api.vario.lat/api/public/api-signup \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"name": "Tu Nombre",
"organization": "Tu Organización"
}'
Response 201:
{
"key": "vario_xbGhABC123...WXYZ",
"warning": "Store this key immediately. It cannot be recovered — only revoked and replaced.",
"free_credits": 250,
"call_cost_screening": 1,
"call_cost_fast": 2,
"call_cost_full": 3,
"docs_note": "$0.150 per credit. Pricing is subject to change."
}
El balance inicial es de 250 créditos gratuitos, suficientes para explorar todos los modos y playbooks.
Errores frecuentes en este paso:
| HTTP | Condición |
|---|---|
422 | Email de dominio gratuito (gmail, hotmail, etc.) o formato inválido |
409 | El email ya tiene una cuenta registrada |
429 | Más de 5 solicitudes por minuto desde la misma IP |
Paso 2 — Consultar playbooks disponibles
Lista los tipos de conducta que puedes detectar y los idiomas soportados por cada uno.
curl https://api.vario.lat/v1/playbooks \
-H "Authorization: Bearer vario_TU_API_KEY"
Response 200:
{
"playbooks": [
{
"conduct_type": "price_fixing",
"languages": ["es", "pt"],
"version": "1.0"
},
{
"conduct_type": "bid_rigging",
"languages": ["es"],
"version": "1.0"
},
{
"conduct_type": "bribery",
"languages": ["es", "pt"],
"version": "1.0"
},
{
"conduct_type": "market_manipulation",
"languages": ["es"],
"version": "1.0"
}
]
}
Usa el valor de conduct_type en el campo playbook del siguiente paso. El campo language acepta los códigos ISO 639-1 que lista cada playbook.
Paso 3 — Analizar un texto
Envía un texto para analizar. vario no almacena ni retiene el texto analizado — cada request es stateless.
curl -X POST https://api.vario.lat/v1/analyze \
-H "Authorization: Bearer vario_TU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Acordamos mantener los precios en $X este trimestre",
"language": "es",
"playbook": "price_fixing",
"mode": "fast"
}'
Parámetros del request:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
text | string | Sí | Texto a analizar. Máximo 8.000 caracteres. |
language | string | Sí | Código ISO 639-1: "es" o "pt". |
playbook | string | Sí | Tipo de conducta. Usar valores de GET /api/v1/playbooks. |
mode | string | No | "screening" (L1, 1 crédito), "fast" (L1+L2, 2 créditos) o "full" (L1+L2+L3, 3 créditos). Default: "full". |
thread_context | list[string] | No | Mensajes previos del hilo para contexto adicional. Máximo 10 elementos. |
Response 200:
{
"combined_score": 6.8,
"should_alert": true,
"severity": "high",
"reasoning": "El mensaje contiene una referencia explícita a un acuerdo de precios entre competidores. El uso de 'acordamos' en primera persona plural y la mención de un precio fijo para un período específico son señales consistentes con coordinación de precios.",
"key_phrases": [
"Acordamos mantener los precios",
"$X este trimestre"
],
"regulatory_frameworks": [
"Ley de Defensa de la Competencia (Chile, DL 211)",
"Lei 12.529/2011 (CADE, Brasil)",
"COFECE — Ley Federal de Competencia Económica (México)"
],
"recommended_action": "legal_review",
"confidence": "high",
"mode_used": "fast",
"analyzed_at": "2026-06-02T14:32:00Z",
"pipeline_version": "1.0",
"bedrock_available": true
}
Paso 4 — Interpretar el resultado
combined_score
Número en escala de 0 a 10. A mayor valor, mayor riesgo detectado. Úsalo para priorizar cuando procesas volúmenes altos de texto.
should_alert
Booleano. true indica que el análisis superó el umbral de riesgo configurado para el playbook. En la mayoría de los flujos, este campo es el disparador principal de tu lógica de escalación.
severity
Categórico con cuatro niveles:
| Valor | Significado |
|---|---|
critical | Señal muy fuerte. Requiere revisión inmediata. |
high | Señal significativa. Escalar a revisión legal. |
medium | Señal presente pero ambigua. Monitorear y acumular contexto. |
low | Señal débil o indirecta. Registrar; raramente requiere acción inmediata. |
reasoning
Texto explicativo que describe los factores de riesgo identificados en el mensaje. Útil para que un revisor humano entienda por qué el sistema generó la alerta sin necesidad de regresar al texto original.
recommended_action
Sugerencia de acción para el equipo de compliance. Los valores disponibles dependen del modo de análisis:
| Valor | Acción sugerida | Modo |
|---|---|---|
no_action | El análisis no encontró señales suficientes para actuar. | fast / full |
monitoring | Señal presente pero ambigua. Seguir observando; acumular contexto. | fast / full |
legal_review | Señal significativa. Enviar a revisión por abogado. | fast / full |
dismiss | Caso revisado por L3 y descartado. | full |
open_case | Señal sólida — abrir expediente formal. | full |
immediate_escalation | Señal crítica — escalar de inmediato. | full |
bedrock_available
Si este campo retorna false, el análisis fue parcial: el sistema asistido por IA no estuvo disponible en ese momento. Puedes reintentar el request o agregar el header Prefer: deep-analysis-required para recibir un error 503 explícito en lugar de un response parcial.
Tip — playground gratuito
Antes de integrar la API en tu sistema, puedes probar requests directamente desde el portal. El playground incluye 5 análisis gratuitos por día que no consumen créditos de producción, con visualización inmediata del response completo.
Próximos pasos
- POST /analyze — referencia completa del endpoint de análisis.
- GET /playbooks — lista de conductas disponibles.
- Créditos y modos — embudo de tres etapas (screening → fast → full) para optimizar costos.
- Modo
screening— para barrido masivo de corpus, usa"mode": "screening"(1 crédito, schema L1 distinto). - Modo
full— para análisis de mayor profundidad, usa"mode": "full"(3 créditos, razonamiento completo). thread_context— si tienes acceso al hilo de emails, pasa los mensajes previos en el arraythread_contextpara mejorar la precisión del análisis (solo efectivo en modosfastyfull).