Docs/Global Channels

Global Channels

Reach your users anywhere in the world through SMS, Email, Voice, and WhatsApp. One API, unified delivery, global coverage.

140+ Countries

Local phone numbers and direct carrier connections worldwide.

Unified API

Send via any channel with consistent request/response format.

Intelligent Routing

Automatic carrier selection for optimal delivery and cost.

Available Channels

Unified Messaging API

Send messages through any channel using the same API structure. Just specify the channel and recipient - Canary handles the rest.

POST/v1/messages
{
  "channel": "sms",
  "to": "+15551234567",
  "content": {
    "text": "Your order has shipped!"
  }
}

// Or send via email
{
  "channel": "email",
  "to": "user@example.com",
  "content": {
    "subject": "Order Shipped",
    "text": "Your order has shipped!",
    "html": "<p>Your order has shipped!</p>"
  }
}

// Or send via WhatsApp
{
  "channel": "whatsapp",
  "to": "+15551234567",
  "content": {
    "template": "order_shipped",
    "parameters": ["ORD-12345"]
  }
}

Multi-Channel Delivery

Reach Users on Their Preferred Channel

Send the same message across multiple channels simultaneously, or configure intelligent fallbacks to maximize delivery rates.

POST/v1/messages/multi
{
  "recipient": {
    "phone": "+15551234567",
    "email": "user@example.com"
  },
  "channels": ["sms", "email"],
  "content": {
    "text": "Your order #12345 has shipped!"
  }
}

// Or with channel fallbacks
{
  "recipient": {
    "phone": "+15551234567"
  },
  "channels": ["whatsapp"],
  "fallback_channels": ["sms", "voice"],
  "fallback_delay": 60,
  "content": {
    "text": "Your verification code is 123456"
  }
}

Regional Coverage

Canary maintains direct carrier connections and local infrastructure across all major regions for reliable, low-latency delivery.

North America

Full coverage

United States, Canada, Mexico

Europe

Full coverage

UK, Germany, France, Spain, Italy, +30 more

Asia Pacific

Full coverage

Japan, Australia, Singapore, India, +20 more

Latin America

Full coverage

Brazil, Argentina, Chile, Colombia, +15 more

Middle East

Partial coverage

UAE, Saudi Arabia, Israel, +10 more

Africa

Partial coverage

South Africa, Nigeria, Kenya, Egypt, +20 more

Number Provisioning

Provision local phone numbers in any supported country directly through the API. Numbers are activated instantly and support SMS, MMS, and Voice capabilities.

Search Available Numbers

GET/v1/phone-numbers/available
// Search for US numbers in the 415 area code
GET /v1/phone-numbers/available?country=US&area_code=415

// Response
{
  "data": [
    {
      "phone_number": "+14155551234",
      "country": "US",
      "region": "CA",
      "capabilities": ["sms", "mms", "voice"],
      "monthly_cost": 1.00,
      "setup_cost": 0.00
    },
    {
      "phone_number": "+14155555678",
      "country": "US",
      "region": "CA",
      "capabilities": ["sms", "mms", "voice"],
      "monthly_cost": 1.00,
      "setup_cost": 0.00
    }
  ]
}

Purchase a Number

POST/v1/phone-numbers
{
  "phone_number": "+14155551234",
  "friendly_name": "Marketing SMS",
  "sms_webhook_url": "https://yourapp.com/webhooks/sms",
  "voice_webhook_url": "https://yourapp.com/webhooks/voice"
}

Delivery Webhooks

Receive real-time delivery status updates for all channels via webhooks. All webhook payloads follow a consistent format regardless of channel.

// Webhook payload
{
  "event": "message.delivered",
  "message_id": "msg_abc123xyz",
  "channel": "sms",
  "to": "+15551234567",
  "status": "delivered",
  "delivered_at": "2024-01-01T12:00:30Z",
  "metadata": {
    "campaign_id": "camp_xyz"
  }
}

Channel Availability by Region

RegionSMSEmailVoiceWhatsApp
North America
Europe
Asia Pacific
Latin America
Middle East
Africa

Full coverage   Partial coverage

Explore Channels