# Textbelt API — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orth.sh/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)

Textbelt is an SMS API that is built for developers who just want to send and receive SMS.  Sending an SMS is a simple thing.  Our goal is to provide an API that is correspondingly simple, without requiring account configuration, logins, or extra recurring billing.

**Verified:** no

## Access

**Run API:** `POST https://api.orth.sh/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Status

Checking SMS delivery status

`GET /status/{id}`

**Cost:** Free

**Docs:** https://docs.textbelt.com/other-api-endpoints

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"textbelt","path":"/status/{id}","method":"GET"}'
```

### Send an SMS

Send an SMS using HTTP POST.
Note: No Urls in text message.
Max 800 characters

`POST /text`

**Estimated cost:** $0.025

**Docs:** https://docs.textbelt.com

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `phone` | string | Yes | A phone number.  If you're in the U.S. or Canada, you can just send a normal 10-digit phone number with area code.  Outside the U.S., it is best to send the phone number in E.164 format with your country code. |
| `message` | string | Yes | The content of your SMS. |
| `sender` | string | No | Optionally, the name of the business/organization you represent.  This field is for regulatory purposes and is not visible to the end user in most countries. If not set, sender will default to your account-wide sender name. |
| `replyWebhookUrl` | string | No | U.S. phone numbers only: Textbelt lets you receive replies to SMS you've sent. Replies are sent by webhook, meaning you will have to set up an HTTP or HTTPS route on your website that will process inbound SMS.This will send an SMS.  If the recipient responds, Textbelt will send an HTTP POST request to the specified endpoint (in this case, https://my.site/api/handleSmsReply).  The webhook payload is application/json encoded.  Your server must interpret it like any other HTTP POST request with a JSON payload.  The JSON payload contains the following:  textId: The ID of the original text that began the conversation.  fromNumber:  The phone number of the user that sent the reply (you can use this, for example, to send them a response depending on their reply).  text: The content of their reply. Here's an example payload:  {   "textId": "123456",   "fromNumber": "+1555123456",   "text": "Here is my reply" } |
| `webhookData` | string | No | Endpoint supports a webhookData field.  This data is passed as data in the webhook request. There is a maximum length of 100 characters in the webhookData field. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"textbelt","path":"/text","body":{"phone":"<string>","message":"<string>","sender":"<string>","replyWebhookUrl":"<string>","webhookData":"<string>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/textbelt
