LOX24 API Specification (EN) (2.20)

Download OpenAPI specification:

Introduction

On these pages you will find our documentation for transmitting messages using the LOX24 SMS Gateway. The documentation helps you to integrate our SMS API into your own applications and therefore to send and receive SMS messages. You can find our SMS API at https://api.lox24.eu. You access the individual functions accordingly with a /function. E.g. https://api.lox24.eu/me for querying your customer account and https://api.lox24.eu/sms to send an SMS. All endpoints require authentication by HTTP Header.

Highlights

  • Use HTTPS, for fully SSL encrypted messages
  • Send concatenated sms, appearing as a single SMS on the handset
  • Send messages with text in GSM 03.38 charset or Unicode
  • Transmit any sender ID with up to 15 digits or 11 characters
  • Send a mass SMS to your complete mailing list with just one request
  • Receive replies to your sent messages via HTTP, HTTPS or SMTP
  • Receive or check the delivery status of outbound messages
  • Receive inbound messages from your (optional) inbound number

Request Content-Type

The Content-Type for POST and PUT requests can be set to application/json or multipart/form-data (on endpoints with file uploads).

Response Headers

Each API response includes a unique request identifier in the X-LOX24-REQUEST-ID header. This 32-character alphanumeric identifier is generated for every request and can be used for support purposes when reporting issues or tracking specific API calls.

Datetime properties

Most of the datetime requests/responses objects are unix timestamps (integer).

IP blocking

If more than three requests are received from an IP address with incorrect authentication data within one minute, all subsequent requests from this IP will receive a response with the 429 status (Too Many Requests) within the next ten minutes.

Authentication

All endpoints require you to be authenticated. To become authenticated you will need to create an API token from your web-account (http://account.lox24eu “Settings” and “API-Settings”). Once you have your API Key you can pass it as an HTTP header like this:

curl -X GET https://api.lox24.eu/me \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
curl -X POST https://api.lox24.eu/groups/7116/phones \
  -H 'Content-Type: application/json' \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -d '{
    "phone": "+4917663804817",
    "a": "o2"
}'

Legacy authentication method

We also continue to support the old version of authentication with two headers 'X-LOX24-CLIENT-ID' and ' X-LOX24-AUTH-TOKEN'

curl -X GET https://api.lox24.eu/me \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567'

Important!

Never share your secret keys. Keep them guarded and secure. If a key is unintentionally published, you can deactivate or delete it at any time in your web account (https://account.lox24.eu) in the "Settings" and "API settings".

token

After logging in to your web account, you can create, deactivate or delete one or more API keys in the "Settings" under "API Settings" (please select a v2 Key).

Security Scheme Type: API Key
Header parameter name: X-LOX24-AUTH-TOKEN

user

User is an assistance interface, e.g. to query the account balance or the credit line. This can be helpful to determine if there is still enough credit to send further SMS.

User's profile information

With this interface, you can check your account balance. If you use a pre-paid Account, you get your available balance (excluded VAT). If you have a post-paid account, you get your remaining sms credit limit. The query response also contains information about your available SMS services and your groups.

Authorizations:
token

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/me \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "id": 1,
  • "currency": "EUR",
  • "balance_changed_at": 0,
  • "is_text_deleted": true,
  • "balance_amount": 0,
  • "services": [
    ],
  • "groups": {
    }
}

sms

The sms endpoint is used to send individual SMS. This includes regular SMS but also the dryrun for test purposes. In addition, there are a number of functions to query sent SMS, delete SMS or stop the dispatch.

  • Send single SMS
  • Query sent SMS
  • Stop time shifted SMS
  • Delete SMS data
  • Query SMS data

If you don't want to send single SMS, but want to send bulk SMS via the API, then the endpoint "bulks" is relevant.

SMS Delivery Report (DLR) Webhook

The event 'sms.delivery' sends on dlr_code changes. This allows you to find out whether an SMS has been successfully delivered, rejected, or is still being delivered.

Each SMS has a delivery report code Webhook notifications

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "sms.delivery"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json
Example

Event sent when SMS delivery status changes

{
  • "id": "a3cd6e19-8af2-498d-ad07-c7840f1b4ac8",
  • "api_version": "2022-05-25",
  • "name": "sms.delivery",
  • "created_at": 1653378603,
  • "attempt_total": 4,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

Dryrun SMS delivery report (DLR) Webhook

The event 'sms.delivery.dryrun' uses per an emulation SMS send. See Simulate sending an SMS (for testing).

Each SMS has delivery report code (DLR).

Webhook notifications

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "sms.delivery.dryrun"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "api_version": "2022-05-25",
  • "name": "sms.delivery.dryrun",
  • "created_at": 0,
  • "attempt_total": 4,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

SMS Email Parsing Success Webhook

Triggered when Email to SMS email is successfully parsed

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "sms.email.parsing.success"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when email to SMS parsing is successful

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "sms.email.parsing.success",
  • "created_at": 1653378803,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "5590fa05-fb88-6fc0-bf3b-4d32f63dd863"
}

SMS Email Parsing Fail Webhook

Triggered when Email to SMS email parsing fails

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "sms.email.parsing.fail"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when email to SMS parsing fails

