Everything you need to send SMS in Canada

A full-featured SMS API designed around Canadian regulations. Explore every capability.

SMS Sending

Outbound SMS

Send to any Canadian mobile number in E.164 format.

Inbound SMS

Receive inbound messages via webhook. Reply-to threading included.

Test mode

Validate messages without sending. Free, unlimited test messages.

Idempotency keys

Prevent duplicate sends with per-request idempotency headers.

Delivery receipts

Real-time status: queued → sent → delivered or failed.

Message history

Search and filter sent messages by date, number, or status.

Phone Numbers

Number search

Search available Canadian numbers by area code or province.

Instant provisioning

Provision a number via API in seconds. Active immediately.

Number release

Release numbers you no longer need. Billing stops immediately.

Canadian only

Only Canadian area codes accepted. All 60+ NPA codes validated.

Multi-number accounts

Provision as many numbers as your plan allows.

Toll-free numbers

1-800 and 1-8XX Canadian toll-free numbers available.

CASL & Compliance

Consent tracking

Record express and implied consent with full audit trail.

Auto opt-out

STOP/STOPALL/UNSUBSCRIBE/QUIT/END/CANCEL keywords processed automatically.

Consent expiry

Implied consent auto-expires after 2 years per CASL §10(9).

DNCL checking

CRTC Do Not Call List checked before every telemarketing send.

HTTP 451 blocks

Non-compliant sends rejected with legally appropriate status code.

Right to erasure

Wipe all PII for a phone number via a single API call.

Webhooks

Event subscriptions

Subscribe to: message.sent, message.delivered, message.failed, message.received, opt_out.created.

HMAC signatures

Every webhook payload is signed with your account secret. Verify authenticity.

Retry logic

Failed webhook deliveries are retried with exponential backoff.

Multiple endpoints

Register multiple webhook URLs per event type.

Delivery logs

Inspect all webhook delivery attempts in your dashboard.

Test webhooks

Trigger test events from your dashboard.

Authentication & Security

API key types

Live keys (mk_live_...) and test keys (mk_test_...) per account.

Scoped keys

Issue send-only, read-only, or admin-scoped keys.

Key rotation

Rotate or revoke keys anytime without downtime.

Rate limiting

Per-account rate limits with sliding window algorithm.

Audit log

Every key action and compliance event is logged immutably.

Canadian data residency

All auth data stored in ca-central-1. Never leaves Canada.

Developer Experience

OpenAPI spec

Full OpenAPI 3.1 spec available for code generation.

Bilingual errors

All error messages returned in EN and FR (Accept-Language).

Structured errors

Consistent error format with code, message, and details fields.

Swagger UI

Interactive API explorer at /v1/docs (dev mode).

Idiomatic REST

Standard HTTP methods, status codes, and pagination.

curl-friendly

Designed to be simple enough to test with curl and a Bearer token.

Ready to start building?

Sign up free. Full test mode. No credit card required.

Get started