mahakala.app API Documentation
REST API v1 — Manage event types, bookings, and more programmatically.
Authentication
All API requests require a Bearer token. Generate API keys in Dashboard → Settings → API Keys.
curl -H "Authorization: Bearer mk_your_api_key" \ https://mahakala.app/api/v1/me
Rate Limits
100 requests per minute per API key. Exceeding returns 429.
GET /api/v1/me
Get authenticated user info
Response{ "user": { "id": "...", "email": "...", "name": "...", "timezone": "UTC" } }GET /api/v1/event-types
List your active event types
Response{ "eventTypes": [{ "id": "...", "title": "30min Call", "duration": 30, ... }] }GET /api/v1/event-types/:id/availability?date=YYYY-MM-DD
Get available time slots for a specific date
Response{ "date": "2026-02-15", "slots": [{ "start": "...", "end": "..." }] }POST /api/v1/bookings
Create a new booking
Request Body
Response{ "eventTypeId": "...", "guestName": "Jane", "guestEmail": "[email protected]", "startTime": "2026-02-15T10:00:00Z" }{ "booking": { "id": "...", "status": "CONFIRMED", ... } }GET /api/v1/bookings
List bookings. Query params: status, limit, offset
Response{ "bookings": [...], "limit": 50, "offset": 0 }GET /api/v1/bookings/:id
Get booking details
Response{ "booking": { "id": "...", ... } }DELETE /api/v1/bookings/:id
Cancel a booking
Response{ "booking": { "id": "...", "status": "CANCELLED" } }Webhooks
Configure webhooks in Dashboard → Settings → Webhooks. Events: booking.created, booking.cancelled, booking.rescheduled, poll.response_added. All payloads are signed with HMAC-SHA256 via X-Mahakala-Signature header.