Providers
Twilio
.UseTwilio("twilio", o =>
{
o.AccountSid = "ACxxxxxxxx";
o.AuthToken = "xxxxxxxx";
o.From = "+15551234567";
o.StatusCallbackUrl = "https://example.com/webhooks/twilio"; // optional
})
Uses the Twilio REST API directly. No official Twilio SDK dependency.
Vonage
.UseVonage("vonage", o =>
{
o.ApiKey = "xxxxxxxx";
o.ApiSecret = "xxxxxxxx";
o.From = "MyApp";
})
Uses the Vonage SMS API v1 directly. No official Vonage SDK dependency.
Sinch
.UseSinch("sinch", o =>
{
o.ServicePlanId = "xxxxxxxx";
o.ApiToken = "xxxxxxxx";
o.From = "+15551234567";
o.BaseUrl = "https://us.sms.api.sinch.com";
o.CallbackUrl = "https://example.com/webhooks/sinch"; // optional
})
Uses the Sinch SMS REST API directly. No official Sinch SDK dependency.
Plivo
.UsePlivo("plivo", o =>
{
o.AuthId = "MAXXXXXXXX";
o.AuthToken = "xxxxxxxx";
o.From = "+15551234567";
o.CallbackUrl = "https://example.com/webhooks/plivo"; // optional
})
Uses the Plivo SMS REST API directly. No official Plivo SDK dependency.
Telnyx
.UseTelnyx("telnyx", o =>
{
o.ApiKey = "KEYxxxxxxxx";
o.From = "+15551234567";
})
Uses the Telnyx messaging REST API directly. No official Telnyx SDK dependency. Telnyx delivery webhooks are configured on the Messaging Profile rather than per message.
MessageBird
.UseMessageBird("messagebird", o =>
{
o.AccessKey = "live_xxxxxxxx";
o.From = "MyApp";
})
Uses the MessageBird SMS API directly with AccessKey authentication. SMSBridge
submits URL-encoded message fields and requests automatic GSM/Unicode data coding.
Infobip
.UseInfobip("infobip", o =>
{
o.ApiKey = "your-api-key";
o.BaseUrl = "https://xxxxx.api.infobip.com";
o.From = "MyApp";
})
Uses Infobip’s current SMS API v3 endpoint with App API-key authentication.
The base URL is account-specific and must be an absolute HTTPS URL.
Termii
.UseTermii("termii", o =>
{
o.ApiKey = "your-api-key";
o.From = "MyApp";
o.Channel = "generic"; // optional, defaults to generic
o.BaseUrl = "https://api.ng.termii.com"; // optional regional/account base URL
})
Uses Termii’s Messaging API with JSON request bodies. SMSBridge submits the
documented api_key, to, from, sms, type, and channel fields.
type defaults to plain; channel defaults to generic and can be
overridden per message through metadata.
SmartSMSSolutions
.UseSmartSms("smart-sms", o =>
{
o.Token = "your-token";
o.From = "SmsBridge";
})
Uses SmartSMSSolutions’ API-x SMS endpoint with POST form data. SMSBridge
submits the documented token, sender, to, message, type, routing,
and ref_id fields. type defaults to 0, routing defaults to 3, and
ref_id, simserver_token, dlr_timeout, and schedule can be supplied
through message metadata.
Africa’s Talking
.UseAfricasTalking("africas-talking", o =>
{
o.Username = "your-username";
o.ApiKey = "your-api-key";
o.From = "SmsBridge"; // optional
});
Uses Africa’s Talking’s legacy bulk SMS endpoint with POST form data.
SMSBridge submits the documented username, to, message, and optional
from fields, authenticates with the apiKey request header, and supports
bulkSMSMode, enqueue, keyword, linkId, and retryDurationInHours
through message metadata.