Skip to content

The API is a clean REST + JSON interface, so it works from any language with an HTTP client. Every endpoint page in these docs includes ready-to-paste examples in eight languages:

Language HTTP client used in examples
cURL —
Node.js Built-in fetch (Node 18+)
Python requests
PHP curl extension
Ruby net/http (stdlib)
Java java.net.http.HttpClient (Java 11+)
Go net/http (stdlib)
.NET HttpClient (C#)

Pick your language once in any code block — the choice follows you across the entire site.

Send a message:

Terminal window
curl -X POST https://restlink23telecom.com/api/v1/sms/send \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": [
"+14155551234"
],
"message": "Your verification code is 847291",
"sender_id": "MyApp"
}'

Check its status:

Terminal window
curl https://restlink23telecom.com/api/v1/sms/status/api_42_1743667200123456789_a3f8b2c1d9e45f67 \
-H "X-API-Key: $API_KEY"

For webhook receivers in Python, Node.js and PHP, see the delivery webhook examples.

The maintained source packages currently have these identities:

Package Language Source version Send methods
@23telecom/sms TypeScript 0.1.0 send, sendIndividual
telecom23 Python 0.1.0 send, send_individual
23telecom/sms PHP Source package sendSms, sendIndividual

The TypeScript source version is 0.1.0; the Python source is also 0.1.0.

These SDKs are not yet published to npm, PyPI or Packagist; install commands will appear here once they are. Until then, use the eight-language examples above or generate a typed client from the OpenAPI 3.1 specification. Both routes call the same documented REST contract and work with free sandbox keys.

Integration tips that save support tickets

Section titled “Integration tips that save support tickets”
  • Store the key in an environment variable like the examples do — rotating keys then never touches code.
  • Treat messages[].message_id as your join key between send responses, status polls and webhook events.
  • Handle 429 with backoff (rate limits) and monitor credit_blocked before large sends (balance).
  • Make webhook handlers idempotent — retries deliver duplicates by design.