Conectá Chatia con tus sistemas. Creá agentes desde tu backend, leé y exportá conversaciones, recibí eventos firmados con HMAC y dejale a tu asistente IA la spec paste-ready para que orqueste todo solo.
Base URL · https://www.chatia.proAuth · Bearer tokenVersión · v1
Autenticación
Toda llamada a la API se autentica con una API key como Bearer token. Generá la tuya en /dashboard/developers. La key se muestra una sola vez al crearla; guardala.
Nunca pongas una key en código cliente. Se almacena hasheada en nuestra DB; si la perdés, revocala en el dashboard y generá otra.
Quickstart
Tres pasos para tener un agente público respondiendo en webchat.
bash# 1) Crear cuenta + API key (1 vez por user)
# - Registrate en https://www.chatia.pro/register (gratis, $3 USD welcome credit).
# - Andá a https://www.chatia.pro/dashboard/developers → "Crear API key".
# - Copiá la key (empieza con chatia_…) — solo se muestra una vez.
export CHATIA_API_KEY="chatia_..."
# 2) Crear agente + publicarlo + recibir TODOS los links en 1 llamada
curl -X POST https://www.chatia.pro/api/developers/agents \
-H "Authorization: Bearer $CHATIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Soporte Cliente",
"description": "Atiende FAQs, captura leads, escala a humano.",
"system_prompt": "Sos un agente de soporte. Tono cálido, profesional. Si no podés resolver, capturá el lead y derivá.",
"first_message": "¡Hola! ¿En qué puedo ayudarte?",
"tools": ["capture_lead", "send_whatsapp_handoff", "send_nps_survey"],
"publish": true
}'
# Response (todo absoluto, copy-paste directo):
# {
# "id": 42,
# "chat_url": "https://www.chatia.pro/chat/soporte-cliente-42",
# "dashboard_url": "https://www.chatia.pro/dashboard/agents/42",
# "widget_snippet": "<script src=\"https://www.chatia.pro/widget.js?slug=soporte-cliente-42\" defer></script>",
# "wordpress_plugin_url": "https://www.chatia.pro/wordpress",
# "tools": ["capture_lead", "send_whatsapp_handoff", "send_nps_survey"]
# }
# 3) Probalo en vivo
open https://www.chatia.pro/chat/soporte-cliente-42
# 4) Embeberlo en tu sitio — pegá widget_snippet antes de </body>.
# Para WordPress: descargá el plugin (~7 KB) en https://www.chatia.pro/wordpress y
# pegá solo el slug en Ajustes → Chatia.
Chatia Pro Agent API
Chat Completions API · compatible con OpenAI.
chatia-lite es el slug del modelo gestionado por Chatia (gpt-5.4 detrás, 1.05M context). Hablás contra /api/v1/chat/completions con la misma forma que OpenAI, así que cualquier SDK oficial funciona apenas cambiás el base_url. Te facturamos por tokens reales con markup 2.5x sobre upstream — typical $0.02–$0.10 por response. Dashboard de consumo en /api/v1/usage.
python# Funciona con el SDK oficial de OpenAI sin cambios — solo apuntá la
# base_url a Chatia y usá tu API key de Chatia.
from openai import OpenAI
client = OpenAI(
api_key="<CHATIA_API_KEY>",
base_url="https://www.chatia.pro/api/v1",
)
resp = client.chat.completions.create(
model="chatia-lite",
messages=[
{"role": "system", "content": "Respondé breve, en español."},
{"role": "user", "content": "Resumime qué es WhatsApp Cloud API."},
],
stream=True,
)
for chunk in resp:
print(chunk.choices[0].delta.content or "", end="", flush=True)
Node · openai
tsimport OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.CHATIA_API_KEY!,
baseURL: "https://www.chatia.pro/api/v1",
});
const stream = await client.chat.completions.create({
model: "chatia-lite",
messages: [
{ role: "system", content: "Respondé breve, en español." },
{ role: "user", content: "Hola, ¿cuánto cuesta tu plan?" },
],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
Te devolvemos siempre model: "chatia-lite" aunque actualicemos el modelo upstream. Eso significa: sin breaking changes para tu integración cuando mejoramos el modelo o agregamos un tierchatia-pro.
Cada call queda registrada en /dashboard/billing con tokens y costo. Si te freneamos por error rate o spike, vamos a usar 429 con Retry-After; reintentá con back-off exponencial.
Endpoints
Todos los endpoints autenticados con API key forman la API pública. Los que requieren sesión son sólo para el dashboard.
›Todos los campos son opcionales — los que no mandás no se tocan.
›primary_color debe ser hex (#RRGGBB o #RGB).
›show_powered_by sólo se respeta en planes pagos; en Free queda forzado a true.
›Para subir el logo o el avatar usá los endpoints /api/branding/agents/:id/logo y /api/branding/agents/:id/avatar (multipart, requieren sesión web del owner — todavía no expuestos en v1).
Request
json{
"primary_color": "#8b5cf6",
"theme": "light",
"powered_by_text": "Powered by Mi Empresa",
"powered_by_url": "https://mi-empresa.com",
"show_powered_by": true
}
›tags: hasta 6, coma-separados, normalizamos a lowercase.
›Para textos grandes (>50k) usá el endpoint upload-file que auto-chunkea.
Request
json{
"title": "Política de devolución",
"content": "Tenemos 30 días corridos desde la entrega para cambios. Sin uso, etiqueta puesta...",
"tags": "faq, ventas",
"pinned": true
}
Reintentamos hasta 6 veces con back-off exponencial cuando tu endpoint responde 5xx o timeout. Verás cada intento en el dashboard, en “Últimas entregas”.
Códigos de error
Código
Significado
Cuándo
200
OK
La operación se completó.
400
Bad request
JSON mal formado o campo requerido faltante.
401
Unauthorized
Falta el header Authorization o la key fue revocada.
404
Not found
El agente o la conversación no existen o no son tuyos.
429
Rate limited
Excediste el límite. Volvé a intentar después del Retry-After.
5xx
Server error
Issue en nuestro lado. Reintentá con back-off exponencial.
Spec paste-ready para tu asistente IA
Pegá este bloque en Claude Code, Cursor, Codex o tu agente de código favorito. Es todo lo que necesita para construir contra Chatia: endpoints, auth, tools, rate limits, errores y checklist de creación autónoma de agentes.
Spec completa (~700 LOC) — todos los endpoints, modelos de datos, recetas Python/Node, tools nativas detalladas, verificación de firma. Para devs que quieren la referencia full.
md# Chatia · spec paste-ready para Claude Code / Codex / Cursor
Base URL: https://www.chatia.pro
Auth: Authorization: Bearer <CHATIA_API_KEY>
## Endpoints — Agentes
- GET /api/developers/agents
- POST /api/developers/agents { name, system_prompt, tools[], publish }
- POST /api/developers/agents/:id/publish
- GET /api/developers/agents/:id/conversations?limit=50&offset=0
- GET /api/developers/conversations/:id
- GET /api/developers/conversations/:id/export?format=json|csv|txt
- POST /api/developers/events { type, agent_id?, data }
## Endpoints — Clientes (sub-users)
- GET /api/developers/clients
- POST /api/developers/clients { email, name, password, agent_ids[] }
- PATCH /api/developers/clients/:id { name?, is_active? }
- DELETE /api/developers/clients/:id
- POST /api/developers/clients/:id/reset-password
- PATCH /api/developers/clients/:id/branding { brand_name?, primary_color?, powered_by_text?, powered_by_url?, show_powered_by? }
## Endpoints — Equipo del cliente (max 5 seats para gestionar interacciones)
- GET /api/developers/clients/:id/team-members
- POST /api/developers/clients/:id/team-members { email, name, password }
- DELETE /api/developers/clients/:id/team-members/:member_id
## REST v1 — Agents detail + Branding + Knowledge (auth API key)
- GET /api/v1/agents
- GET /api/v1/agents/:id
- GET /api/v1/agents/:id/branding
- PATCH /api/v1/agents/:id/branding { primary_color?, theme?, powered_by_text?, powered_by_url?, show_powered_by? }
# theme: "dark" | "light" | "auto"
- GET /api/v1/agents/:id/knowledge?q=...&tags=ventas,faq
- POST /api/v1/agents/:id/knowledge { title, content, tags?, pinned? }
- PATCH /api/v1/agents/:id/knowledge/:chunk_id { title?, content?, tags?, pinned? }
- DELETE /api/v1/agents/:id/knowledge/:chunk_id
- POST /api/v1/agents/:id/knowledge/upload-file # multipart, PDF/TXT/MD/CSV, auto-chunking
- POST /api/v1/agents/:id/knowledge/import-url { url, tags? }
- GET /api/v1/account # plan + uso
## Rate limits (por API key, no por IP)
- POST /api/developers/agents — 30/min
- POST /api/developers/agents/:id/publish — 30/min
- POST /api/developers/events — 120/min
- POST /api/developers/webhooks/:id/test — 20/min
Excederlos devuelve 429 con header Retry-After (segundos).
## Tools (skills) nativas que el agente puede usar (catálogo vivo: GET /api/developers/skills)
Captura/CRM:
- capture_lead, update_lead_status, add_lead_note
Calendario:
- create_calendar_event, list_availability, cancel_appointment, reschedule_appointment
Comunicación:
- send_email, send_whatsapp_handoff, send_whatsapp_text,
whatsapp_send_template, send_whatsapp_image
Knowledge:
- query_knowledge
Encuestas:
- send_nps_survey
Recruitment / RRHH:
- register_candidate, score_candidate, flag_for_review
HTTP genérico (custom integrations):
- http_request
## Mapping vertical → tool-set default
- Ventas / E-commerce → capture_lead + send_whatsapp_handoff + update_lead_status + add_lead_note
- Soporte / FAQ → query_knowledge + send_whatsapp_handoff + send_nps_survey
- Turnos / Agenda → create_calendar_event + list_availability + cancel/reschedule + capture_lead
- Recruitment / RRHH → register_candidate + score_candidate + flag_for_review + send_email
- Mixto → combinar según caso
## Webhooks — eventos disponibles (27 totales)
- agent.created, agent.published, agent.branding.updated
- agent.message.created, agent.reply.created
- agent.lead.captured, agent.tool.called, agent.handoff.requested
- agent.message.delivered/read/failed, agent.outbound.skipped_24h_window
- agent.phone_number.quality_changed/banned
- agent.sale.started, agent.sale.updated, agent.sale.confirmed
- client.created/updated/removed/password_reset
- client.branding.updated, client.agent_grant.added/removed
- client.team_member.added/removed
- portal.branding.updated
## Errores comunes
- 401 Missing/Invalid API key → user genera key en /dashboard/developers
- 402 insufficient_balance → user agrega tarjeta en /billing
- 403 agents_limit_reached → borrar agente o subir de plan
- 422 Validation error → tools no en catálogo (ver /developers/skills)
- 429 Too many requests → leer Retry-After + backoff exponencial
- 5xx → reintentar con backoff (1, 2, 4, 8, 16s)
## Workflow típico para "AI agent autonomous create flow"
1. (One-time) User crea cuenta en /register + API key en /dashboard/developers
2. POST /api/developers/agents con system_prompt + tools + publish=true
→ Response trae chat_url, dashboard_url, widget_snippet, wordpress_plugin_url
3. Devolver al user los 4 links — copy-paste directo, sin componer strings
4. (Opcional) PATCH /api/v1/agents/:id/branding con color + theme
5. (Opcional) POST /api/v1/agents/:id/knowledge/import-url para cargar FAQ
6. (Opcional) POST /api/developers/webhooks para recibir eventos en CRM
7. (Opcional) Si user tiene WordPress → /wordpress (plugin .zip ~7 KB)
Si user tiene Shopify → snippet en theme.liquid antes de </body>
Si user tiene HTML / Wix / Webflow → widget_snippet directo
## Checklist como agente IA externo (Claude / Codex / Cursor)
[ ] Confirmar CHATIA_API_KEY o redirigir a /dashboard/developers
[ ] Inferir vertical (ventas / soporte / turnos / RRHH / mixto)
[ ] Elegir tools del mapping vertical
[ ] Redactar system_prompt 2-4 oraciones (rol + tono + cuándo capturar lead)
[ ] Redactar first_message saludo natural
[ ] POST /api/developers/agents con publish=true
[ ] Devolver chat_url + dashboard_url + widget_snippet
[ ] Si user mencionó canales (WA, IG) → explicar OAuth en /dashboard/agents/:id#integrations
[ ] Si user tiene sitio WP/Shopify/Wix → mostrar snippet adecuado
[ ] Si user quiere CRM/notif → guiarlo en setup de webhooks
Skill completo + recetas Python/Node + verificación de firma:
https://www.chatia.pro/SKILL.md
WhatsApp · Kapso
Integrá WhatsApp Cloud en 60 segundos.
Conectamos los agentes de Chatia a WhatsApp via Kapso. El usuario pega su API key, asigna un número y el webhook queda configurado. La documentación de Kapso cubre alta del WABA, números, plantillas y rate limits.