{
  • "id": "a3cd6e19-8af2-498d-ad07-c7840f1b4ac8",
  • "api_version": "2022-05-25",
  • "name": "sms.email.parsing.fail",
  • "created_at": 1653378603,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

Retrieves the collection of SMS

Getting the list of messages from the postbox, ordered by the field created_at in descending order. The postbox contains all sent, not sent and terminated SMS. You can also optionally sort according to the price or the time of transmit to the network operator. You also have the option of transferring different search criteria to limit the output of postbox's messages.

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[gateway_sent_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was transmitted to the mobile network

is_sent
boolean

Boolean filter SMS by the is_sent field to distinguish between already sent and not yet sent sms

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

uuid
string

Exact filter by SMS ID

uuid[]
Array of strings

Exact filter by SMS ID

iso2
string

Exact filter SMS by the phone's country (ISO 3166-1 alpha-2)

iso2[]
Array of strings

Exact filter SMS by the phone's countries (ISO 3166-1 alpha-2)

dlr_code
integer

Exact filter SMS by the delivery report status

dlr_code[]
Array of integers

Exact filter SMS by the delivery report statuses

status_code
integer

Exact filter SMS by the status code

status_code[]
Array of integers

Exact filter SMS by the statuses codes

gateway_sent_at
integer

Exact filter SMS by the send to gateway timestamp

gateway_sent_at[]
Array of integers

Exact and range filter SMS by send to gateway timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

chars_count
integer

Range filter SMS by the message chars count

chars_count[]
Array of integers

Exact and range filter SMS by the message chars count

parts_count
integer

Exact filter SMS by the message parts count

parts_count[]
Array of integers

Exact and range filter SMS by the message parts count

bulk
string

Exact filter SMS by the Bulk

bulk[]
Array of strings

Exact and range filter SMS by the Bulk

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

text
string

Partial case-insensitive text filter SMS by the message text

phone
string

Partial text filter SMS by the phone number

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

ip
string

Partial text filter SMS by the IP which created the message

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

callback_data
string

Exact filter SMS by callback_data property

callback_data[]
Array of strings

Exact filter SMS by callback_data property

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Send the SMS

Send short message data, such as text, destination number and sender identification by sending a POST request and we transfer the message to the destination network.

Authorizations:
token
Request Body schema: application/json
required

The new sms resource

text
required
string (property.sms.text)

The message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

Sender ID or phone number

phone
required
string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$

Recipient (international) number:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

property.messages.delivery_at (integer) or null
source
integer or null (property.messages.source)

Message source or origin

is_unicode
boolean or null (property.messages.is_unicode)

True if message contains Unicode characters, False otherwise

(property.messages.voice_lang (string or null)) or null
callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

property.messages.service_code (any) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
Example

Example of a simple SMS message with required fields only

{
  • "text": "Hello! This is a test SMS message.",
  • "sender_id": "+491701234567",
  • "phone": "+14155552671"
}

Response samples

Content type
Example

API response for a successfully request with minimum parameters

{
  • "@context": "/contexts/sms",
  • "@id": "/sms/11111111-2222-3333-4444-555555555555",
  • "@type": "sms",
  • "text": "Hello! This is a test SMS message.",
  • "sender_id": "+19388888025",
  • "phone": "+14155552671",
  • "delivery_at": 0,
  • "status_code": 0,
  • "gateway_sent_at": 0,
  • "source": 0,
  • "dlr_code": 0,
  • "ip": "139.59.136.251",
  • "created_at": 1755868416,
  • "is_unicode": false,
  • "uuid": "11111111-2222-3333-4444-555555555555",
  • "iso2": "US",
  • "voice_lang": null,
  • "parts_count": 1,
  • "chars_count": 34,
  • "callback_data": null,
  • "bulk_id": null,
  • "key_id": 8291,
  • "service_code": "direct",
  • "is_text_deleted": false,
  • "price": 0.056,
  • "is_sent": false,
  • "requests": "/sms/11111111-2222-3333-4444-555555555555/requests",
  • "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"
}

Simulate sending an SMS (for testing)

This endpoint doesn't send any SMS but emulates the proccess and response. This can be used to get the SMS price or test the API during the integration process. The property uuid will be always equal to 11111111-2222-3333-4444-55555555555. No data will be saved at LOX24, therefore you can't extract any SMS info by GET /sms/{id}. DLR report are send back in same way as per real SMS, if DLR url/email was set-up before, but with statuscode 0.

Authorizations:
token
Request Body schema: application/json
required

The new sms resource

text
required
string (property.sms.text)

The message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

Sender ID or phone number

phone
required
string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$

Recipient (international) number:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

property.messages.delivery_at (integer) or null
source
integer or null (property.messages.source)

Message source or origin

is_unicode
boolean or null (property.messages.is_unicode)

True if message contains Unicode characters, False otherwise

(property.messages.voice_lang (string or null)) or null
callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

property.messages.service_code (any) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
Example

Example of a simple SMS message with required fields only

{
  • "text": "Hello! This is a test SMS message.",
  • "sender_id": "+491701234567",
  • "phone": "+14155552671"
}

Response samples

Content type
Example

API response for a successfully request with minimum parameters

{
  • "@context": "/contexts/sms",
  • "@id": "/sms/11111111-2222-3333-4444-555555555555",
  • "@type": "sms",
  • "text": "Hello! This is a test SMS message.",
  • "sender_id": "+19388888025",
  • "phone": "+14155552671",
  • "delivery_at": 0,
  • "status_code": 0,
  • "gateway_sent_at": 0,
  • "source": 0,
  • "dlr_code": 0,
  • "ip": "139.59.136.251",
  • "created_at": 1755868416,
  • "is_unicode": false,
  • "uuid": "11111111-2222-3333-4444-555555555555",
  • "iso2": "US",
  • "voice_lang": null,
  • "parts_count": 1,
  • "chars_count": 34,
  • "callback_data": null,
  • "bulk_id": null,
  • "key_id": 8291,
  • "service_code": "direct",
  • "is_text_deleted": false,
  • "price": 0.056,
  • "is_sent": false,
  • "requests": "/sms/11111111-2222-3333-4444-555555555555/requests",
  • "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"
}

Stopping postponed and not yet sent SMS messages

With this API you can delete SMS messages that have not yet been sent or interrupt the sending process. For scheduled SMS messages, the transmission time must be in the future. If the SMS is not scheduled, the transmission to the mobile phone provider may take a few seconds, which will possibly allow you to stop the transmission in exceptional cases.

Authorizations:
token
query Parameters
_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[gateway_sent_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was transmitted to the mobile network

is_sent
boolean

Boolean filter SMS by the is_sent field to distinguish between already sent and not yet sent sms

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

uuid
string

Exact filter by SMS ID

uuid[]
Array of strings

Exact filter by SMS ID

iso2
string

Exact filter SMS by the phone's country (ISO 3166-1 alpha-2)

iso2[]
Array of strings

Exact filter SMS by the phone's countries (ISO 3166-1 alpha-2)

dlr_code
integer

Exact filter SMS by the delivery report status

dlr_code[]
Array of integers

Exact filter SMS by the delivery report statuses

status_code
integer

Exact filter SMS by the status code

status_code[]
Array of integers

Exact filter SMS by the statuses codes

gateway_sent_at
integer

Exact filter SMS by the send to gateway timestamp

gateway_sent_at[]
Array of integers

Exact and range filter SMS by send to gateway timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

chars_count
integer

Range filter SMS by the message chars count

chars_count[]
Array of integers

Exact and range filter SMS by the message chars count

parts_count
integer

Exact filter SMS by the message parts count

parts_count[]
Array of integers

Exact and range filter SMS by the message parts count

bulk
string

Exact filter SMS by the Bulk

bulk[]
Array of strings

Exact and range filter SMS by the Bulk

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

text
string

Partial case-insensitive text filter SMS by the message text

phone
string

Partial text filter SMS by the phone number

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

ip
string

Partial text filter SMS by the IP which created the message

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

callback_data
string

Exact filter SMS by callback_data property

callback_data[]
Array of strings

Exact filter SMS by callback_data property

Responses

Request samples

curl -X POST https://api.lox24.eu/sms/ops/batch_cancel?uuid=20f39273-0566-11ea-a637-96000028b339  \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
application/json
{
  • "deleted_sms_count": 0
}

Bulk delete SMS messages

With this API you can delete SMS any messages

Authorizations:
token
query Parameters
_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[gateway_sent_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was transmitted to the mobile network

is_sent
boolean

Boolean filter SMS by the is_sent field to distinguish between already sent and not yet sent sms

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

uuid
string

Exact filter by SMS ID

uuid[]
Array of strings

Exact filter by SMS ID

iso2
string

Exact filter SMS by the phone's country (ISO 3166-1 alpha-2)

iso2[]
Array of strings

Exact filter SMS by the phone's countries (ISO 3166-1 alpha-2)

dlr_code
integer

Exact filter SMS by the delivery report status

dlr_code[]
Array of integers

Exact filter SMS by the delivery report statuses

status_code
integer

Exact filter SMS by the status code

status_code[]
Array of integers

Exact filter SMS by the statuses codes

gateway_sent_at
integer

Exact filter SMS by the send to gateway timestamp

gateway_sent_at[]
Array of integers

Exact and range filter SMS by send to gateway timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

chars_count
integer

Range filter SMS by the message chars count

chars_count[]
Array of integers

Exact and range filter SMS by the message chars count

parts_count
integer

Exact filter SMS by the message parts count

parts_count[]
Array of integers

Exact and range filter SMS by the message parts count

bulk
string

Exact filter SMS by the Bulk

bulk[]
Array of strings

Exact and range filter SMS by the Bulk

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

text
string

Partial case-insensitive text filter SMS by the message text

phone
string

Partial text filter SMS by the phone number

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

ip
string

Partial text filter SMS by the IP which created the message

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

callback_data
string

Exact filter SMS by callback_data property

callback_data[]
Array of strings

Exact filter SMS by callback_data property

Responses

Request samples

#!/usr/bin/env bash
curl -X POST https://api.lox24.eu/sms/ops/batch_delete?uuid=20f39273-0566-11ea-a637-96000028b339  \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
application/json
{
  • "deleted_sms_count": 0
}

Retrieves the entry of SMS

Getting the single SMS entity by the ID (uuid). If SMS not found then HTTP code 404 will response.

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "text": "string",
  • "sender_id": "+491701234567",
  • "phone": "+14155552671",
  • "delivery_at": 0,
  • "status_code": 0,
  • "gateway_sent_at": 0,
  • "source": 0,
  • "dlr_code": 1,
  • "ip": "192.168.1.1",
  • "created_at": 0,
  • "is_unicode": true,
  • "uuid": "string",
  • "iso2": "US",
  • "voice_lang": "DE",
  • "parts_count": 1,
  • "chars_count": 0,
  • "callback_data": "string",
  • "bulk_id": null,
  • "key_id": 1,
  • "service_code": "direct",
  • "is_text_deleted": true,
  • "price": 0,
  • "is_sent": true,
  • "requests": "string",
  • "clicks": "string"
}

Delete a SMS

Remove the SMS entity by the ID (uuid). Endpoint response doesn't contains the body and has HTTP code 204 if SMS was removed or 404 if it doesn't exists. Attention. The SMS is also deleted from the itemised bill. Later complaints are therefore excluded due to lack of traceability.

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/sms/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

bulks

The bulks interface is used to send bulk SMS. This includes the correct bulk SMS transmission to multiple phone numbers and/or groups but also the dryrun. In addition, there are a number of functions to query the status of a bulk or to stop the mailing.

  • Send bulk SMS
  • Query status of bulk SMS
  • Stop bulk SMS

If you don't want to send mass SMS but want to send individual SMS via the API, then the endpoint "sms" is relevant.

Bulk Email Parsing Error Webhook Webhook

The event bulk.email.parsing.fail sends on email parsing error.

Notificaciones de webhook

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "bulk.email.parsing.fail"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when bulk email parsing fails

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "bulk.email.parsing.fail",
  • "created_at": 1653378903,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "6601ab16-ca99-7fe1-cf4c-5e43f74ee974"
}

Bulk Email Parsing Success Webhook

The event bulk.email.parsing.success sends on successful parsing Email to SMS Bulk email.

Webhook notifications

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "bulk.email.parsing.success"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when bulk email is successfully parsed

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "bulk.email.parsing.success",
  • "created_at": 1653378803,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "5590fa05-fb88-6fc0-bf3b-4d32f63dd863"
}

Retrieves the collection of Bulks

Getting the list of bulks from the postbox, ordered by the field created_at in descending order. The postbox contains all sent, not sent and terminated SMS. You can also optionally sort according to the price or the time of transmit to the network operator. You also have the option of transferring different search criteria to limit the output of postbox's messages.

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[delivery_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was/should transmitted to the mobile network

_order[processed_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was changed last time

_order[msg_total_count]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by the total counts of the related SMS

text
string

Partial case-insensitive text filter SMS by the message text

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

status_code
integer

Exact filter Bulks by the status code

status_code[]
Array of integers

Exact filter Bulks by the statuses codes

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

processed_at
integer

Exact filter entities by the last changes timestamp

processed_at[]
Array of integers

Exact and range filter entities by the last changes timestamps

msg_total_count
integer

Exact filter Bulks by the total count of the SMS in the bulk

msg_total_count[]
Array of integers

Exact and range filter Bulks by the total counts of the related SMS

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

is_dryrun
boolean

Boolean filter Bulks by the is_dryrun field to distinguish type of the Bulk

exists[is_unicode]
boolean

Boolean and exists filter Bulks by the is_unicode field to distinguish between GSM and Unicode messages

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Create the Bulk

Create a bulk SMS campaign by sending a POST request with message details and recipient information.

Authorizations:
token
Request Body schema: application/json
required

The new bulks resource

One of
property.messages.delivery_at (integer) or null
sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

Sender ID or phone number

text
required
string (property.bulks.text) <= 1785 characters

Max text length is 1785 character. But don't forget that the final message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

phones
required
Array of strings or null (property.bulks.phones) [ items [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ ]

List of the recipients (international) numbers:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

msg_groups
Array of integers or null (property.bulks.msg_groups)

List of the recipients groups

is_unicode
boolean or null (property.messages.is_unicode)

True if message contains Unicode characters, False otherwise

property.messages.service_code (any) or null
source
integer or null (property.messages.source)

Message source or origin

(property.messages.voice_lang (string or null)) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
{
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "is_unicode": true,
  • "service_code": "direct",
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": 0,
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Simulate creating a Bulk (for testing)

This endpoint is used for test purposes to emulate the creating of an Bulk without actually creating SMS and passing them to the network operator for a fee.

Authorizations:
token
Request Body schema: application/json
required

The new bulks resource

One of
property.messages.delivery_at (integer) or null
sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

Sender ID or phone number

text
required
string (property.bulks.text) <= 1785 characters

Max text length is 1785 character. But don't forget that the final message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

phones
required
Array of strings or null (property.bulks.phones) [ items [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ ]

List of the recipients (international) numbers:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

msg_groups
Array of integers or null (property.bulks.msg_groups)

List of the recipients groups

is_unicode
boolean or null (property.messages.is_unicode)

True if message contains Unicode characters, False otherwise

property.messages.service_code (any) or null
source
integer or null (property.messages.source)

Message source or origin

(property.messages.voice_lang (string or null)) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
{
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "is_unicode": true,
  • "service_code": "direct",
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": 0,
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Retrieves the entry of Bulk

Getting the single Bulk entity by the ID (uuid). If Bulk not found then HTTP code 404 will response.

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": 0,
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Delete a Bulk

Remove the Bulk entity by the ID . Endpoint response doesn't contains the body and has HTTP code 204 if SMS was removed or 404 if it doesn't exists. Attention. The Bulk is also deleted from the itemised bill. Later complaints are therefore excluded due to lack of traceability.

Authorizations:
token
path Parameters
id
required
string

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Cancel the Bulk processing

Cancel Bulk's processing if it has status_code = 0 (New) or status_code = 5 and related to the Bulk messages with is_sent = False

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X PUT https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339/cancel \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": "string",
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Retrieves current status of the entry of Bulk

Getting short info about Bulk status

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339/status \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": "string",
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

incomings

This interface is used to query inbound SMS (pull). The list of all incoming SMS, as well as the content of a particular SMS. Please note, however, that you can also receive the SMS as push, as soon as they arrive. The push variant is preferably, since you do not have to check for incoming SMS, but these are sent directly to your script.

Incoming SMS Webhook

The event 'sms.incoming' sends on an incoming/reply SMS (mobile originated - SMS-MO).

Webhook notifications

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "sms.incoming"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when an incoming SMS is received

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "sms.incoming",
  • "created_at": 1653378703,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "4489ef94-ef77-5ef9-ae2a-3c21e52cc752"
}

Retrieves the collection of Incoming SMS

Getting the list of incoming SMS ordered by the field received_at in descending order. The postbox contains all inbound sms and replies. For SMS replies property 'msg_uuid' filled by correspond /sms entity.

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[received_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the Incoming sms was received

text
string

Partial case-insensitive text filter SMS by the message text

from
string

Partial case-insensitive text filter by sender's phone number

to
string

Partial case-insensitive text filter by inbound's phone number

msg_uuid
string

Exact filter by initial SMS ID

msg_uuid[]
Array of strings

Exact filter by initial SMS ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/incomings \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Retrieves the entry of Incoming SMS

Getting the entry of incoming SMS. The postbox contains all inbound sms and replies. For SMS replies property 'msg_uuid' filled by correspond /sms entity.

Authorizations:
token
path Parameters
uuid
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Incoming message ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/incomings/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "to": "+14155552671",
  • "from": "+14155552671",
  • "received_at": 0,
  • "text": "string",
  • "msg_uuid": "string"
}

Deleting an Inbound SMS

Received SMS (inbound or reply SMS) can be deleted from the server based on the UUID.

Authorizations:
token
path Parameters
uuid
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Incoming message ID

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/incomings/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

groups

The function "Groups" allows you to create bulk SMS mailing lists. Each mailing list represents a group. By using the functions in "Groups" you can create, view, delete and export the mailing lists.

Retrieves the collection of Groups

Returns all your groups (SMS distribution list).

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/groups \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Create a Group

With this command you create a SMS mailing list which is stored in our system for you. A mailing list has a name, a description and five additional columns which you can add in addition to the phone number.

Authorizations:
token
Request Body schema: application/json
required

The new groups resource

name
required
string (property.group.name) [ 1 .. 50 ] characters

Group name

description
string or null (property.group.description) <= 255 characters

Group description

name_a
string or null (property.group.column_name) <= 50 characters

Name of the column

name_b
string or null (property.group.column_name) <= 50 characters

Name of the column

name_c
string or null (property.group.column_name) <= 50 characters

Name of the column

name_d
string or null (property.group.column_name) <= 50 characters

Name of the column

name_e
string or null (property.group.column_name) <= 50 characters

Name of the column

object or null
deleted_at
string or null <date-time> (property.group.deleted_at)

Date and time when group will be deleted

id
integer (property.group.id) >= 1

Group ID

count_items
integer (property.group.count_items) >= 0

Count of the item in the group

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "phones": {
    },
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "count_items": 0
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": 1,
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "count_items": 0,
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Retrieves the entry of Groups

Returns the data of the specific group, such as group and column name.

Authorizations:
token
path Parameters
id
required
integer >= 0

Group ID

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/groups/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": 1,
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "count_items": 0,
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Edit a Group

Change the configuration of a group, such as the group name or description.

Authorizations:
token
path Parameters
id
required
integer >= 0

Group ID

Request Body schema: application/json
required

The updated groups resource

name
required
string (property.group.name) [ 1 .. 50 ] characters

Group name

description
string or null (property.group.description) <= 255 characters

Group description

name_a
string or null (property.group.column_name) <= 50 characters

Name of the column

name_b
string or null (property.group.column_name) <= 50 characters

Name of the column

name_c
string or null (property.group.column_name) <= 50 characters

Name of the column

name_d
string or null (property.group.column_name) <= 50 characters

Name of the column

name_e
string or null (property.group.column_name) <= 50 characters

Name of the column

object or null
deleted_at
string or null <date-time> (property.group.deleted_at)

Date and time when group will be deleted

id
integer (property.group.id) >= 1

Group ID

count_items
integer (property.group.count_items) >= 0

Count of the item in the group

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "phones": {
    },
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "count_items": 0
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": 1,
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "count_items": 0,
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Delete a Group

Delete the group together with all the associated phone numbers.

Authorizations:
token
path Parameters
id
required
integer >= 0

Group ID

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/groups/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

phones

This interface serves as a complement to groups. Using phones you can add, delete or modify phone numbers in your SMS mailing list. It is also possible to export the content of a group via this interface.

Export CSV of the Phones

Example of the CSV
id phone col_A col_B col_C col_D col_E callback_data
7848412 +49123456780 Name Second name Foo Bar Zoo 12345
7848413 +49123456781 Name Second name Foo Bar Zoo 12346
7848414 +49123456782 Name Second name Foo Bar Zoo 12347
7848415 +49123456783 Name Second name Foo Bar Zoo 12348

The names of the columns will correspond to the values in the fields name_X of the corresponding /group object. If the corresponding value is missing, the default is col_X, where X = (a, b, c, d, e).

Authorizations:
token
path Parameters
id
required
integer >= 0

Group ID

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/groups/7116/file/csv  \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Retrieves the collection of Phones by Group ID

Retrieves the collection of Phones by Group ID

Authorizations:
token
path Parameters
id
required
integer >= 0

Group ID

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/groups/7116/phones  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ]
}

Create a Phone

Create an entry with a phone number.

Authorizations:
token
path Parameters
id
required
integer >= 0

Group ID

Request Body schema: application/json
required

The new phones resource

phone
required
string (property.phone.phone) <= 30 characters

Phone number

a
string or null (property.phone.column) <= 1530 characters

Phone column data

b
string or null (property.phone.column) <= 1530 characters

Phone column data

c
string or null (property.phone.column) <= 1530 characters

Phone column data

d
string or null (property.phone.column) <= 1530 characters

Phone column data

e
string or null (property.phone.column) <= 1530 characters

Phone column data

callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

Responses

Request samples

Content type
application/json
{
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string",
  • "subscribed_at": 0,
  • "unsubscribed_at": 0,
  • "unsubscribe_reason": 0
}

Create Phones by the batch

Instead of sending multiple requests better to send a single request with a list of Phone objects as body request.

Authorizations:
token
path Parameters
id
required
integer >= 0

Group ID

Request Body schema: application/json
required

The new groups resource

Array
phone
required
string (property.phone.phone) <= 30 characters

Phone number

a
string or null (property.phone.column) <= 1530 characters

Phone column data

b
string or null (property.phone.column) <= 1530 characters

Phone column data

c
string or null (property.phone.column) <= 1530 characters

Phone column data

d
string or null (property.phone.column) <= 1530 characters

Phone column data

e
string or null (property.phone.column) <= 1530 characters

Phone column data

callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "hydra:totalItems": 0,
  • "hydra:member": {
    }
}

Retrieves the entry of Phone

Query an entry with a phone number.

Authorizations:
token
path Parameters
id
required
integer >= 0

Phone identifier

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/phones/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string",
  • "subscribed_at": 0,
  • "unsubscribed_at": 0,
  • "unsubscribe_reason": 0
}

Edit the entry of Phone

Edit an entry with a phone number.

Authorizations:
token
path Parameters
id
required
integer >= 0

Phone identifier

Request Body schema: application/json
required

The updated phones resource

phone
required
string (property.phone.phone) <= 30 characters

Phone number

a
string or null (property.phone.column) <= 1530 characters

Phone column data

b
string or null (property.phone.column) <= 1530 characters

Phone column data

c
string or null (property.phone.column) <= 1530 characters

Phone column data

d
string or null (property.phone.column) <= 1530 characters

Phone column data

e
string or null (property.phone.column) <= 1530 characters

Phone column data

callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

Responses

Request samples

Content type
application/json
{
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string",
  • "subscribed_at": 0,
  • "unsubscribed_at": 0,
  • "unsubscribe_reason": 0
}

Delete the entry of Phone

Delete an entry with a phone number.

Authorizations:
token
path Parameters
id
required
integer >= 0

Phone identifier

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/phones/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

campaigns

You can create a short link campaign via the campaigns API. A short link campaign is used to create a short link, which you can then use for individual and bulk SMS messages. You can also query the existing short links via the interface and change or delete them.

Create a Short Link Campaign

Create a new Short Link Campaign entity with destination url, type and name

Authorizations:
token
Request Body schema: application/json
required

The new short_link_campaigns resource

type
required
integer (property.short_link_campaigns.type)
Enum: 1 2

Type of the short link campaign

name
required
string (property.short_link_campaigns.name) <= 100 characters

Name of the short link campaign

url
required
string (property.short_link_campaigns.url)

URL of the short link campaign

group_id
integer or null (property.short_link_campaigns.group_id)

Group ID of the short link campaign

Responses

Request samples

Content type
application/json
{
  • "type": 1,
  • "name": "string",
  • "url": "string",
  • "group_id": 0
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "type": 1,
  • "id": "string",
  • "name": "string",
  • "url": "string",
  • "created_at": 0,
  • "group_id": 0
}

Create a subscription form campaign

A special type of short link campaign that redirects the user to a subscription form. You can specify the id of the group to which the subscribed users phone numbers will be added.

Authorizations:
token
Request Body schema: application/json
required

The new short_link_campaigns resource

name
required
string (property.short_link_campaigns.name) <= 100 characters

Name of the short link campaign

group_id
required
integer or null (property.short_link_campaigns.group_id)

Group ID of the short link campaign

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "group_id": 0
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "type": 1,
  • "id": "string",
  • "name": "string",
  • "url": "string",
  • "created_at": 0,
  • "group_id": 0
}

Create a unsubscription form campaign

A special type of short link campaign that redirects the user to a unsubscription form. You can specify the id of the group from which the subscribed users phone numbers will be removed (if they have been added to it).

Authorizations:
token
Request Body schema: application/json
required

The new short_link_campaigns resource

name
required
string (property.short_link_campaigns.name) <= 100 characters

Name of the short link campaign

group_id
required
integer or null (property.short_link_campaigns.group_id)

Group ID of the short link campaign

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "group_id": 0
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "type": 1,
  • "id": "string",
  • "name": "string",
  • "url": "string",
  • "created_at": 0,
  • "group_id": 0
}

