Send the right text.
Know what happened.

Run SMS campaigns from a clear workspace, or send directly from your product with the Textly API. Follow every message from submission to delivery.

Campaigns API access Delivery reports
textly.
Campaigns / New campaign
T
CAMPAIGN DRAFTNew campaign

Set up your message before sending.

Campaign name
Order updates
Sender ID
Qipeo Labs Approved
Audience
Customers248 contacts
Message
Hi Amina, your order is on its way. We’ll keep you updated every step of the journey.
LIVE PREVIEW

Preview how your message appears to a recipient.

Illustrative product preview

One platform.
Two ways to send.

Give your team a clear place to run campaigns, and give your product a simple way to send its own messages.

Work from the dashboard.

Build campaigns, manage contacts and sender IDs, and follow delivery in one workspace.

Explore bulk SMS

Send from your software.

Use one focused API for updates, alerts, and messages triggered by your product.

Explore the SMS API
Make your name part of the message.Explore public and branded sender IDs.

From setup to sent,
without guesswork.

Textly gives your team a clear path to send a campaign and understand what happened afterward.

See the quickstart
01

Set up your workspace

Add your team, organize contacts, and choose an available or approved sender ID.

02

Send your message

Prepare a campaign in the dashboard or submit messages from your application through the API.

03

Follow delivery

See message status in your workspace and receive delivery events in your own system.

QueuedAcceptedDelivered

Built for messages
your product sends.

Send customer updates through a focused API. Use idempotency keys for safe retries and signed webhooks for delivery events.

One clear send request
Safe retries with idempotency
Delivery events back to your app
Send a messageHTTP
POST https://api.textly.co.ke/messages
Authorization: Bearer YOUR_API_KEY
Idempotency-Key: order-1042
Content-Type: application/json

{
  "senderId": "approved-sender-uuid",
  "messages": [{
    "recipient": "254712345678",
    "text": "Your order is on its way."
  }]
}
Delivery update receivedmessage.delivered · signed webhook

Example request and event shown for illustration.

Ready to send?

Start in your workspace to prepare a campaign. Building messaging into your software? The API guide has your first request.