Everything you need to send SMS in Canada — compliantly
Honk.IO is a REST API purpose-built for Canadian legislation. CASL, DNCL, PIPEDA, and data residency are enforced at the infrastructure level — not bolted on.
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. 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.
Canadian 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.
Short codes
Short code (5-6 digit) campaigns available on request.
CASL Consent Management
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 & Delivery Receipts
Event subscriptions
Subscribe to: message.queued, message.sending, message.sent, message.delivered, message.failed, message.undelivered, message.received, opt_out.recorded, opt_out.reinstated.
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 revocation
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 Canada. Never leaves Canadian jurisdiction.
Developer-First REST API
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.
Phone Number Verification (OTP)
OTP via SMS
Send a one-time code to any Canadian number. Configurable 4–8 digit length.
Check endpoint
Submit the code to confirm — returns verified status and attempts remaining.
Expiry & attempt limits
Codes expire after 10 minutes. Configurable max attempts before lockout.
Test mode support
In test mode the code is always zeros (e.g. 000000). No SMS sent.
Audit trail
All verification requests and outcomes logged immutably.
Simple two-step API
POST /verify to start, POST /verify/{id}/check to confirm. That’s it.
Start sending compliant SMS in Canada
No credit card required.
Create free account
Honk.IO