requests

Via requests you can retrieve the results of your short link campaign. Depending on whether you have sent an SMS with simple or advanced tracking, you can determine which phone numbers have clicked how often on the links in your SMS. Through this interface it is possible to find out which recipients or which SMS have scored how well.

List by a bulk sms ID

List of all requests by a SMS Bulk ID

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

query Parameters
page
integer
Default: 1

Current page

_order[date]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'date' property

ip
string

Partial case-insensitive text filter by a IP address

url
string

Partial case-insensitive text filter by a destination URL

user_agent
string

Partial filter short links by user agent (partial match)

country
string

Exact filter entities by the country code

country[]
Array of strings

Exact filter entities by the country codes

referer
string

Partial case-insensitive text filter by a referer

date
integer

Exact filter short link requests by exact date

date[]
Array of integers

Exact filter short link requests by date (array of values)

type
integer

Exact filter short links by type (exact match)

type[]
Array of integers

Range filter short links by type (array of values)

browser
string

Partial case-insensitive text filter by a browser name

os
string

Partial case-insensitive text filter by a operation system name

os_version
string

Partial case-insensitive text filter by a operation system version

software_type
string

Partial case-insensitive text filter by a software type

hardware_type
string

Partial case-insensitive text filter by a hardware type

date[between]
string

