# Sendai Docs > Guides and endpoint reference for the Sendai messaging API — send SMS one at a time or in bulk, verify webhooks, and connect AI agents over MCP. ## Guides - [Quickstart](https://docs.sendai.co.zw/guides/quickstart.md): Send your first SMS with the Sendai API — confirm your sender ID, get an API key, POST a message, and poll it until the carrier confirms delivery. - [Authentication](https://docs.sendai.co.zw/guides/authentication.md): Authenticate to the Sendai SMS API with an API key sent as a bearer token — how to create one, keep it secret, rotate it, and revoke it. - [Bulk SMS](https://docs.sendai.co.zw/guides/bulk-sms.md): Send one SMS body to a list of recipients in a single call with POST /api/v1/sms/bulk, and track each recipient's message individually. - [Webhooks](https://docs.sendai.co.zw/guides/webhooks.md): Have Sendai call your endpoint when a message is delivered or fails — signed with HMAC-SHA256 so you can prove every delivery came from us. - [AI agents (MCP)](https://docs.sendai.co.zw/guides/mcp.md): Connect Claude, Cursor, or any MCP client to your Sendai account — six tools over hosted HTTP, authenticated with your API key, nothing to install. ## API reference - [API overview](https://docs.sendai.co.zw/api.md): Base URLs, authentication, the two response conventions, error shapes, and how billing and delivery actually work — read this before writing a client. - [SMS](https://docs.sendai.co.zw/api/sms.md): The message resource — every attribute of the message object, then the three operations on it, send, retrieve, and bulk send. - [API tokens](https://docs.sendai.co.zw/api/api-tokens.md): Create, list, and revoke the API keys that authenticate every request. The key secret is returned once, at creation, and never again. - [Balances](https://docs.sendai.co.zw/api/balances.md): Read your prepaid wallet balances programmatically — one row per currency, in the same ten-thousandths unit as charge. - [Sender IDs](https://docs.sendai.co.zw/api/sender-ids.md): List the sender identities on your account and learn which values a send accepts as from — no more guessing why a sender was rejected.