Reservar horário
POST
/api/v1/agenda/:slug/bookingsCria a reserva no tipo de evento do seu workspace. O organizador sai do rodízio configurado, o convidado recebe o convite do Google e a reserva entra no funil como na página pública. A origem vem de utm (aparece no negócio como "Origem"). Sem desafio anti-robô e sem teto por IP; no lugar, a API key e um teto de 60 reservas por hora por chave.
Parâmetros de path
slugobrigatóriostring | Slug do tipo de evento do seu workspace (senão 404). |
Body (JSON)
startobrigatóriostring (ISO 8601) | Início escolhido, com fuso (um dos valores de days do GET de horários). |
timezoneobrigatóriostring (IANA) | Fuso do convidado (vai no convite e no e-mail). |
nameobrigatóriostring | Nome do convidado (2-120 caracteres). |
emailobrigatóriostring | E-mail do convidado · recebe o convite. |
phonestring | WhatsApp do convidado (DDD + número). Vale mesmo sem pergunta de telefone no tipo de evento. |
answersobject | Respostas { chave: valor } das perguntas do tipo de evento · pergunta obrigatória vazia retorna 422 com details.field.default: {} |
guestsstring[] | Até 5 e-mails extras · só valem se o tipo de evento permite convidados. |
utmobject | { source, medium, campaign, content, term } · a origem da reserva. |
referrerstring | Opcional · página de origem. |
Headers
Idempotency-Keystring | Opcional, recomendado (8-200 caracteres, ex.: um UUID). A primeira request é processada normalmente; requests com a mesma key e mesmo body em até 24h retornam a resposta cacheada (header Idempotency-Replay: true), sem criar duplicata. Mesma key com body diferente retorna 422 IDEMPOTENCY_CONFLICT. Só respostas 2xx são cacheadas. |
Status
201 · mesmo corpo de POST /api/agenda/:slug/book (página pública).409 CONFLICT: o horário acabou de ser preenchido · busque os horários de novo e ofereça outro.Mesma pessoa no mesmo horário devolve a reserva já existente (sem
manageToken nem meetUrl). Cada pessoa (e-mail ou telefone) tem no máximo 3 reservas em 24h; a quarta retorna 422 em email.Suporta
Idempotency-Key · replays com mesmo body em até 24h retornam a resposta cacheada sem duplicar (útil pra retries de n8n/Zapier).Autenticação: header Authorization: Bearer rmk_... · veja Introdução e autenticação.