Range filter short link requests by date range

date[gt]
string

Filter short link requests by date greater than

date[gte]
string

Filter short link requests by date greater than or equal

date[lt]
string

Filter short link requests by date less than

date[lte]
string

Filter short link requests by date less than or equal

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks/{bulk_id_here}/requests \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

List requests by campaign

Lists all clicks on shortlinks for a specific campaign

Authorizations:
token
path Parameters
code
required
string

short_link_campaigns code

query Parameters
page
integer
Default: 1

Current page

_order[date]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'date' property

ip
string

Partial case-insensitive text filter by a IP address

url
string

Partial case-insensitive text filter by a destination URL

user_agent
string

Partial filter short links by user agent (partial match)

country
string

Exact filter entities by the country code

country[]
Array of strings

Exact filter entities by the country codes

referer
string

Partial case-insensitive text filter by a referer

date
integer

Exact filter short link requests by exact date

date[]
Array of integers

Exact filter short link requests by date (array of values)

type
integer

Exact filter short links by type (exact match)

type[]
Array of integers

Range filter short links by type (array of values)

browser
string

Partial case-insensitive text filter by a browser name

os
string

Partial case-insensitive text filter by a operation system name

os_version
string

Partial case-insensitive text filter by a operation system version

software_type
string

Partial case-insensitive text filter by a software type

