Integra la programación de citas en tu producto
Pikato es API-first. Todo lo que hace la app está disponible a través de una REST API documentada, así que puedes automatizar encuestas, conectar los resultados con tus propias herramientas y reaccionar a las respuestas en tiempo real.
Todo lo que hace la interfaz, de forma programática
Crea encuestas, añade franjas horarias, envía respuestas y lee la matriz completa de resultados a través de una REST API limpia. Cualquier cosa que puedas hacer a mano, la puedes automatizar.
Resultados sobre los que actuar
Obtén la matriz agregada Sí/Quizás/No por franja, encuentra la hora ganadora y exporta cualquier evento como archivo de calendario ICS directamente desde la API.
Webhooks en tiempo real
Suscríbete a eventos —nuevas respuestas, horas fijadas— y recibe llamadas firmadas con HMAC y con marca de tiempo para que tus sistemas reaccionen en el momento en que algo cambia. Sin necesidad de sondeo.
Claves de API con permisos acotados
Emite y revoca tokens con permisos detallados (events:read, events:write, responses:read, webhooks:manage). Concede a cada integración solo lo que necesita.
OAuth2 para terceros
Crea apps en nombre de otras cuentas con el flujo client-credentials. Intercambia credenciales en POST /oauth/token y acota el token resultante exactamente al acceso que necesitas.
Seguro para reintentar
Las claves de idempotencia hacen que las peticiones de escritura sean seguras de repetir: una conexión perdida o un reintento nunca crean una encuesta o respuesta duplicada.
Ejemplos rápidos
Lista tus encuestas activas
Obtén tus encuestas guardadas y quédate con las que siguen recogiendo respuestas (estado "open"). Necesita una clave de API con el permiso events:read.
const API = 'https://your-domain.example/api/v1';
const TOKEN = 'pk_live_…'; // API key with events:read
const res = await fetch(`${API}/account/events`, {
headers: { Authorization: `Bearer ${TOKEN}`, Accept: 'application/json' },
});
const { data } = await res.json();
// Keep only polls still open for responses (the other status is "finalized").
const active = data.filter((poll) => poll.status === 'open');
active.forEach((poll) => {
console.log(poll.id, poll.title, `${poll.participant_count} responses`);
});Consulta quién respondió y qué eligió
Obtén la matriz participante × franja de una encuesta y lista el nombre de cada persona con su elección Sí / Quizás / No por franja horaria. Necesita el permiso responses:read.
const API = 'https://your-domain.example/api/v1';
const TOKEN = 'pk_live_…'; // API key with responses:read
const eventId = 'evt_…';
const res = await fetch(`${API}/events/${eventId}/responses`, {
headers: { Authorization: `Bearer ${TOKEN}`, Accept: 'application/json' },
});
const { data } = await res.json();
// Map slot id -> readable label so answers aren't just ids.
const slotLabel = Object.fromEntries(
data.slots.map((s) => [s.id, s.starts_at ?? s.location ?? s.id]),
);
// One row per participant: their name and their choice for each slot.
data.participants.forEach((p) => {
const choices = Object.entries(p.answers)
.map(([slotId, value]) => `${slotLabel[slotId]}: ${value}`)
.join(', ');
console.log(`${p.display_name} → ${choices}`);
});Autentica cada petición con una clave de API Bearer desde tu cuenta. La referencia completa de endpoints —incluidos los cursores de paginación y las formas de error— está en la Documentación de la API ↗.
1.000 llamadas API / mes · 60 peticiones / minuto, encuestas ilimitadas, 10 guardadas en tu cuenta, más webhooks y claves con permisos. Por encima de esa cuota necesitas una suscripción. Las invitaciones por correo se pagan aparte con créditos.