textly.
Documentation menu

Quickstart

Go from a new Textly account to your first API send in a few practical steps.

Before you send

Your account needs an approved sender ID and available wallet funds. For a new setup, an operations administrator must approve the sender and credit the wallet.

1. Create an account

Create your organization through the customer dashboard or call POST /auth/register. The response includes a session token for account setup.

POST /auth/register
Content-Type: application/json

{
  "organizationName": "Acme Stores",
  "email": "owner@acme.example",
  "password": "a-unique-password-of-12-or-more-characters"
}

2. Get an approved sender ID

List available sender IDs with GET /senders. To request one for your business, submit POST /senders with a value of up to 11 letters or digits. A pending sender cannot be used until approved.

POST /senders
Authorization: Bearer YOUR_SESSION_TOKEN
Content-Type: application/json

{ "value": "ACMESTORE" }

3. Create an API key

Use your owner session to create a key. Save the raw key when it appears: Textly stores only its hash and cannot show it again.

POST /api-keys
Authorization: Bearer YOUR_SESSION_TOKEN
Content-Type: application/json

{ "name": "Production integration" }

4. Send a message

Send an array of 1–1000 messages to POST /messages. Use the UUID of an approved sender and a new Idempotency-Key for each campaign or send request.

POST /messages
Authorization: Bearer YOUR_API_KEY
Idempotency-Key: acme-order-10482
Content-Type: application/json

{
  "senderId": "YOUR_APPROVED_SENDER_UUID",
  "messages": [
    { "recipient": "0712345678", "text": "Your order is on its way." }
  ]
}

The response includes a request ID, reserved total, and a message ID for each recipient. A queued response means Textly accepted the request for processing; it does not mean the phone has received the SMS.

5. Check delivery

Poll GET /messages/:id or configure a delivery webhook. An upstream timeout may leave a message in unknown state while operations reconcile it; avoid submitting that message again with a new key until the outcome is known.