hardware_type
string

Partial case-insensitive text filter by a hardware type

date[between]
string

Range filter short link requests by date range

date[gt]
string

Filter short link requests by date greater than

date[gte]
string

Filter short link requests by date greater than or equal

date[lt]
string

Filter short link requests by date less than

date[lte]
string

Filter short link requests by date less than or equal

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu//short_link_campaigns/{campaign_id}/requests \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

List by a SMS

List of all requests by a single SMS ID

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

query Parameters
page
integer
Default: 1

Current page

_order[date]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'date' property

ip
string

Partial case-insensitive text filter by a IP address

url
string

Partial case-insensitive text filter by a destination URL

user_agent
string

Partial filter short links by user agent (partial match)

country
string

Exact filter entities by the country code

country[]
Array of strings

Exact filter entities by the country codes

referer
string

Partial case-insensitive text filter by a referer

date
integer

Exact filter short link requests by exact date

date[]
Array of integers

Exact filter short link requests by date (array of values)

type
integer

Exact filter short links by type (exact match)

type[]
Array of integers

Range filter short links by type (array of values)

browser
string

Partial case-insensitive text filter by a browser name

os
string

Partial case-insensitive text filter by a operation system name

os_version
string

Partial case-insensitive text filter by a operation system version

software_type
string

Partial case-insensitive text filter by a software type

hardware_type
string

Partial case-insensitive text filter by a hardware type

date[between]
string

Range filter short link requests by date range

date[gt]
string

Filter short link requests by date greater than

date[gte]
string

Filter short link requests by date greater than or equal

date[lt]
string

Filter short link requests by date less than

date[lte]
string

Filter short link requests by date less than or equal

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms/{sms_id}/requests \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

click rate

By using this interface, you will be able to measure the number of clicks of your SMS mailings.

List of all SMS with clicks

Retrieves the list of sms which contain a short link and the number of clicks on these links.

Authorizations:
token
query Parameters
page
integer
Default: 1
_order[created_at]
string
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'created_at' property

requests_count
integer

Exact filter by the requests count value

requests_count[]
Array of integers

Exact and range filter by the requests count value

created_at
integer

Exact filter by SMS creating date

created_at[]
Array of integers

Exact and range filter by SMS creating date

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms/clicks \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Short-Link clicks of a SMS

Returns the number of clicks on a short link for a specific SMS. If SMS doesn't exists or doesn't contain then HTTP code 404 will response.

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/sms/clicks/sms_uuid_here  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "created_at": 0,
  • "requests_count": 0
}

Fraud Detection API

The Fraud Detection API helps to identify suspicious requests to your service. The API receives data such as phone number, email and IP address of your potential customer from you in compliance with data protection regulations in Europe. Our system checks them using databases, algorithms and artificial intelligence. The API finally gives an assessment about the risk of a fraud. The risk is measured as the probability of fraud from 0 to 100, where 0 represents a small probability of fraud (good risk value) and 100 represents an extremely high probability of fraud (bad risk value).

The service also allows you to check each part of the request separately yourself, for example by passing only the phone data.

In addition to the risk score, the Fraud Detection AP response also contains additional information to help you with your own risk assessment:

  • About the Phone:
    • region
    • type of number (mobile, VoIP, etc.)
    • valid format
    • whether the number is possible at all
  • via e-mail:
    • is such an e-mail possible
    • is the domain of the given e-mail suspicious
  • about the IP address
    • region
    • state
    • city
    • postal code
    • geographic coordinates
    • ISP
    • risk assessment of the ISP
    • type of proxy server (if used)
    • type of connection
  • about the address
    • country code (ISO 3166-1 alpha-2)
    • city
    • postal code
    • street name
    • street number

Depending on the chosen tariff 'direct' the response and the processing speed of the request are different. Economy requests are suitable e.g. for a simple login. Pro requests for a new customer registration and direct requests for a product sale:

  • 'direct' - the answer contains all detail data and the request is processed in a separate queue with increased priority.

Since scoring takes some time, the request is processed in asynchronous mode and after processing the service sends the request data back in JSON format to the HTTP URL or email you specified. You can set this value in the web account under Settings and Notifications (Event Notifications). You can also check the status of the request by its ID by sending a request to the API. However, we strongly recommend that you use the notification system (webhook), as the service might block your requests if there are a large number of requests from your side.

Fraud Check Completed Webhook

Triggered when a Fraud Detection request is completed

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Version of the notification webhook data structure

name
string
Value: "fraud-check.done"

Webhook's event name

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Total number of notification webhook delivery attempts

attempt_number
integer (property.common.attempt_number) >= 1

Current webhook notification attempt number

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when fraud detection check is completed

{
  • "id": "a7bc0d53-2ab6-822c-df31-a1284b5f8ea2",
  • "api_version": "2022-05-25",
  • "name": "fraud-check.done",
  • "created_at": 1653379003,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "7712ab27-cd00-8ef2-da5d-6f54f85ff085"
}

List of all Fraud Check requests

Retrieves the list of all previous Fraud Check requests

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Exact filter by Fraud request ID

id[]
Array of strings (property.common.uuid) [ items^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... ]

Exact filter by Fraud request ID

callback_data
string

Partitial filter entities by the callback_data

request_phone.phone
string

Partial filter by the request's phone value

request_email.email
string

Partial filter by the request's email value

request_ip.ip
string

Partial filter by the request's IP value

status_code
integer

Exact filter Fraud requests by the status code

status_code[]
Array of integers

Exact filter Fraud requests by the status codes

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/fraud-checks \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Creates a new Fraud Check request

Send a Fraud Check request and get risk score value back.

Authorizations:
token
Request Body schema: application/json
required

The new fraud-check resource

service_code
required
string (property.fraud-check.service_code)
Enum: "economy" "pro" "direct"

Service code defines the type of fraud query you make. Economy contains only a risk value, while Pro and Direct contain more details about the results, so you can make your own decision. Direct queries are also processed with priority. (see /me)

(property.common.callback_data (string or null)) or null
property.common.phone_number (string) or null
property.fraud-check.email (string) or null
property.fraud-check.ip (string) or null
schema.fraud-check-address-fraud_request_write (object) or null

Responses

Request samples

