Migration guide

How to migrate from SlickText to Bird

A developer-focused guide to moving from SlickText to Bird: channel and compliance differences, request-format mapping, and a step-by-step migration checklist.

SlickText is a US and Canada SMS, MMS, and RCS marketing platform built around mass-texting campaigns, automation, and two-way conversations over a REST API. Bird (formerly MessageBird) is a communications infrastructure platform exposing unified REST and SMTP APIs for SMS, WhatsApp, voice, and email. On the messaging.dev Score, SlickText rates 38/100 and Bird 76/100; this guide maps the concrete changes you will hit moving between them.

What you gain and what you lose

Channels. Both platforms send SMS. Moving to Bird you gain WhatsApp, voice, and email. You lose MMS and RCS, which SlickText supports but Bird (per our dataset) does not.

Compliance. SlickText carries SOC 2 and HIPAA. Bird carries both of those and adds GDPR and ISO 27001, so you keep every certification you had and gain two.

Data residency. SlickText runs on US servers only with no region choice. Bird offers both US and EU servers with a data-residency choice.

Pricing and free credit. SlickText uses monthly subscription plans with a fixed pool of rollover message credits (from $29/month for 500 credits, roughly $0.058 per SMS credit, US/Canada) and no free developer credit. Bird is usage-based with no platform or seat fees ($0.0073 per US SMS, carrier fees extra) and includes a free email tier of 1,000 messages/month.

Tooling. SlickText ships no official SDKs, has no sandbox, and its docs are rated medium. Bird ships TypeScript, Python, and Go SDKs, provides a sandbox, and its docs are rated high. Both support self-onboarding and a REST API; Bird adds SMTP. See the full Bird vs SlickText comparison for the side-by-side.

How the request format differs

SlickText:

curl -X POST https://dev.slicktext.com/v1/brands/BRAND_ID/campaigns/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Send From API",
    "body": "Welcome to ACME",
    "status": "send",
    "audience": { "contact_lists": [21] }
  }'

Bird:

curl -X POST "https://us1.platform.bird.com/v1/sms/messages" \
  -H "Authorization: Bearer bk_us1_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155550100",
    "from": "Bird",
    "text": "Your Bird verification code is 481920. It expires in 10 minutes.",
    "category": "authentication"
  }'

Endpoint. SlickText posts to a brand- and campaign-scoped path (/v1/brands/{brand_id}/campaigns/) on dev.slicktext.com, with the brand ID in the URL. Bird posts to a message endpoint (/v1/sms/messages) on a regional host (us1.platform.bird.com).

Authentication. Both use a Bearer token in the Authorization header. SlickText’s token comes from the dashboard under Settings > API & Webhooks > API Keys. Bird’s key is region-prefixed (bk_us1_... / bk_eu1_...); the prefix encodes the regional host, and the SDKs route to it automatically, so pick the prefix that matches your data region.

Payload mapping. SlickText’s body is campaign-shaped: a name, the message in body, a status of "send", and an audience.contact_lists array of saved list IDs, with no explicit recipient number or sender in the call. Bird’s body is message-shaped: an explicit to (E.164 recipient), a from sender ID, the message in text, and a category. Map body to text; replace audience.contact_lists with an explicit to per recipient; supply from yourself. SlickText’s name and status have no Bird equivalent, and category is Bird-specific.

Migration checklist

  1. Create a Bird account and generate a region-prefixed API key (bk_us1_ or bk_eu1_) matching your chosen data region.
  2. Map the fields: body to text, contact-list audiences to explicit to recipients, and add from and category.
  3. Re-point your sending code to https://{region}.platform.bird.com/v1/sms/messages and swap in the new Bearer token.
  4. Re-test in Bird’s sandbox before sending live traffic. Bird provides one; SlickText did not. For a walkthrough, see how to start with Bird.
  5. Recreate your webhooks and delivery callbacks on Bird and update the URLs your app listens on.
  6. Run both providers in parallel and compare delivery on a sample of real traffic.
  7. Cut over to Bird, then decommission SlickText. Consider adopting an official SDK for retries and typed errors.

Watch out for

  • You lose MMS and RCS. SlickText supports both; Bird’s entry lists neither, so picture messaging and RCS flows will not carry over.
  • The free tier is email-only (1,000/month). There is no free SMS or WhatsApp credit for testing those channels; expect metered charges from the first message.
  • Pricing flips from a fixed monthly credit pool with rollover to pure usage-based per-message billing, with carrier fees on top of the $0.0073 US SMS rate. Model your volumes before switching.
  • The sending model changes from campaigns-to-saved-lists to per-recipient messages, so you manage recipient targeting in your own code rather than referencing SlickText contact lists.