> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Choosing a Sender Type

> Compare long codes, toll-free, short codes, RCS, and alphanumeric sender IDs to find the best messaging channel for your business.

## Interactive Product Selector

Answer a few quick questions to get a personalized recommendation:

Interactive sender-type selector (web only). Use the decision guidance in the sections below to choose between long code, toll-free, and short code senders.

<Info>This is a high-level recommendation. Contact [Telnyx Sales](https://telnyx.com/contact-us) for detailed guidance on complex use cases.</Info>

***

## Use Case Decision Tree

Not sure which sender type fits? Start with your primary use case:

<AccordionGroup>
  <Accordion title="🔔 Transactional alerts (OTPs, order updates, appointment reminders)">
    **Best options:**

    * **Toll-free** — Fast provisioning (2–3 days), high throughput, handset-level delivery receipts. Ideal for US/CA transactional messaging.
    * **10DLC long code** — Good alternative if you want a local presence. Requires brand + campaign registration (2–3 business days).
    * **Short code** — Best for very high volume (200+ MPS). Longer provisioning (2–6 weeks) and higher cost.

    <Tip>For OTP/2FA specifically, see our [Two-Factor Authentication guide](/docs/messaging/messages/2fa).</Tip>
  </Accordion>

  <Accordion title="📢 Marketing & promotional campaigns">
    **Best options:**

    * **10DLC long code** — Required for A2P marketing in the US. Register your brand and campaign through [10DLC registration](/docs/messaging/10dlc/quickstart).
    * **Toll-free** — Good for mixed marketing + transactional. Requires [toll-free verification](/docs/messaging/toll-free-verification).
    * **Short code** — Premium option for brand recognition and highest throughput.
    * **RCS** — Rich media cards, carousels, and suggested actions for supported devices.
  </Accordion>

  <Accordion title="💬 Conversational / two-way messaging">
    **Best options:**

    * **10DLC long code** — Local number feel, supports voice + SMS on the same number.
    * **Toll-free** — Works well for two-way if local presence isn't important.
    * **RCS** — Rich interactive experience with read receipts, typing indicators, and suggested replies.

    <Warning>Alphanumeric sender IDs are **one-way only** — recipients cannot reply.</Warning>
  </Accordion>

  <Accordion title="🌍 International messaging">
    **Best options:**

    * **Alphanumeric sender ID** — Supported in 100+ countries. No number procurement needed. Great for brand recognition internationally.
    * **Local long codes** — Required in some countries. Use the coverage checker below for availability.

    <Tip>US toll-free and short code numbers only work for US/CA destinations. For international, use alphanumeric IDs or local numbers.</Tip>
  </Accordion>

  <Accordion title="📱 Rich media experiences (images, buttons, carousels)">
    **Best options:**

    * **RCS** — Full rich media support: images, video, carousels, suggested actions, branded sender profiles.
    * **MMS via long code/toll-free** — Image and video support for US/CA only.

    See our [RCS Getting Started guide](/docs/messaging/messages/rcs-getting-started) for details.
  </Accordion>
</AccordionGroup>

***

## Sender Comparison

### Capabilities at a Glance

| | **10DLC Long Code** | **Toll-Free** | **Short Code** | **RCS** | **Alphanumeric** |
| - | - | - | - | - | - |
| **Brand Recognition** | Local number | Brand | Brand | Brand (verified) | Brand name |
| **Throughput** | 3–75 MPS\* | 3–150 MPS | 200+ MPS | 100+ MPS | 100+ MPS |
| **Daily Volume Limits** | 10K–200K (T-Mobile)\*\* | Unlimited | Unlimited | Unlimited | Unlimited |
| **Two-Way Messaging** | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No |
| **Voice Support** | ✅ Yes | ✅ Yes | ❌ No | ❌ No | ❌ No |
| **Delivery Receipts** | Carrier only | Handset | Handset | Handset | Handset |
| **MMS Support** | US/CA only | US/CA only | US/CA only | Rich media | ❌ No |
| **Opt-Out Management** | Telnyx managed | Network managed | Telnyx managed | Telnyx managed | N/A |

<sub>\* Throughput varies based on TCR Trust Score. \*\* T-Mobile daily limits based on TCR brand score; can be increased upon request.</sub>

### Registration & Cost Comparison

Understanding the time and cost investment for each sender type helps you plan your launch:

| | **10DLC Long Code** | **Toll-Free** | **Short Code** | **RCS** | **Alphanumeric** |
| - | - | - | - | - | - |
| **Provisioning Time** | 2–3 business days | 2–3 business days | 2–6 weeks | 6–10 weeks | Instant |
| **Registration Required** | Brand + Campaign (TCR) | Toll-free verification | Carrier approval | Google verification | None |
| **Number Procurement Cost** | Low (\~\$1/mo) | Low (\~\$2/mo) | High (\~\$500–1000/mo) | Agent setup fee | Free |
| **Per-Message Cost** | Standard rates | Standard rates | Premium rates | Standard rates | Standard rates |
| **Renewal/Ongoing** | Annual brand vetting | One-time verification | Monthly lease | Ongoing | None |

<CardGroup cols={2}>
  <Card title="10DLC Registration" icon="mobile" href="/docs/messaging/10dlc/quickstart">
    Register your brand and campaign for US A2P messaging.
  </Card>

  <Card title="Toll-Free Verification" icon="phone" href="/docs/messaging/toll-free-verification">
    Verify your toll-free number for higher throughput.
  </Card>

  <Card title="Short Code Setup" icon="hashtag" href="/docs/messaging/messages/short-code">
    Apply for a dedicated short code.
  </Card>

  <Card title="RCS Getting Started" icon="message" href="/docs/messaging/messages/rcs-getting-started">
    Set up RCS business messaging with rich media.
  </Card>

  <Card title="Alphanumeric Sender ID" icon="font" href="/docs/messaging/messages/alphanumeric-sender-id">
    Send branded one-way messages internationally.
  </Card>

  <Card title="Hosted SMS" icon="server" href="/docs/messaging/messages/hosted-sms">
    Bring your existing numbers to Telnyx messaging.
  </Card>
</CardGroup>

***

## Check Coverage by Country

Sender type availability varies by country. Use the tool below to check which options are available for your destination:

Interactive per-country coverage lookup (web only).

### Key Regional Considerations

<Tabs>
  <Tab title="United States & Canada">
    * **10DLC** is required for A2P messaging to US mobile numbers (enforced by carriers since 2023)
    * **Toll-free** numbers work for both US and CA
    * **Short codes** are country-specific (US short codes don't work in CA and vice versa)
    * **MMS** is supported on long code, toll-free, and short code
    * **RCS** is available for Android users
  </Tab>

  <Tab title="Europe">
    * **Alphanumeric sender IDs** are widely supported and commonly used
    * Some countries require pre-registration of alphanumeric IDs (e.g., UK, France)
    * **Local long codes** may be required for two-way messaging
    * Short codes are available in select markets
    * GDPR compliance required for all messaging
  </Tab>

  <Tab title="Latin America">
    * **Alphanumeric sender IDs** supported in most countries
    * **Local long codes** recommended for better deliverability
    * Some carriers require pre-approved sender IDs or templates
    * WhatsApp is dominant — consider RCS as an alternative rich channel
  </Tab>

  <Tab title="Asia Pacific">
    * Regulations vary significantly by country
    * **India** requires DLT registration and approved templates
    * **Australia** supports alphanumeric IDs and local numbers
    * Some countries require local entity for number procurement
    * Check coverage tool above for specific country details
  </Tab>
</Tabs>

***

## Quick Start: Send Your First Message

Once you've chosen your sender type, sending a message uses the same API regardless of sender:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.telnyx.com/v2/messages \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "from": "+15551234567",
      "to": "+15559876543",
      "text": "Hello from Telnyx!"
    }'
  ```

  ```python Python theme={null}
  import telnyx

  telnyx.api_key = "YOUR_API_KEY"

  message = telnyx.Message.create(
      from_="+15551234567",
      to="+15559876543",
      text="Hello from Telnyx!"
  )
  print(message.id)
  ```

  ```javascript Node.js theme={null}
  const telnyx = require('telnyx')('YOUR_API_KEY');

  const message = await telnyx.messages.create({
    from: '+15551234567',
    to: '+15559876543',
    text: 'Hello from Telnyx!'
  });
  console.log(message.data.id);
  ```

  ```ruby Ruby theme={null}
  require 'telnyx'

  Telnyx.api_key = 'YOUR_API_KEY'

  message = Telnyx::Message.create(
    from: '+15551234567',
    to: '+15559876543',
    text: 'Hello from Telnyx!'
  )
  puts message.id
  ```

  ```java Java theme={null}
  import com.telnyx.sdk.*;
  import com.telnyx.sdk.api.MessagesApi;
  import com.telnyx.sdk.model.CreateMessageRequest;

  ApiClient client = Configuration.getDefaultApiClient();
  client.setApiKey("YOUR_API_KEY");

  MessagesApi api = new MessagesApi(client);
  CreateMessageRequest request = new CreateMessageRequest()
      .from("+15551234567")
      .to("+15559876543")
      .text("Hello from Telnyx!");

  api.createMessage(request);
  ```

  ```csharp .NET theme={null}
  using Telnyx;

  TelnyxConfiguration.SetApiKey("YOUR_API_KEY");

  var service = new MessagingSenderIdService();
  var message = service.CreateMessage(new NewMessage
  {
      From = "+15551234567",
      To = "+15559876543",
      Text = "Hello from Telnyx!"
  });
  Console.WriteLine(message.Id);
  ```

  ```php PHP theme={null}
  require 'vendor/autoload.php';

  $telnyx = new \Telnyx\TelnyxClient('YOUR_API_KEY');

  $message = $telnyx->messages->create([
      'from' => '+15551234567',
      'to' => '+15559876543',
      'text' => 'Hello from Telnyx!'
  ]);
  echo $message->id;
  ```

  ```go Go theme={null}
  package main

  import (
      "context"
      "fmt"
      telnyx "github.com/telnyx/telnyx-go"
  )

  func main() {
      client := telnyx.NewClient("YOUR_API_KEY")

      message, err := client.Messages.Create(context.Background(),
          &telnyx.MessageParams{
              From: "+15551234567",
              To:   "+15559876543",
              Text: "Hello from Telnyx!",
          },
      )
      if err != nil {
          panic(err)
      }
      fmt.Println(message.ID)
  }
  ```
</CodeGroup>

<Tip>
  The `from` field determines your sender type automatically:

  * **Phone number** (`+15551234567`) → Long code or toll-free
  * **Short code** (`12345`) → Short code
  * **Alphanumeric** (`"MyBrand"`) → Alphanumeric sender ID

  You can also use a [Messaging Profile](/docs/messaging/messages/configuration-and-usage) to let Telnyx select the best sender from your number pool.
</Tip>

***

## Next Steps

<CardGroup cols={3}>
  <Card title="Send a Message" icon="paper-plane" href="/docs/messaging/messages/send-message">
    Complete guide to sending your first SMS/MMS.
  </Card>

  <Card title="Messaging Profiles" icon="sliders" href="/docs/messaging/messages/configuration-and-usage">
    Configure number pools, webhooks, and features.
  </Card>

  <Card title="10DLC Rate Limits" icon="gauge-high" href="/docs/messaging/10dlc/10dlc-rate-limits">
    Understand throughput tiers and daily caps.
  </Card>
</CardGroup>