Content type
application/json
{
  • "service_code": "economy",
  • "callback_data": "string",
  • "phone": "+14155552671",
  • "email": "string",
  • "ip": "strings",
  • "address": {
    }
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "id": "string",
  • "status_code": 0,
  • "risk_score": 100,
  • "service_code": "economy",
  • "created_at": 0,
  • "updated_at": 0,
  • "callback_data": "string",
  • "request_phone": {
    },
  • "request_email": {
    },
  • "request_ip": {
    },
  • "request_address": {
    },
  • "price": 0
}

Retrieve Fraud Check request

Returns the data of a specific Fraud Check request

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Fraud Check request ID

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/fraud-checks/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "id": "string",
  • "status_code": 0,
  • "risk_score": 100,
  • "service_code": "economy",
  • "created_at": 0,
  • "updated_at": 0,
  • "callback_data": "string",
  • "request_phone": {
    },
  • "request_email": {
    },
  • "request_ip": {
    },
  • "request_address": {
    },
  • "price": 0
}

Delete a specific previous Fraud Check request

Remove all information about a previous Fraud Check request.

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Fraud Check request ID

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/fraud-checks/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Collection filters

LOX24 API provides a generic system to apply filters and sort criteria on collections. You can see which filters you can use in the property description.

Search filter

The API uses two types of the text filters:

  • partial strategy uses provided text to search for fields that contain part of that text
  • exact strategy uses uses provided text to search for fields that contain exactly that text

Note: Search filters with the exact strategy can have multiple values for the same property (in this case the condition will be similar to a SQL IN clause).

Usage examples

Find sms which phone property contains "4979" and text property contains *"hello":

curl -X GET https://api.lox24.eu/sms?phone=4979&text=hello \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Find sms with country iso2 property equal 'DE' OR 'CH' and status_code = 0

curl -X GET https://api.lox24.eu/sms?iso2[]=DE&iso2[]=CH&status_code=0 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Boolean filter

The boolean filter allows to search on boolean fields and values.

Syntax: ?property=<true|false|1|0>

Get sms which wasn't sent to the mobile operator yet:

curl -X GET https://api.lox24.eu/sms?sent=0 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Exists filter

The exists filter allows to select items based on a nullable field value

Syntax: ?exists[property]=<true|false|1|0>

Get bulks which has property is_unicode=null (sms encoding auto-detection):

curl -X GET https://api.lox24.eu/bulks?exists[is_unicode]=0 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567'

Range Filter

The range filter allows to filter by a value lower than, greater than, lower than or equal, greater than or equal and between two values.

Syntax: ?property[<lt|gt|lte|gte|between>]=value

Usage examples

Filter sms collection by the field created_at between 1575158400 (2019-12-01) and 1575676800 (2019-12-07):

curl -X GET https://api.lox24.eu/sms?created_at[between]=1575158400..1575676800 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Order Filter (Sorting)

The order filter allows you to sort a collection against the given properties. Order parameter _order.

Usage examples

Sort sms collection by the field 'created_at' in descending order:

curl -X GET https://api.lox24.eu/sms?_order[created_at]=desc \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

SMS status codes

Description of the sms status codes (property status_code):

Status code Description
0 New just created message
100 Message was successfuly transmitted to the mobile operator
208 The destination network/country is blocked
400 The message could not be delivered during maintenance
410 The message was stopped before transmission via web account
2000 No connection to landline possible at the moment
3000 Not enough money on the user balance to send the message
5000 No mobile operator found for this message
6000 The message was stopped before transmission via API

SMS delivery report codes (DLR)

For each transmitted SMS there is a delivery report (DLR). There are two ways to get these delivery reports:

  1. push http: We send the delivery reports via HTTP GET request or email (webhook) to your endpoint. See Event notifications for more information.
  2. pull http: you query the DLR using the endpoint GET /sms/{id} (id - SMS id) and check the parameter dlr_code.

Description of the delivery report status codes (property dlr_code):

Status code Description
0 NONE: There is no delivery report available
1 DELIVERY_OK: The message was successfully delivered
2 DELIVERY_QUEUE: The message is scheduled for later sending
4 DELIVERY_SUBMIT_ACK: The message is enroute
8 DELIVERY_EXPIRED: The SMSC was unable to deliver the message in a specified amount of time. For instance when the phone was turned off
16 DELIVERY_REJECTED: The message was rejected. The provider could have blocked phone numbers in this range

Encoding and number of characters

Generally, the SMS text has to be transfered with UTF-8 encoding to the gateway. You have the option to use the parameter "is_unicode" to decide if you want to send a normal 7 bit or UCS-2 SMS.

GSM 7 bit Standard-Alphabet (GSM 03.38)

The basic character set contains all characters that can be transmitted with a normal 7 bit SMS. Each of this characters counts as 1 character. The extended character set can also be transferred, but requires 2 characters for transmission. SMS which contain more than 160 characters are delivered to the handset as multiple SMS, each with 153 characters, and concatenated by the phone to one message. If you send an SMS explicitly with the GSM 03.38 charset and your message contains characters which are not part of the GSM charset, our system will try to convert your text using transliteration.

Basic Character Set

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00 @ Δ SP 0 ¡ P ¿ p
0x01 £ _ ! 1 A Q a q
0x02 $ Φ " 2 B R b r
0x03 ¥ Γ # 3 C S c s
0x04 è Λ ¤ 4 D T d t
0x05 é Ω % 5 E U e u
0x06 ù Π & 6 F V f v
0x07 ì Ψ ' 7 G W g w
0x08 ò Σ ( 8 H X h x
0x09 Ç Θ ) 9 I Y i y
0x0A LF Ξ * : J Z j z
0x0B Ø ESC + ; K Ä k ä
0x0C ø Æ , < L Ö l ö
0x0D CR æ - = M Ñ m ñ
0x0E Å ß . > N Ü n ü
0x0F å É / ? O § o à
  • LF is a Line Feed control.
  • CR is a Carriage Return control, or filler.
  • ESC is an Escape control.
  • SP is a Space character.

Extended Character Set

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00
0x01
0x02
0x03
0x04 ^
0x05
0x06
0x07
0x08 {
0x09 }
0x0A FF
0x0B SS2
0x0C [
0x0D CR2 ~
0x0E ]
0x0F |
  • FF is a Page Break control. If not recognized, it shall be treated like LF.
  • CR2 is a control character. No language specific character shall be encoded at this position.
  • SS2 is a second Single Shift Escape control reserved for future extensions.

UCS-2 (Unicode SMS)

With UCS-2 it is possible to transmit 1,112,064 characters. These characters represent nearly every spoken language. Each character counts as 1 character, but Unicode SMS can only consist of 70 characters, or consist of multiple concatenated SMS, each with 67 characters.

Concatenated SMS

For technical reasons, with one sms only 160 characters of text (70 characters Unicode text) can be transferred. If you send an SMS with more characters, then you send a so-called concatenated SMS. Overlong text messages / Multi-SMS (concatenated SMS, Long SMS) are part messages and transmitted separately. Each part is a separate text message. The receiver converts the parts again into a coherent text. To determine that the message is a concatenated message and which part belongs to which part 7 characters (or 3 in Unicode) of the available characters are needed. This is the reason why one part of an overlong SMS can only consist 153 characters (or 67 for Unicode) of your text. The maximum is 1530 characters with one concatenated message (or 670 characters for Unicode).

Inbound SMS and Reply-SMS

Inbound SMS and Reply-SMS:

You can get incoming SMS (mobile originated - SMS-MO) sent via push to a script on your web server. You can receive incoming SMS for your individual inbound number. You can order it in your web account under Settings and Inbound number. You can also receive free replies to Economy SMS sent to Germany.

You can specify an individual endpoint (HTTPS or mail) for each phone number. Alternatively, you can receive all incoming messages using our Event Notification Service.

Push service means that our gateway sends HTTP requests with data to a script on your host. On response with HTTP status code < 200 or >= 300, service will do additional attempts but maximum three. The response of your script is not taken into account, so you need to monitor your script. In case of malfunctions we will not notify you. You can enter the URL for all push services in your LOX24 web account page (Settings -> API settings). Alternatively, you can also receive info about incoming SMS by e-mail.

