# Batler SMS > Batler SMS is an Israeli SMS/OTP platform with a REST/JSON API (v1). Auth: `Authorization: Bearer bm_live_…` (or `bm_test_…` for test mode: validated, never sent, never charged). Send POSTs require an `Idempotency-Key` header. Phones are accepted as 05XXXXXXXX / +972… and returned in E.164. 1 SMS segment = 1 credit (Hebrew: 70 chars single, 67 per segment). Errors are `{ error: { code, message, details } }`. Delivery and other events arrive by webhooks signed with `X-Batler-Signature: t=,v1=`. Official Node SDK: `@batler/sms`. - OpenAPI 3.1: https://smsprovider-web.vercel.app/openapi.json - Full documentation in one file: https://smsprovider-web.vercel.app/llms-full.txt ## Guides - [First SMS in 5 minutes](https://smsprovider-web.vercel.app/docs/quickstart.md): From API key to a delivered message - [Test mode](https://smsprovider-web.vercel.app/docs/test-mode.md): Build without sending or paying - [One-time passcodes](https://smsprovider-web.vercel.app/docs/otp.md): Send and verify codes by SMS - [Campaigns and lists](https://smsprovider-web.vercel.app/docs/campaigns.md): Lists, dynamic fields, links and unsubscribe - [Webhooks](https://smsprovider-web.vercel.app/docs/webhooks.md): Real-time events and signature verification - [Make.com](https://smsprovider-web.vercel.app/docs/make.md): Send and receive events in scenarios - [SDK, MCP and AI agents](https://smsprovider-web.vercel.app/docs/ai.md): Node library, MCP server and machine-readable docs - [Errors and rate limits](https://smsprovider-web.vercel.app/docs/errors.md): Error codes, failure reasons and limits - [Phones and segments](https://smsprovider-web.vercel.app/docs/phones-segments.md): Formats, encoding and billing - [Changelog](https://smsprovider-web.vercel.app/docs/changelog.md): API changes ## API reference - [POST /messages — Send an SMS](https://smsprovider-web.vercel.app/docs/api/send-message.md) - [POST /messages/batch — Send a batch of different messages](https://smsprovider-web.vercel.app/docs/api/send-batch.md) - [GET /messages — List messages](https://smsprovider-web.vercel.app/docs/api/list-messages.md) - [GET /messages/{id} — Get a message](https://smsprovider-web.vercel.app/docs/api/get-message.md) - [POST /campaigns — Send a campaign to a list](https://smsprovider-web.vercel.app/docs/api/create-campaign.md) - [GET /campaigns — List campaigns](https://smsprovider-web.vercel.app/docs/api/list-campaigns.md) - [GET /campaigns/{id} — Get a campaign](https://smsprovider-web.vercel.app/docs/api/get-campaign.md) - [POST /campaigns/{id}/cancel — Cancel a scheduled campaign](https://smsprovider-web.vercel.app/docs/api/cancel-campaign.md) - [GET /campaigns/{id}/clicks — Campaign clicks](https://smsprovider-web.vercel.app/docs/api/campaign-clicks.md) - [POST /otp/send — Send a verification code](https://smsprovider-web.vercel.app/docs/api/otp-send.md) - [POST /otp/verify — Verify a code](https://smsprovider-web.vercel.app/docs/api/otp-verify.md) - [GET /lists — List contact lists](https://smsprovider-web.vercel.app/docs/api/list-lists.md) - [POST /lists — Create a list](https://smsprovider-web.vercel.app/docs/api/create-list.md) - [DELETE /lists/{id} — Delete a list](https://smsprovider-web.vercel.app/docs/api/delete-list.md) - [GET /lists/{id}/contacts — List contacts](https://smsprovider-web.vercel.app/docs/api/list-contacts.md) - [POST /lists/{id}/contacts — Add contacts](https://smsprovider-web.vercel.app/docs/api/add-contacts.md) - [DELETE /lists/{id}/contacts — Remove contacts](https://smsprovider-web.vercel.app/docs/api/remove-contacts.md) - [GET /blacklist — List blacklist](https://smsprovider-web.vercel.app/docs/api/list-blacklist.md) - [POST /blacklist — Add to blacklist](https://smsprovider-web.vercel.app/docs/api/add-blacklist.md) - [DELETE /blacklist — Remove from blacklist](https://smsprovider-web.vercel.app/docs/api/remove-blacklist.md) - [GET /inbound — List inbound messages](https://smsprovider-web.vercel.app/docs/api/list-inbound.md) - [GET /senders — List sender names](https://smsprovider-web.vercel.app/docs/api/list-senders.md) - [POST /senders — Look up a sender name](https://smsprovider-web.vercel.app/docs/api/create-sender.md) - [GET /account/balance — Get balance](https://smsprovider-web.vercel.app/docs/api/get-balance.md) - [GET /account/usage — Get usage](https://smsprovider-web.vercel.app/docs/api/get-usage.md) - [GET /webhooks — List webhook endpoints](https://smsprovider-web.vercel.app/docs/api/list-webhooks.md) - [POST /webhooks — Create a webhook endpoint](https://smsprovider-web.vercel.app/docs/api/create-webhook.md) - [DELETE /webhooks/{id} — Delete a webhook endpoint](https://smsprovider-web.vercel.app/docs/api/delete-webhook.md) - [GET /webhooks/{id}/deliveries — List deliveries](https://smsprovider-web.vercel.app/docs/api/list-deliveries.md) - [POST /webhooks/{id}/deliveries/{delivery_id}/replay — Replay a delivery](https://smsprovider-web.vercel.app/docs/api/replay-delivery.md) - [GET /pricing/quote — Price quote by volume](https://smsprovider-web.vercel.app/docs/api/pricing-quote.md)