Pikatopikato.
Desarrolladores

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 ↗.


Plan gratuito

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.