Inbound SMS are sent as HTTP GET with the parameters sender_id for the sender's phone number, text for the message text and time as time when message was sent in Unix timestamp format. For reply SMS to Economy SMS you also receive uuid as assignment to the initial SMS. For an inbound phone number, phone contains inbound (receiver) phone number and id contains the ID of the incoming SMS.

Inbound SMS by mail contains a JSON object with the same parameters.

Parameter Type Description
id integer Inbound SMS identifier (not for Economy reply SMS)
phone string Inbound phone number (not for Economy reply SMS)
sender_id string Sender's phone number of the incoming SMS
text string Message text
time integer Time at which the SMS was received by LOX24
uuid UUID ID of the message that a reply has come (only for Economy reply SMS)

Kannel API (emulation)

Intro

This is a guide to set up and connect our SMS API to your Kannel client.

If you use Kannel to route messages to different SMS gateways you can easily add an additional SMSC module without changing your application architecture.

Support: berlin@lox24.eu

API Key

To send messages with Kannel you need to create an authentication key on the account page with the type 'Kannel API'. Please go to "Settings" -> "API-Settings" and click on "Create new key". You have to choose as type "Kannel API".

Account page an API key

Config

There are two types of SMSC configurations possible to send SMS with LOX24 via Kannel:

  • sending DLR requests to your endpoint
  • sending DLR requests to your Kannel SMSC module, which in turn sends a DLR request to your endpoint (DLR URL chaining)

Note: What's about a DLR request you can read here:

Sending DLR requests to your endpoint

LOX24 API will send delivery reports directly back to your endpoint without bypassing Kannel.

To use the Kannel API just create a new SMSC config:

group = smsc
smsc = http
system-type = kannel
smsc-id = "lox24"
allowed-smsc-id = "lox24"
port = 10443
send-url = "https://lox24.eu/api/kannel/{SERVICE_CODE}.php"
smsc-username = "{USER_ID}"
smsc-password = "{API_KEY}"
max-sms-octets = 1530

Where:

  • SERVICE_CODE - any available for your account service code in lower case, e.g. 'text2speech', 'direct' and etc.
  • USER_ID - your account ID, same as the client ID used to login at account.lox24.eu
  • API_KEY - an active API token with type 'API Kannel'. How to create it see here.

Sending DLR requests to Kannel

We will send delivery reports back to Kannel which will then send DLRs back to your endpoint.

To use the Kannel API just create a new SMSC config:

  group = smsc
  smsc = http
  system-type = kannel
  smsc-id = "lox24"
  allowed-smsc-id = "lox24"
  port = 10443
  send-url = "https://lox24.eu/api/kannel/{SERVICE_CODE}.php"
  smsc-username = "{USER_ID}"
  smsc-password = "{API_KEY}"
  dlr-url = "http://youhosthere.com:10443/?username={USER_ID}&password={API_KEY}"
  connect-allow-ip = "127.0.0.1;213.133.127.70;116.203.64.153;85.10.245.*"
  max-sms-octets = 1530

Where:

  • SERVICE_CODE - any available for your account service code in lower case, e.g. 'text2speech', 'direct' and etc.
  • USER_ID - your account ID, same as the client ID used to login at account.lox24.eu
  • API_KEY - an active API token with type 'API Kannel'. How to create it see here.

Additional notes

No DLR, but LOX24 notifications

If you set-up API v2 Status URL/E-mail in the lox24 web-account you are able to skip parameter dlr-url and get messages notifications in same way as if you sent SMS by our normal API v2 directly to a script on your server or by mail docs

SMSC port

In the SMSC config samples are using port 10443, but it can be any port which you like. We are highly recommend blocking it by the firewall and allow TCP connections from LOX24 servers (116.203.64.153,213.133.127.70,85.10.245.*) and well-known hosts.

Supported DLR variables

LOX24 Kannel API is a minimal Kannel implementation and does support only the following variables:

  • %d - Kannel report type (integer):

    • 1: Delivered to phone
    • 2: Non-Delivered to Phone
    • 4: Queued on SMSC
    • 8: Delivered to SMSC
    • 16: Non-Delivered to SMSC
  • %q - The international phone number (E.164), who will receive the message.

  • %T - The time of the delivery report expressed as seconds since UNIX epoch.

Note: You can use any other variables, but we can't guarantee the correctness of the data.

Parameters

from

(required)

Sender-ID of the message. Can be a number (up to 15 digits) or a text (up to 11 character). In case of a number please use preferentially E.164 phone number format. A sender of text may contain spaces but no other special characters. Please note that some countries do not support own sender IDs or do require pre-registration. Our system automatically tries to detect whether a sender ID is a text or a phone number. Avoid special characters in a number and enter it the same way as it would be dialed on a phone.

to

(required)

Recipient (international) number

text

(required)

The message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

coding

(optional)

You can send a SMS with parameter 'coding':

0 - GSM 03.38 (default), 1 - 8-bit or 2 - UCS-2 encoding.

In our case 8-bit and UCS-2 are the same (is_unicode = true) and will be handled as unicode SMS.

dlr-url

(optional)

Specify an URL and have us call it with delivery status reports. If parameter 'dlr-url' is missed then will be using API v2 DLR endpoint from user's settings (if them set).

deferred

(optional)

If given, the SMS center will postpone the message to be delivered at now plus this amount of minutes. If skipped then SMS will send ASAP.

Example of request

That example of get request which user sends to his Kannel smsbox which is listen on port 9001.

http://127.0.0.1:9001/cgi-bin/sendsms?dlr-url=http://yourhost.com/dlr_test.php?status=%d%26time=%T%26q=%q%26customid=1234567&from=sender&password=test1&smsc=lox24&text=test%20message&to=+49751234567&username=test1&coding=0

Advice

Add to a DLR url custom parameter with internal message ID for proper DLR request processing. In our example that's a customid = 1234567.

SSML and language detection

Voice language detection

Voice language will be detected automatically by the destination phone number if property voice_lang is set null by the following rules:

German (DE)

If default language isn't set, then German will be used for destination phone numbers with prefix: '+49', '+41', '+43', '+79'.

Spanish (ES)

If default language isn't set, then Spanish will be used for destination phone numbers with prefix: '+52', '+57', '+34', '+54', '+51', '+58', '+56', '+593', '+502', '+53', '+591', '+504', '+595', '+503', '+505', '+506', '+507', '+598', '+240'.

SSML Support

The API now supports a subset of SSML (Speech Synthesis Markup Language) for advanced voice message formatting.

Supported Features

Available Tags
  • <break> - Insert pauses in speech
  • <say-as> - Control pronunciation of text

Tag Specifications

<break> Tag
  • Purpose: Add pauses between words or sentences
  • Attributes: time (e.g., "1s", "500ms")
  • Pricing: <0.5ms = 1 char, <1s = 2 chars, <1,5s = 3 chars, etc.
<say-as> Tag
  • Purpose: Control how text is interpreted and spoken
  • Supported Attributes:
    • interpret-as="characters" - Spell out text character by character
  • Note: Currently only "characters" value is supported

Usage

Wrap your message content with the <speak> root element:

<speak>
  Your verification code is <say-as interpret-as="characters">A1B2C3</say-as>.
  <break time="1s"/>
  Please enter it now.
</speak>

Email to SMS

Sending SMS by Email

You can send SMS messages by email in two different ways: sending a single SMS to a specific phone number, or sending an SMS to a group of phone numbers.

Sending a Single SMS

To send a single SMS, the email should be formatted as follows:

{{user_id}}.{{api_key}}.{{phone}}.{{service_code}}.{{sender_id}}.{{text_source}}.{{encoding}}.{{max_sms_parts}}@mail2sms.lox24.eu

Sending to Multiple Phone Numbers (Group SMS)

To send an SMS to phone numbers from a specific group, use the following format:

