API Documentation

API Reference

Complete reference for the Simly Public API. All endpoints use the /v1/ prefix.

v1.0.0OAS 3.0

Authentication

All API requests must include your API key in the Authorization header using the Bearer scheme:

HTTP Header
Authorization: Bearer sk_live_your_api_key_here
sk_test_*Test Keys

Use test keys for development and testing. Messages are simulated and no real SMS is sent.

sk_live_*Live Keys

Use live keys for production. Messages are sent via your connected Android devices.

Base URL

https://server-simly.servelink.space/v1

All API endpoints are relative to this base URL.

Messages

Send and retrieve SMS messages

POST/v1/messages

Send an SMS message

Send an SMS message to a phone number. The message will be queued for delivery via one of your connected Android devices. Use sk_test_* keys for sandbox mode (no real SMS sent) or sk_live_* keys for production delivery.

Headers

NameRequiredDescriptionExample
AuthorizationRequiredBearer token with your API keyBearer sk_live_...
Content-TypeRequiredMust be application/jsonapplication/json

Request Body

NameTypeRequiredDescription
tostringRequiredRecipient phone number in E.164 formatExample: +33612345678
bodystringRequiredMessage content (max 1600 characters)Example: Hello from Simly!
device_idintegerOptionalForce sending via a specific device IDExample: 123
sim_slotintegerOptionalSim slot to use (0 or 1)Example: 0

Code Examples

# Send SMS via Simly API
curl -X POST "https://server-simly.servelink.space/v1/messages" \
  -H "Authorization: Bearer sk_live_..._key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+33612345678",
    "body": "Hello from Simly!",
    "device_id": 123,
    "sim_slot": 0
  }'

Response Example

{
  "id": "msg_abc123xyz",
  "status": "pending",
  "to": "+33612345678",
  "body": "Hello from Simly!",
  "created_at": "2026-01-02T10:30:00Z"
}

Error Responses

StatusCodeDescription
400invalid_requestRequest validation failed (e.g., invalid phone number format)
400missing_parameterRequired parameter is missing
401invalid_api_keyAPI key is invalid, revoked, or missing
429rate_limit_exceededToo many requests, check Retry-After header
500internal_errorServer error, please retry later
GET/v1/messages/{id}

Get message status

Campaigns

Manage and trigger SMS campaigns

POST/v1/campaigns/{id}/launch

Launch a campaign

Message Statuses

Possible values for the message status field.

StatusDescription
pendingMessage is queued and waiting to be sent
sendingMessage is being sent via a connected device
sentMessage was sent successfully by the device
deliveredMessage was delivered to the recipient
failedMessage delivery failed

Error Handling

All errors follow a consistent JSON format with an error object containing the error details:

{
  "error": {
    "code": "invalid_request",
    "message": "The 'to' field must be a valid E.164 phone number",
    "param": "to"
  }
}

Error Codes

HTTP StatusError CodeDescription
400invalid_requestRequest validation failed
400missing_parameterRequired parameter is missing
401invalid_api_keyAPI key is invalid or revoked
404resource_not_foundRequested resource does not exist
429rate_limit_exceededToo many requests, check Retry-After header
500internal_errorServer error, please retry later

Rate Limiting

When rate limited, the response includes a Retry-After header indicating how many seconds to wait before retrying.

HTTP/1.1 429 Too Many Requests
Retry-After: 60
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704189600