ApiSquare is a full-stack appointment booking system that lets your clients reserve sessions through a Telegram chatbot while giving you a modern admin dashboard to manage professionals, services, schedules, and reservations — all backed by Vercel KV for production-grade persistence.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/shadownrx/apisquare/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Deploy ApiSquare in minutes with your Telegram bot token and Vercel KV credentials.
Environment Variables
All required and optional environment variables explained in one place.
Telegram Bot
Learn how the conversational booking flow works and how to configure your bot.
Admin Dashboard
Manage reservations, professionals, services, and holidays from the web UI.
API Reference
Full documentation for every HTTP endpoint, including auth, request bodies, and responses.
Deployment
Step-by-step guide to deploying on Vercel with KV storage and webhook registration.
How ApiSquare Works
ApiSquare has two main surfaces that work together:Telegram Bot (End Users)
Clients open Telegram, type
/start, and interactively pick a professional, service, date, and time. The bot checks availability in real time and confirms the booking.Admin Dashboard (Operators)
Operators log in at
/admin, view upcoming appointments, delete cancelled ones, and configure the professionals’ weekly schedules, services, prices, and public holidays.Get Up and Running
Set environment variables
Create
.env.local at the project root and populate your TELEGRAM_TOKEN, ADMIN_PASSWORD, and Vercel KV credentials (KV_REST_API_URL, KV_REST_API_TOKEN). See Environment Variables for the full list.Register the Telegram webhook
After deploying to Vercel, run
node setup-webhook.js https://your-app.vercel.app/api/webhook to point Telegram at your deployment.ApiSquare stores all reservations in Vercel KV (Redis-compatible) in production. When running locally without KV credentials, it transparently falls back to in-memory storage so you can develop without any external dependencies.