{{user_id}}.{{api_key}}.{{group_id}}.{{service_code}}.{{sender_id}}.{{text_source}}.{{encoding}}.{{max_sms_parts}}@email2bulk.lox24.eu
Parameters:
Order Label Description
1 user_id User Id (integer), identical to the login to LOX24
2 api_key "Email2SMS" API key from the API Key settings page ("Settings" -> "API Settings")
3 phone/group_id For single SMS, this is the phone number in E.164 format without leading "+" (e.g. "491701234567"). For group SMS, this is the Group Id you can find in your web-account or request by API
4 service_code Service code 'text2speech' or 'direct' (default)
5 sender_id Sender Id: an integer from 1 to 6 (default 1). Selection of the sender from the senders previously saved in the account ("Settings" -> "Sender-IDs") If sender id wasn't found, then the default value is 'email2sms'.
6 text_source Text source: 0 - subject and body (by default), 1 - subject only, 2 - body only
7 encoding An integer: 0 - normal GSM (default), 1 - unicode, 2 - auto-detecting (by the whole text from request)
8 max_sms_parts An integer between 1 and 10. Default value is 1. There's a limit to the length of text when parsing the email. Extra characters are used for concatenation in messages longer than the standard limits.

Email Addresses Examples

Group SMS Examples

Send SMS to phones by a group id = 12345 (minimum parameters)

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct'

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct' and with sender id = 2

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct', with sender id = 2, and text from email's subject

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2.1@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct', with sender id = 2, with text from email's subject, and encoding auto-detection

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2.1.2@email2bulk.lox24.eu
Single SMS Examples

Send SMS to a single phone number "+1234567890" (minimum parameters)

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct'

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct' and sender id = 2

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct', with sender id = 2, and text from email's subject

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2.1@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct', with sender id = 2, with text from email's subject, and encoding auto-detection

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2.1.2@mail2sms.lox24.eu

Replies about errors

Most errors are ignored to reduce unwanted flooding, including authentication-related errors. But for some errors, the system sends a JSON response with an error description.

Error JSON

Property Description
field Error field in request
description Error description
request EMail address to which the request was sent
Example

{"field":"group_id","description":"Group with id = 12345 was not found!","request":"1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct@email2bulk.lox24.eu"}

Email Forwarding Warning

Please note that the mail gateway does not work with email forwarding. The email must be sent directly to the Mail2SMS gateway mailbox.

Notifications

Notifications

The event messaging system is a replacement for the outdated inbound sms and delivery report notification system (these old systems are considered obsolete, will not be improved, and are not recommended for use).

The event messaging system allows you to send information about events to URIs (http or email). You can customize the system to send notifications of one event to different URIs. You can also send different events to the same URI.

To configure the notifications, open the settings page (account.lox24.eu -> Settings -> Notifications), click "Create webhook" and enter in the URI field the http address or e-mail where you want to receive notifications. By default, all events will be sent to the specified URI. If you want to be notified only about certain events, check the box next to the events you want to be notified about.

If additional webhooks are required, repeat the instructions above. A maximum of five individual notification settings can be created.

The event information will be transmitted in the JSON object format, which has the same format for all events and differs only in the data of the event itself.

Structure of the event object

Field Type Description
id string (36 chars) Event ID
api_version string Version of the data structure
name string Event name, e.g. 'sms.delivery'
created_at integer Unix timestamp when event was created
attempt_total integer Total number of attempts (re-tries).
attempt_number integer Current number of attempt
data object Event's data (see list of events)
notification_task_id string (36 chars) Notification task ID (request identifier)
Event example
{
    "id": "a3cd6e19-8af2-498d-ad07-c7840f1b4ac8",
    "data": {
        "id": "d6c12ac4-cc7d-11ec-b6da-525400bbb7dc",
        "key_id": 8207,
        "dlr_code": 1,
        "status_code": 100,
        "callback_data": "some data from user's request here"
    },
    "name": "sms.delivery",
    "created_at": 1653378603,
    "api_version": "2022-05-25",
    "attempt_number": 1,
    "attempts_total": 4,
    "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

Event transport types

The notification system can send event information in two ways (transports): HTTPS and E-mail.

HTTP

The json is sent as the body of the http request with the header Content-Type: application/json. The service will continue to attempt to send the request (at increasing time intervals) until it receives a response with a status code >= 200 and < 300 or the number of attempts reaches the value specified in the attempt_number field.

NOTE: The response of your endpoint script is not taken into account therefore you have to monitor your script. In the case of malfunctions there is no notification by us.

E-mail

The json is sent as the email's body with a single attempt from an email no-reply@lox24.eu.

Service hosts and IP adresses

Alerts are sent from the following hosts 162.55.80.140 and 162.55.80.141. If you use a firewall, don't forget to whitelist those IP addresses.

Events list

Release notes

Release Notes tell you what’s new in API. As always, we welcome your feedback.

2.20 (2025-08-20)

Added

  • Response headers - All API responses now include a unique X-LOX24-REQUEST-ID header for support and tracking purposes

2.19 (2025-08-15)

Changed

  • OpenAPI specification reorganized - Major restructuring with multiple semantic errors fixed
  • Documentation rendering - Replaced dynamic OpenAPI JSON browser rendering with static compiled HTML pages

Added

  • Webhooks documentation - Added comprehensive webhooks description and implementation details
  • New webhook events for Email to SMS parsing: sms.email.parsing.success and sms.email.parsing.fail

2.18 (2024-10-03)

New

2.17 (2023-06-28)

New

2.16 (2023-01-09)

New

2.15 (2022-10-25)

New

2.14 (2022-08-17)

New

  • Added Phone's read-only properties subscribed_at, unsubscribed_at and unsubscribed_reason (see Phone API)

2.13 (2022-08-01)

New

2.12 (2022-05-05)

New

2.11 (2022-03-31)

New

2.10 (2021-09-23)

New

Fixes

  • The Incoming SMS list by default is ordered by decreasing values of the received_at field.

2.9 (2021-05-06)

New

  • Added the ability to authenticate using the new version of the API key with a single header X-LOX24-AUTH-TOKEN, header X-LOX24-AUTH-CLIENT-ID is deprecated and not recommended for use.

2.8.1 (2021-04-01)

New

  • Voice messages. Added voice_lang property to SMS and Bulk request/response objects.

2.8.0 (2021-02-21)

New

  • Temporary block IP address after multiple invalid authentication attempts.

2.7.1 (2021-02-16)

Fixes

2.7 (2020-07-17)

New

2.6 (2020-06-23)

New

  • Added ability to send SMS with additional data which will be send back to DLR endpoint.

2.5 (2020-06-10)

Developer

  • Added sample code per Phones and Groups endpoints.

2.4 (2020-05-29)

Developer

  • Added sample code in GoLang, Java and Python.

2.3 (2020-05-25)

New

  • Added boolean filter of Bulks list GET /bulks by the property is_dryrun.
  • Added timestamp property balance_changed_at to the endpoint GET /me.

2.2 (2020-05-19)

New

  • Created endpoints GET /incomings and GET /incomings/{id} to retrieve info about incoming and related SMS.
  • Enabled DLR report webhook on POST /sms/dryrun request.
  • Added exact filter by key_id on GET /bulks and GET /sms.

Developer

  • Added sample code in PHP, C# and Javascript per /sms, /bulks and /incomings endpoints.
  • Added section Inbound SMS and Reply-SMS about incoming SMS.

Fixed

  • Fixed a bug related to storing the ip address, date and time of the last API key use

2.1 (2020-03-18)

New

  • The feature that helps you make bulk sms in just one HTTP request:
    • with text template and contact groups
    • preliminary calculation of the cost of bulk SMS
    • fast server response and asynchronous processing
    • bulk SMS cancellation option even during processing
  • New endpoint POST /groups/{id}/phones/batch
    • combine multiple POST /groups/{id}/phones to an one request
  • Implemented filters GET /sms by the property bulk
  • Implemented filters GET /bulks by the property source
  • Added API key ID info to sms and bulks responses

Fixed

  • Added property price to SMS response object
  • Authorization parameters description in the API documentation

2.0-beta (2019-12-15)

New

  • API v2.0 has been developed in accordance with industry standards to make integration as easy as possible. In addition, you can now transmit large quantities of SMS with one query and retrieve detailed information about the messages at any time.

  • The extensive group functionality allows you to manage your mailing lists in our high-performance cloud and thus save your own resources. All this is still compliant with European data protection standards and the German Telecommunications Act.

Developer

You can find the new API description at https://doc.lox24.eu/