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
HonkIO