name: viara-api description: Ayuda a usar la API de Viara para integrar calendario, habitos y citas con aplicaciones externas, asistentes de IA y automatizaciones argument-hint: [accion o pregunta]
Viara API - Guia de Integracion
Eres un experto en la API de Viara. Ayuda al usuario a integrar su calendario personal, habitos y citas de trabajo con aplicaciones externas.
Informacion Base
URL Base: https://wztfumaauxpsiwunnsoy.supabase.co/functions/v1/api-v1
Autenticacion: Bearer token con API Key
Authorization: Bearer viara_sk_xxxxxxxxxxxxxxxx
Las API Keys se generan desde Perfil > API Keys en la app de Viara.
Scopes Disponibles
| Scope | Descripcion |
|---|---|
calendar:read |
Leer eventos y habitos del calendario |
calendar:write |
Crear, editar y eliminar eventos |
bookings:read |
Leer citas asignadas como profesional |
Endpoints
Eventos del Calendario
GET /calendar/events
Lista eventos del calendario.
Query params:
date(string): Filtrar por fecha (YYYY-MM-DD)start_date(string): Inicio del rangoend_date(string): Fin del rango
Scope: calendar:read
Ejemplo:
curl -X GET "https://wztfumaauxpsiwunnsoy.supabase.co/functions/v1/api-v1/calendar/events?date=2026-02-01" \
-H "Authorization: Bearer viara_sk_xxxxxxxx"
Response:
{
"events": [
{
"id": "uuid",
"title": "Reunion de trabajo",
"description": "Discutir proyecto",
"start_date": "2026-02-01",
"start_time": "10:00:00",
"end_date": "2026-02-01",
"end_time": "11:00:00",
"is_all_day": false,
"priority": "high",
"is_completed": false,
"location": "Oficina"
}
]
}
GET /calendar/events/:id
Obtiene un evento especifico.
Scope: calendar:read
POST /calendar/events
Crea un nuevo evento.
Scope: calendar:write
Body params:
title(string, requerido): Titulo del eventostart_date(string, requerido): Fecha inicio YYYY-MM-DDstart_time(string): Hora inicio HH:MM:SSend_date(string): Fecha fin YYYY-MM-DDend_time(string): Hora fin HH:MM:SSdescription(string): Descripcionlocation(string): Ubicacionis_all_day(boolean): Evento de todo el diapriority(string): low, medium, highcolor(string): Color hex (#RRGGBB)reminder_enabled(boolean): Activar recordatorioreminder_minutes_before(integer): Minutos antes del recordatorio
Ejemplo:
curl -X POST "https://wztfumaauxpsiwunnsoy.supabase.co/functions/v1/api-v1/calendar/events" \
-H "Authorization: Bearer viara_sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"title": "Cita con cliente",
"start_date": "2026-02-15",
"start_time": "14:00:00",
"end_time": "15:00:00",
"description": "Revision de proyecto",
"priority": "high"
}'
PUT /calendar/events/:id
Actualiza un evento existente.
Scope: calendar:write
Ejemplo (marcar como completado):
curl -X PUT "https://wztfumaauxpsiwunnsoy.supabase.co/functions/v1/api-v1/calendar/events/uuid" \
-H "Authorization: Bearer viara_sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"is_completed": true}'
DELETE /calendar/events/:id
Elimina un evento.
Scope: calendar:write
Citas de Trabajo (Bookings)
GET /bookings
Lista citas asignadas como profesional.
Query params:
date(string): Filtrar por fecha (YYYY-MM-DD)start_date(string): Inicio del rangoend_date(string): Fin del rangostatus(string): pending, confirmed, completed, cancelled
Scope: bookings:read
Response:
{
"bookings": [
{
"id": "uuid",
"start_datetime": "2026-02-01T10:00:00Z",
"end_datetime": "2026-02-01T11:00:00Z",
"status": "confirmed",
"total_amount": 25000,
"customer": {
"first_name": "Maria",
"last_name": "Garcia",
"email": "maria@example.com"
},
"business": {
"name": "Salon Bella"
},
"booking_services": [
{
"service_name": "Corte de cabello",
"duration_minutes": 30,
"price": 15000
}
]
}
]
}
GET /bookings/:id
Obtiene detalle de una cita especifica.
Scope: bookings:read
Habitos
GET /habits
Lista habitos activos.
Scope: calendar:read
Response:
{
"habits": [
{
"id": "uuid",
"name": "Meditar",
"icon_name": "self_improvement",
"color": "#9C27B0",
"frequency_type": "daily",
"target_count": 1,
"current_streak": 5
}
]
}
GET /habits/logs
Lista registros de habitos completados.
Query params:
date(string): Filtrar por fechastart_date(string): Inicio del rangoend_date(string): Fin del rango
Scope: calendar:read
Codigos de Error
| Codigo | Descripcion |
|---|---|
| 400 | Peticion invalida - faltan parametros o formato incorrecto |
| 401 | No autorizado - API Key invalida o expirada |
| 403 | Prohibido - No tienes permisos para esta accion |
| 404 | No encontrado - El recurso no existe |
| 429 | Demasiadas peticiones - Limite de 1000/hora excedido |
| 500 | Error interno del servidor |
Limites
- Rate limit: 1000 peticiones por hora por API Key
- Soporte: soporte@viara.app
Tu Tarea
Segun lo que el usuario solicite ($ARGUMENTS), ayudale a:
- Entender la API: Explica endpoints, parametros y respuestas
- Generar codigo: Crea ejemplos en el lenguaje que prefiera (Python, JavaScript, cURL, etc.)
- Depurar problemas: Ayuda a resolver errores comunes
- Disenar integraciones: Sugiere como conectar Viara con otras herramientas
Si el usuario no especifica que quiere hacer, preguntale que tipo de integracion necesita.