Download OpenAPI specification:
Nestas páginas você encontrará nossa documentação para transmissão de mensagens usando o Gateway SMS LOX24. A documentação ajuda você a integrar nossa API SMS em suas próprias aplicações e, portanto, a enviar e receber mensagens SMS. Você pode encontrar nossa API SMS em https://api.lox24.eu. Você acessa as funções individuais de acordo com uma /função. Por exemplo, https://api.lox24.eu/me para consultar sua conta de cliente e https://api.lox24.eu/sms para enviar um SMS. Todos os endpoints requerem autenticação por cabeçalho HTTP.
O Content-Type para requisições POST e PUT pode ser definido como application/json
ou multipart/form-data
(em endpoints com uploads de arquivos).
Cada resposta da API inclui um identificador de solicitação exclusivo no cabeçalho X-LOX24-REQUEST-ID
.
Este identificador alfanumérico de 32 caracteres é gerado para cada solicitação e pode ser usado
para fins de suporte ao relatar problemas ou rastrear chamadas específicas da API.
A maioria dos objetos de requisições/respostas de data e hora são timestamps unix (inteiro).
Se mais de três requisições forem recebidas de um endereço IP com dados de autenticação incorretos dentro de um minuto, todas as requisições subsequentes deste IP receberão uma resposta com o status 429 (Muitas Requisições) dentro dos próximos dez minutos.
Todos os endpoints exigem que você esteja autenticado. Para se autenticar, você precisará criar um token de API a partir da sua conta web (http://account.lox24eu "Configurações" e "Configurações de API"). Uma vez que você tenha sua Chave de API, você pode passá-la como um cabeçalho HTTP assim:
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"
}'
Também continuamos a suportar a versão antiga de autenticação com dois cabeçalhos 'X-LOX24-CLIENT-ID' e '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'
Nunca compartilhe suas chaves secretas. Mantenha-as protegidas e seguras. Se uma chave for publicada involuntariamente, você pode desativá-la ou excluí-la a qualquer momento em sua conta web (https://account.lox24.eu) nas "Configurações" e "Configurações de API".
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.
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.
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/me \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "id": 1,
- "currency": "EUR",
- "balance_changed_at": 0,
- "is_text_deleted": true,
- "balance_amount": 0,
- "services": [
- "economy"
], - "groups": {
- "24512": "/groups/24512",
- "24513": "/groups/24513",
- "24519": "/groups/24519"
}
}
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.
If you don't want to send single SMS, but want to send bulk SMS via the API, then the endpoint "bulks" is relevant.
O evento 'sms.delivery' envia alterações no dlr_code
. Isso permite que você descubra se uma mensagem SMS foi entregue com sucesso, rejeitada ou ainda está sendo entregue.
Cada SMS tem um código de relatório de entrega Notificações de webhook
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "sms.delivery" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Evento enviado quando o status de entrega do SMS muda
{- "id": "a3cd6e19-8af2-498d-ad07-c7840f1b4ac8",
- "api_version": "2022-05-25",
- "name": "sms.delivery",
- "created_at": 1653378603,
- "attempt_total": 4,
- "attempt_number": 1,
- "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"
}, - "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}
O evento 'sms.delivery.dryrun' é usado para uma emulação de envio de SMS. Veja Simular o envio de um SMS (para teste).
Cada SMS tem um código de relatório de entrega (DLR).
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "sms.delivery.dryrun" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
{- "id": "string",
- "api_version": "2022-05-25",
- "name": "sms.delivery.dryrun",
- "created_at": 0,
- "attempt_total": 4,
- "attempt_number": 1,
- "data": {
- "id": "string",
- "key_id": 1,
- "dlr_code": 1,
- "status_code": 0,
- "callback_data": "string"
}, - "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}
Acionado quando o email para SMS é analisado com sucesso
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "sms.email.parsing.success" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
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": {
- "sms": [
- {
- "uuid": "f8a34ce6-ee9f-33ae-d8fc-747622ddd9fe",
- "to": "+4915123456789",
- "text": "Hello, this is your SMS message content parsed from email."
}
], - "email": {
- "id": "email-456",
- "from": "sender@example.com",
- "to": "sms@your-domain.com",
- "subject": "SMS Request",
- "body": "Send SMS to +4915123456789: Hello, this is your SMS message content parsed from email."
}
}, - "notification_task_id": "5590fa05-fb88-6fc0-bf3b-4d32f63dd863"
}
Acionado quando a análise de email para SMS falha
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "sms.email.parsing.fail" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
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": {
- "field": "recipient",
- "description": "Invalid phone number format",
- "email": {
- "id": "email-789",
- "from": "sender@example.com",
- "to": "sms@your-domain.com",
- "subject": "SMS Request",
- "body": "Send SMS to invalid-phone: Test message"
}
}, - "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}
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.
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_unicode | boolean Boolean filter SMS by the |
uuid | string Find one SMS by the unique ID |
uuid[] | Array of strings Find many SMS by the unique IDs |
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[] | Array of strings Exact filter SMS by |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/sms \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@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"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
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.
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})$ ID do remetente ou número de telefone |
phone required | string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ Recipient (international) number:
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) Fonte ou origem da mensagem |
is_unicode | boolean or null (property.messages.is_unicode) True se a mensagem contém caracteres Unicode, False caso contrário |
(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 |
Exemplo de uma mensagem SMS simples com apenas campos obrigatórios
{- "text": "Olá! Esta é uma mensagem SMS de teste.",
- "sender_id": "+491701234567",
- "phone": "+14155552671"
}
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"
}
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.
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})$ ID do remetente ou número de telefone |
phone required | string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ Recipient (international) number:
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) Fonte ou origem da mensagem |
is_unicode | boolean or null (property.messages.is_unicode) True se a mensagem contém caracteres Unicode, False caso contrário |
(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 |
Exemplo de uma mensagem SMS simples com apenas campos obrigatórios
{- "text": "Olá! Esta é uma mensagem SMS de teste.",
- "sender_id": "+491701234567",
- "phone": "+14155552671"
}
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"
}
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.
_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_unicode | boolean Boolean filter SMS by the |
uuid | string Find one SMS by the unique ID |
uuid[] | Array of strings Find many SMS by the unique IDs |
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[] | Array of strings Exact filter SMS by |
curl -X POST https://api.lox24.eu/sms/ops/batch_cancel?uuid=20f39273-0566-11ea-a637-96000028b339 \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "deleted_sms_count": 0
}
With this API you can delete SMS any messages
_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_unicode | boolean Boolean filter SMS by the |
uuid | string Find one SMS by the unique ID |
uuid[] | Array of strings Find many SMS by the unique IDs |
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[] | Array of strings Exact filter SMS by |
#!/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'
{- "deleted_sms_count": 0
}
Getting the single SMS entity by the ID (uuid
). If SMS not found then HTTP code 404 will response.
uuid required | string SMS ID ( |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/sms/20f39273-0566-11ea-a637-96000028b339 \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@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"
}
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.
uuid required | string SMS ID ( |
#!/usr/bin/env bash curl -X DELETE https://api.lox24.eu/sms/20f39273-0566-11ea-a637-96000028b339 \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
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.
If you don't want to send mass SMS but want to send individual SMS via the API, then the endpoint "sms" is relevant.
O evento bulk.email.parsing.fail
é enviado em caso de erro na análise do e-mail.
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "bulk.email.parsing.fail" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Evento enviado quando a análise de email em massa falha
{- "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": {
- "field": "to",
- "description": "Invalid phone number format",
- "email": {
- "id": "email-124",
- "from": "sender@example.com",
- "to": "bulk@your-domain.com",
- "subject": "SMS Bulk Request",
- "body": "Invalid message content"
}
}, - "notification_task_id": "6601ab16-ca99-7fe1-cf4c-5e43f74ee974"
}
O evento bulk.email.parsing.success
é enviado na análise bem-sucedida de um e-mail Email to SMS Bulk.
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "bulk.email.parsing.success" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Evento enviado quando o email em massa é analisado com sucesso
{- "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": {
- "bulk": {
- "id": "f8a34ce6-ee9f-33ae-d8fc-747622ddd9fe",
- "status": 10,
- "created_at": 1653378803
}, - "email": {
- "id": "email-123",
- "from": "sender@example.com",
- "to": "bulk@your-domain.com",
- "subject": "SMS Bulk Request",
- "body": "Message content here"
}
}, - "notification_task_id": "5590fa05-fb88-6fc0-bf3b-4d32f63dd863"
}
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.
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_dryrun | boolean Boolean filter Bulks by the |
exists[is_unicode] | boolean Boolean and exists filter Bulks by the |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/bulks \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@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
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Create a bulk SMS campaign by sending a POST request with message details and recipient information.
The new bulks resource
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})$ ID do remetente ou número de telefone |
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:
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 se a mensagem contém caracteres Unicode, False caso contrário |
property.messages.service_code (any) or null | |
source | integer or null (property.messages.source) Fonte ou origem da mensagem |
(property.messages.voice_lang (string or null)) or null | |
property.messages.is_text_deleted (boolean) or null |
{- "delivery_at": 0,
- "sender_id": "+491701234567",
- "text": "string",
- "phones": [
- "+14155552671"
], - "msg_groups": [
- 0
], - "is_unicode": true,
- "service_code": "direct",
- "source": 0,
- "voice_lang": "DE",
- "is_text_deleted": true
}
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "uuid": "string",
- "delivery_at": 0,
- "sender_id": "+491701234567",
- "text": "string",
- "phones": [
- "+14155552671"
], - "msg_groups": [
- 0
], - "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
}
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.
The new bulks resource
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})$ ID do remetente ou número de telefone |
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:
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 se a mensagem contém caracteres Unicode, False caso contrário |
property.messages.service_code (any) or null | |
source | integer or null (property.messages.source) Fonte ou origem da mensagem |
(property.messages.voice_lang (string or null)) or null | |
property.messages.is_text_deleted (boolean) or null |
{- "delivery_at": 0,
- "sender_id": "+491701234567",
- "text": "string",
- "phones": [
- "+14155552671"
], - "msg_groups": [
- 0
], - "is_unicode": true,
- "service_code": "direct",
- "source": 0,
- "voice_lang": "DE",
- "is_text_deleted": true
}
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "uuid": "string",
- "delivery_at": 0,
- "sender_id": "+491701234567",
- "text": "string",
- "phones": [
- "+14155552671"
], - "msg_groups": [
- 0
], - "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
}
Getting the single Bulk entity by the ID (uuid
). If Bulk not found then HTTP code 404 will response.
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Bulk ID |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339 \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "uuid": "string",
- "delivery_at": 0,
- "sender_id": "+491701234567",
- "text": "string",
- "phones": [
- "+14155552671"
], - "msg_groups": [
- 0
], - "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
}
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.
id required | string Bulk ID |
#!/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 Bulk's processing if it has status_code = 0
(New) or status_code = 5
and related to the Bulk messages with is_sent = False
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Bulk ID |
#!/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'
{- "@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
}
Getting short info about Bulk status
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Bulk ID |
#!/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'
{- "@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
}
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.
O evento 'sms.incoming' é enviado em um SMS de entrada/resposta (originado pelo celular - SMS-MO).
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "sms.incoming" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Evento enviado quando um SMS recebido é recebido
{- "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
- "api_version": "2022-05-25",
- "name": "sms.incoming",
- "created_at": 1653378703,
- "attempt_total": 1,
- "attempt_number": 1,
- "data": {
- "id": "e7d23bd5-dd8e-22fd-c7eb-636511ccc8ed",
- "to": "+1234567890",
- "from": "+490987654321",
- "text": "Hello, this is a reply message",
- "received_at": 1653378703,
- "msg_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}, - "notification_task_id": "4489ef94-ef77-5ef9-ae2a-3c21e52cc752"
}
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.
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 |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/incomings \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "uuid": "string",
- "to": "+14155552671",
- "from": "+14155552671",
- "received_at": 0,
- "text": "string",
- "msg_uuid": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
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.
uuid required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Incoming message ID |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/incomings/20f39273-0566-11ea-a637-96000028b339 \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "uuid": "string",
- "to": "+14155552671",
- "from": "+14155552671",
- "received_at": 0,
- "text": "string",
- "msg_uuid": "string"
}
Received SMS (inbound or reply SMS) can be deleted from the server based on the UUID.
uuid required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Incoming message ID |
#!/usr/bin/env bash curl -X DELETE https://api.lox24.eu/incomings/20f39273-0566-11ea-a637-96000028b339 \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
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.
Retorna todos os seus grupos (lista de distribuição SMS).
page | integer Default: 1 Current page |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/groups \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@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"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Com este comando você cria uma lista de mailing SMS que é armazenada em nosso sistema para você. Uma lista de mailing tem um nome, uma descrição e cinco colunas adicionais que você pode adicionar além do número de telefone.
The new groups resource
name required | string (property.group.name) [ 1 .. 50 ] characters Nome do grupo |
description | string or null (property.group.description) <= 255 characters Descrição do grupo |
name_a | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_b | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_c | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_d | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_e | string or null (property.group.column_name) <= 50 characters Nome da coluna |
object or null | |
deleted_at | string or null <date-time> (property.group.deleted_at) Data e hora em que o grupo será excluído |
id | integer (property.group.id) >= 1 ID do grupo |
count_items | integer (property.group.count_items) >= 0 Contagem de itens no grupo |
{- "name": "string",
- "description": "string",
- "name_a": "string",
- "name_b": "string",
- "name_c": "string",
- "name_d": "string",
- "name_e": "string",
- "phones": {
- "property1": {
- "phone": "string",
- "a": "string",
- "b": "string",
- "c": "string",
- "d": "string",
- "e": "string",
- "callback_data": "string"
}, - "property2": {
- "phone": "string",
- "a": "string",
- "b": "string",
- "c": "string",
- "d": "string",
- "e": "string",
- "callback_data": "string"
}
}, - "deleted_at": "2019-08-24T14:15:22Z",
- "id": 1,
- "count_items": 0
}
{- "@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"
}
Retorna os dados do grupo específico, como nome do grupo e da coluna.
id required | integer >= 0 ID do grupo |
#!/usr/bin/env bash curl https://api.lox24.eu/groups/12344 \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@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"
}
Alterar a configuração de um grupo, como o nome do grupo ou descrição.
id required | integer >= 0 ID do grupo |
The updated groups resource
name required | string (property.group.name) [ 1 .. 50 ] characters Nome do grupo |
description | string or null (property.group.description) <= 255 characters Descrição do grupo |
name_a | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_b | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_c | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_d | string or null (property.group.column_name) <= 50 characters Nome da coluna |
name_e | string or null (property.group.column_name) <= 50 characters Nome da coluna |
object or null | |
deleted_at | string or null <date-time> (property.group.deleted_at) Data e hora em que o grupo será excluído |
id | integer (property.group.id) >= 1 ID do grupo |
count_items | integer (property.group.count_items) >= 0 Contagem de itens no grupo |
{- "name": "string",
- "description": "string",
- "name_a": "string",
- "name_b": "string",
- "name_c": "string",
- "name_d": "string",
- "name_e": "string",
- "phones": {
- "property1": {
- "phone": "string",
- "a": "string",
- "b": "string",
- "c": "string",
- "d": "string",
- "e": "string",
- "callback_data": "string"
}, - "property2": {
- "phone": "string",
- "a": "string",
- "b": "string",
- "c": "string",
- "d": "string",
- "e": "string",
- "callback_data": "string"
}
}, - "deleted_at": "2019-08-24T14:15:22Z",
- "id": 1,
- "count_items": 0
}
{- "@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"
}
Excluir o grupo junto com todos os números de telefone associados.
id required | integer >= 0 ID do grupo |
#!/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'
Esta interface serve de complemento aos grupos. Através dos telefones pode adicionar, apagar ou modificar números de telefone na sua lista de distribuição de SMS. Também é possível exportar o conteúdo de um grupo através desta interface.
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).
id required | integer >= 0 ID do grupo |
#!/usr/bin/env bash curl https://api.lox24.eu/groups/7116/file/csv \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
Recupera a coleção de Telefones por ID do Grupo
id required | integer >= 0 ID do grupo |
#!/usr/bin/env bash curl https://api.lox24.eu/groups/7116/phones \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@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
}
]
}
Criar uma entrada com um número de telefone.
id required | integer >= 0 ID do grupo |
The new phones resource
phone required | string (property.phone.phone) <= 30 characters Número de telefone |
a | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
b | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
c | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
d | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
e | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
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. |
{- "phone": "string",
- "a": "string",
- "b": "string",
- "c": "string",
- "d": "string",
- "e": "string",
- "callback_data": "string"
}
{- "@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
}
Em vez de enviar múltiplas solicitações, é melhor enviar uma única solicitação com uma lista de objetos de Telefone como corpo da solicitação.
id required | integer >= 0 ID do grupo |
The new groups resource
phone required | string (property.phone.phone) <= 30 characters Número de telefone |
a | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
b | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
c | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
d | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
e | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
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. |
[- {
- "phone": "string",
- "a": "string",
- "b": "string",
- "c": "string",
- "d": "string",
- "e": "string",
- "callback_data": "string"
}
]
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "hydra:totalItems": 0,
- "hydra:member": {
- "status": 0,
- "body": {
- "@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
}
}
}
Consultar uma entrada com um número de telefone.
id required | integer >= 0 Identificador do telefone |
#!/usr/bin/env bash curl https://api.lox24.eu/phones/12344 \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@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
}
Editar uma entrada com um número de telefone.
id required | integer >= 0 Identificador do telefone |
The updated phones resource
phone required | string (property.phone.phone) <= 30 characters Número de telefone |
a | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
b | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
c | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
d | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
e | string or null (property.phone.column) <= 1530 characters Dados da coluna do telefone |
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. |
{- "phone": "string",
- "a": "string",
- "b": "string",
- "c": "string",
- "d": "string",
- "e": "string",
- "callback_data": "string"
}
{- "@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
}
Excluir uma entrada com um número de telefone.
id required | integer >= 0 Identificador do telefone |
#!/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'
LOX24 allows you to shorten long URLs by replacing them with short URLs using our l24.pw domain.
This makes it also possible to implement powerful marketing campaigns. Thus, a unique short link can be sent with each SMS. This allows you to track which of your customers clicked on the link. With this data, you can interact with customers in a more targeted way or improve your campaigns.
But that's not all! LOX24 also offers special short links that allow the user to subscribe or unsubscribe to your SMS newsletters. This allows you to automate the double opt-in and opt-out in a legally compliant way.
Please check the chapter Create a Short Link Campaign
There are two types of campaigns:
Please check the chapter Create a subscription form campaign
A special type of short link campaign that redirects the user to a subscription form. You also need to add a group id to which the phone numbers of those users who submitted the subscription form will be added.
Please check the chapter Create a unsubscription form campaign
A special type of short link campaign that redirects the user to an unsubscribe form. You can also add a group id from which to remove the phone numbers of those users who have submitted the unsubscribe form. Even if the group is not listed when unsubscribing, the user's number will be added to the blocked list (see page ).
Please check the chapter Send the SMS or Create the Bulk for the general funtionality.
To send a SMS with a short link you need to put the following placeholder[slink campaing_id]
in the message text, whereby campaing_id
is the value of the campaign-id. You will receive this value as a return value when you create a campaign. Of course, you can also query the value for existing campaigns. For example, this is what your SMS text would look like for a campaign with the ID eGxoGRMq:
Please check a link [slink eGxoGRMq]
Our system replaces the value of the placeholder with the correct link for each SMS recipient. You can also use SMS dry-run mode to check roughly how the text with the link will look like and what the final price of the SMS will be.
(This information is only available for campaigns with Advanced type)
Number of clicks on an individual SMS can be found by SMS id or list by all SMS.
You are able to get a full list of the short links which were generated by all your campaigns or by some campaign.
There are endpoints which provide detalized information about user requests:
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.
Retrieve the list of all existing Short Link Campaigns ordered by the field created_at
in descending order.
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 |
name | string Filtrar links curtos por nome (correspondência parcial) |
url | string Partial case-insensitive text filter by a destination URL |
created_at | integer Exact filter entities by the creation timestamp |
created_at[] | Array of integers Exact and range filter entities by the creation timestamps |
type | integer Exact filter short links by type (exact match) |
type[] | Array of integers Range filter short links by type (array of values) |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/short_link_campaigns \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "type": 1,
- "id": "string",
- "name": "string",
- "url": "string",
- "created_at": 0,
- "group_id": 0
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Create a new Short Link Campaign entity with destination url, type and name
The new short_link_campaigns resource
type required | integer (property.short_link_campaigns.type) Enum: 1 2 Tipo da campanha de links curtos |
name required | string (property.short_link_campaigns.name) <= 100 characters Nome da campanha de links curtos |
url required | string (property.short_link_campaigns.url) URL da campanha de links curtos |
group_id | integer or null (property.short_link_campaigns.group_id) ID do grupo da campanha de links curtos |
{- "type": 1,
- "name": "string",
- "url": "string",
- "group_id": 0
}
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "type": 1,
- "id": "string",
- "name": "string",
- "url": "string",
- "created_at": 0,
- "group_id": 0
}
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.
The new short_link_campaigns resource
name required | string (property.short_link_campaigns.name) <= 100 characters Nome da campanha de links curtos |
group_id required | integer or null (property.short_link_campaigns.group_id) ID do grupo da campanha de links curtos |
{- "name": "string",
- "group_id": 0
}
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "type": 1,
- "id": "string",
- "name": "string",
- "url": "string",
- "created_at": 0,
- "group_id": 0
}
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).
The new short_link_campaigns resource
name required | string (property.short_link_campaigns.name) <= 100 characters Nome da campanha de links curtos |
group_id required | integer or null (property.short_link_campaigns.group_id) ID do grupo da campanha de links curtos |
{- "name": "string",
- "group_id": 0
}
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "type": 1,
- "id": "string",
- "name": "string",
- "url": "string",
- "created_at": 0,
- "group_id": 0
}
Retrieve a specific Short Link Campaign by it's ID. If the Campaign is not found then the HTTP code response will be 404.
code required | string short_link_campaigns code |
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "type": 1,
- "id": "string",
- "name": "string",
- "url": "string",
- "created_at": 0,
- "group_id": 0
}
Edit the values of a specific Short Link Campaigns. If the Campaign is not found then the HTTP code response will be 404.
code required | string short_link_campaigns code |
The updated short_link_campaigns resource
type required | integer (property.short_link_campaigns.type) Enum: 1 2 Tipo da campanha de links curtos |
name required | string (property.short_link_campaigns.name) <= 100 characters Nome da campanha de links curtos |
url required | string (property.short_link_campaigns.url) URL da campanha de links curtos |
group_id | integer or null (property.short_link_campaigns.group_id) ID do grupo da campanha de links curtos |
{- "type": 1,
- "name": "string",
- "url": "string",
- "group_id": 0
}
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "type": 1,
- "id": "string",
- "name": "string",
- "url": "string",
- "created_at": 0,
- "group_id": 0
}
Delete a Short Link Campaign. If the Campaign is not found then the HTTP code response will be 404.
code required | string short_link_campaigns code |
#!/usr/bin/env bash curl -X DELETE https://api.lox24.eu/short_link_campaigns/campaign_id_here \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
List of all short links which were used in all existing campaigns.
page | integer Default: 1 Current page |
_order[updated_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sort a list by 'updated_at' property |
url | string Partial case-insensitive text filter by a destination URL |
updated_at | integer Exact filter entities by the last update timestamp |
updated_at[] | Array of integers Exact and range filter entities by the last update timestamps |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/short_links \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "short_code": "string",
- "url": "string",
- "updated_at": 0,
- "requests": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Retrieve all the information about a specific short link.
shortCode required | string Código do link curto |
#!/usr/bin/env bash curl https://api.lox24.eu/short_links/short_link_id \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "short_code": "string",
- "url": "string",
- "updated_at": 0,
- "requests": "string"
}
List of all short links which were used in a specific campaign.
code required | string short_link_campaigns code |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/short_link_campaigns/{id}/short_links \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "short_code": "string",
- "url": "string",
- "updated_at": 0,
- "requests": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
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 of all requests by a SMS Bulk ID
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Bulk ID |
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 Filtrar solicitações de links curtos por data maior que |
date[gte] | string Filtrar solicitações de links curtos por data maior ou igual |
date[lt] | string Filtrar solicitações de links curtos por data menor que |
date[lte] | string Filtrar solicitações de links curtos por data menor ou igual |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/bulks/{bulk_id_here}/requests \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "id": 0,
- "ip": "192.168.1.1",
- "user_agent": "string",
- "url": "string",
- "date": 0,
- "country": "US",
- "referer": "string",
- "type": 0,
- "browser": "string",
- "browser_version": "string",
- "os": "string",
- "os_version": "string",
- "software_type": "string",
- "hardware_type": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Lists all clicks on shortlinks for a specific campaign
code required | string short_link_campaigns code |
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 Filtrar solicitações de links curtos por data maior que |
date[gte] | string Filtrar solicitações de links curtos por data maior ou igual |
date[lt] | string Filtrar solicitações de links curtos por data menor que |
date[lte] | string Filtrar solicitações de links curtos por data menor ou igual |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu//short_link_campaigns/{campaign_id}/requests \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "id": 0,
- "ip": "192.168.1.1",
- "user_agent": "string",
- "url": "string",
- "date": 0,
- "country": "US",
- "referer": "string",
- "type": 0,
- "browser": "string",
- "browser_version": "string",
- "os": "string",
- "os_version": "string",
- "software_type": "string",
- "hardware_type": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Lists all clicks on shortlinks
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 |
browser_version | string Partial case-insensitive text filter by a browser version |
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 Filtrar solicitações de links curtos por data maior que |
date[gte] | string Filtrar solicitações de links curtos por data maior ou igual |
date[lt] | string Filtrar solicitações de links curtos por data menor que |
date[lte] | string Filtrar solicitações de links curtos por data menor ou igual |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/short_link_requests \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "id": 0,
- "ip": "192.168.1.1",
- "user_agent": "string",
- "url": "string",
- "date": 0,
- "country": "US",
- "referer": "string",
- "type": 0,
- "browser": "string",
- "browser_version": "string",
- "os": "string",
- "os_version": "string",
- "software_type": "string",
- "hardware_type": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Retrieve the detail information about a short link click
id required | string ID da solicitação de link curto |
#!/usr/bin/env bash curl https://api.lox24.eu/short_link_requests/request_id_here \ -H 'Content-Type: application/json' \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "id": 0,
- "ip": "192.168.1.1",
- "user_agent": "string",
- "url": "string",
- "date": 0,
- "country": "US",
- "referer": "string",
- "type": 0,
- "browser": "string",
- "browser_version": "string",
- "os": "string",
- "os_version": "string",
- "software_type": "string",
- "hardware_type": "string"
}
List of all requests by a short link campaign code
shortCode required | string Código do link curto |
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 |
browser_version | string Partial case-insensitive text filter by a browser version |
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 Filtrar solicitações de links curtos por data maior que |
date[gte] | string Filtrar solicitações de links curtos por data maior ou igual |
date[lt] | string Filtrar solicitações de links curtos por data menor que |
date[lte] | string Filtrar solicitações de links curtos por data menor ou igual |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/short_links/{short_link_id}/requests \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "id": 0,
- "ip": "192.168.1.1",
- "user_agent": "string",
- "url": "string",
- "date": 0,
- "country": "US",
- "referer": "string",
- "type": 0,
- "browser": "string",
- "browser_version": "string",
- "os": "string",
- "os_version": "string",
- "software_type": "string",
- "hardware_type": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
List of all requests by a single SMS ID
uuid required | string SMS ID ( |
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 Filtrar solicitações de links curtos por data maior que |
date[gte] | string Filtrar solicitações de links curtos por data maior ou igual |
date[lt] | string Filtrar solicitações de links curtos por data menor que |
date[lte] | string Filtrar solicitações de links curtos por data menor ou igual |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/sms/{sms_id}/requests \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "id": 0,
- "ip": "192.168.1.1",
- "user_agent": "string",
- "url": "string",
- "date": 0,
- "country": "US",
- "referer": "string",
- "type": 0,
- "browser": "string",
- "browser_version": "string",
- "os": "string",
- "os_version": "string",
- "software_type": "string",
- "hardware_type": "string"
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
By using this interface, you will be able to measure the number of clicks of your SMS mailings.
Retrieves the list of sms which contain a short link and the number of clicks on these links.
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 |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/sms/clicks \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "uuid": "string",
- "created_at": 0,
- "requests_count": 0
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
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.
uuid required | string SMS ID ( |
#!/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'
{- "@id": "string",
- "@type": "string",
- "@context": "string",
- "uuid": "string",
- "created_at": 0,
- "requests_count": 0
}
O Fraud Detection API ajuda a identificar pedidos suspeitos ao seu serviço. A API recebe dados de você, tais como o número de telefone, e-mail e endereço IP de seu cliente em potencial, em conformidade com os regulamentos*** de proteção de dados válidos na Europa. Nosso sistema os verifica usando bancos de dados, algoritmos e inteligência artificial. O API finalmente fornece uma avaliação da probabilidade ou risco de fraude*. O risco é medido como a probabilidade de fraude de 0 a 100, onde 0
representa uma baixa probabilidade de fraude (bom valor de risco) e 100
representa uma probabilidade extremamente alta de fraude (mau valor de risco).
O serviço também permite que você mesmo verifique cada parte do pedido separadamente, por exemplo, passando apenas os dados telefônicos.
Além da pontuação de risco, a resposta AP de Detecção de Fraude também contém informações adicionais para ajudá-lo com sua avaliação de risco própria*:
Dependendo da tarifa selecionada ('economia', 'pró', 'direto'), a resposta e a velocidade de processamento do pedido são diferentes. Os pedidos de economia são adequados para um simples login, por exemplo. Consultas profissionais para o registro de um novo cliente e consultas diretas para a venda de um produto:
Como a pontuação leva algum tempo, a solicitação é processada em modo assíncrono e, após o processamento, o serviço envia os dados da solicitação de volta no formato JSON para a URL HTTP ou e-mail que você especificou. Você pode definir este valor na conta web em Configurações e Notificações (Notificações de Evento). Você também pode verificar o status da solicitação através de sua identificação enviando uma solicitação para o API. Entretanto, recomendamos fortemente que você utilize o sistema de notificação (webhook), pois o serviço pode bloquear suas solicitações se houver um grande número de solicitações de você.
Triggered when a Fraud Detection request is completed
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) Versão da estrutura de dados do webhook de notificação |
name | string Value: "fraud-check.done" Nome do evento do Webhook |
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 ] Número total de tentativas de entrega de webhooks de notificação |
attempt_number | integer (property.common.attempt_number) >= 1 Número atual da tentativa de notificação do webhook |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Evento enviado quando a verificação de detecção de fraude é concluída
{- "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": {
- "check_id": "fraud-check-123",
- "result": "clean",
- "confidence_score": 0.95
}, - "notification_task_id": "7712ab27-cd00-8ef2-da5d-6f54f85ff085"
}
Retrieves the list of all previous Fraud Check requests
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 |
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 |
#!/usr/bin/env bash curl -X GET https://api.lox24.eu/fraud-checks \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
{- "hydra:member": [
- {
- "@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": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "phone": "+14155552671",
- "created_at": 0,
- "updated_at": 0,
- "is_possible": true,
- "is_valid": true,
- "region": "US",
- "number_type": "string"
}, - "request_email": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "email": "user@example.com",
- "created_at": 0,
- "updated_at": 0,
- "is_possible": true,
- "is_anonymous": true
}, - "request_ip": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "ip": "strings",
- "created_at": 0,
- "updated_at": 0,
- "iso2": "US",
- "state": "US",
- "city": "string",
- "postcode": "string",
- "geolocation": [
- 0
], - "isp_name": "string",
- "isp_risk_score": 100,
- "proxy_type": "VPN",
- "connection_type": "dialup",
- "is_ok": true
}, - "request_address": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "iso2": "US",
- "city": "string",
- "postcode": "string",
- "street_number": "string",
- "street_name": "string",
- "created_at": 0,
- "updated_at": 0
}, - "price": 0
}
], - "hydra:totalItems": 0,
- "hydra:view": {
- "@id": "string",
- "type": "string",
- "hydra:first": "string",
- "hydra:last": "string",
- "hydra:previous": "string",
- "hydra:next": "string"
}, - "hydra:search": {
- "@type": "string",
- "hydra:template": "string",
- "hydra:variableRepresentation": "string",
- "hydra:mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}
}
Send a Fraud Check request and get risk score value back.
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 |
{- "service_code": "economy",
- "callback_data": "string",
- "phone": "+14155552671",
- "email": "string",
- "ip": "strings",
- "address": {
- "iso2": "US",
- "city": "string",
- "postcode": "string",
- "street_number": "string",
- "street_name": "string"
}
}
{- "@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": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "phone": "+14155552671",
- "created_at": 0,
- "updated_at": 0,
- "is_possible": true,
- "is_valid": true,
- "region": "US",
- "number_type": "string"
}, - "request_email": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "email": "user@example.com",
- "created_at": 0,
- "updated_at": 0,
- "is_possible": true,
- "is_anonymous": true
}, - "request_ip": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "ip": "strings",
- "created_at": 0,
- "updated_at": 0,
- "iso2": "US",
- "state": "US",
- "city": "string",
- "postcode": "string",
- "geolocation": [
- 0
], - "isp_name": "string",
- "isp_risk_score": 100,
- "proxy_type": "VPN",
- "connection_type": "dialup",
- "is_ok": true
}, - "request_address": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "iso2": "US",
- "city": "string",
- "postcode": "string",
- "street_number": "string",
- "street_name": "string",
- "created_at": 0,
- "updated_at": 0
}, - "price": 0
}
Returns the data of a specific Fraud Check request
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 |
#!/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'
{- "@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": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "phone": "+14155552671",
- "created_at": 0,
- "updated_at": 0,
- "is_possible": true,
- "is_valid": true,
- "region": "US",
- "number_type": "string"
}, - "request_email": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "email": "user@example.com",
- "created_at": 0,
- "updated_at": 0,
- "is_possible": true,
- "is_anonymous": true
}, - "request_ip": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "ip": "strings",
- "created_at": 0,
- "updated_at": 0,
- "iso2": "US",
- "state": "US",
- "city": "string",
- "postcode": "string",
- "geolocation": [
- 0
], - "isp_name": "string",
- "isp_risk_score": 100,
- "proxy_type": "VPN",
- "connection_type": "dialup",
- "is_ok": true
}, - "request_address": {
- "@id": "string",
- "@type": "string",
- "@context": "string",
- "status_code": 0,
- "iso2": "US",
- "city": "string",
- "postcode": "string",
- "street_number": "string",
- "street_name": "string",
- "created_at": 0,
- "updated_at": 0
}, - "price": 0
}
Remove all information about a previous Fraud Check request.
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 |
#!/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'
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.
The API uses two types of the text filters:
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).
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'
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'
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'
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
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'
The order filter allows you to sort a collection against the given properties.
Order parameter _order
.
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'
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 |
Each SMS has delivery report code (DLR). There are three ways to get DLR code and additional info info:
GET /sms/{id}
(id - SMS id) and check property dlr_code
200
or >= 300
service will do additional attempts (only per DLR code DELIVERY_OK
) but maximum four. NOTE: The answer of your script is not taken into account therefore you have to monitor your script. In the case of malfunctions there is no notification by us.
Property | Type | Description |
---|---|---|
uuid | UUID | SMS id |
dlr_code | integer | DLR status code |
key_id | integer | API key id used to sent request to API |
phone | string | Recipinet phone number from SMS (in DLR by email only) |
callback_data | string | String which posted to POST /sms in property callback_data or if sms was send by POST /bulks as Phone's property callback_data |
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 |
Generally, the SMS text has to be transfered with UTF-8 encoding (and possibly urlencoded) to the gateway. You have the option to use the parameter "encoding" to decide if you want to send a normal 7 bit or UCS-2 SMS.
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.
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 | à |
Basic Character Set Extension
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 | | |
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.
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).
You can get incoming SMS (mobile originated - SMS-MO) sent by a webhook to your web server. To receive incoming SMS you need to send Economy SMS to Germany OR you can order an inbound phone number by request to the support (berlin@lox24.eu).
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) |
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
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".
There are two types of SMSC configurations possible to send SMS with LOX24 via Kannel:
Note: What's about a DLR request you can read here:
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:
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:
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
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.
LOX24 Kannel API is a minimal Kannel implementation and does support only the following variables:
%d - Kannel report type (integer):
%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.
(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.
(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.
(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.
(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).
(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.
That example of get request which user sends to his Kannel smsbox which is listen on port 9001.
Add to a DLR url custom parameter with internal message ID for proper DLR
request processing. In our example that's a customid
= 1234567.
Voice language will be detected automatically by destination phone number
if property voice_lang
is null
by follow rules:
If default language is null then by destination phone number with prefix: '+49', '+41', '+43', '+79'.
If default language is null then by destination phone number with prefix: '+52', '+57', '+34', '+54', '+51', '+58', '+56', '+593', '+502', '+53', '+591', '+504', '+595', '+503', '+505', '+506', '+507', '+598', '+240'.
The API now supports a subset of SSML (Speech Synthesis Markup Language) for advanced voice message formatting.
<break>
- Insert pauses in speech<say-as>
- Control pronunciation of text<break>
Tagtime
(e.g., "1s", "500ms")<say-as>
Taginterpret-as="characters"
- Spell out text character by characterWrap 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>
You can send SMS messages via email in two different ways: sending a single SMS to a specific phone number, or sending an SMS to a group of phone numbers.
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
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
Order | Label | Description |
---|---|---|
1 | user_id | User Id (integer) |
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 "+". 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', 'direct' (default) |
5 | sender_id | Sender Id: an integer from 1 to 6 (default 1). If sender id wasn't found, then the default value is 'email2sms'. |
6 | text_source | Text source: 0 - subject + body (by default), 1 - subject, 2 - body |
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. |
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
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
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 |
{"field":"group_id","description":"Group with id = 12345 was not found!","request":"1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct@email2bulk.lox24.eu"}
Please note that the mail gateway does not work with email forwarding. The email must be sent directly to the Mail2SMS gateway mailbox.
O sistema de mensagens de eventos foi criado como substituto do sistema obsoleto de notificação de status de entrega de SMS de saída e entrada (esses sistemas são considerados obsoletos, não serão melhorados e não são recomendados para uso).
O sistema de mensagens de eventos permite que você envie informações sobre eventos específicos para URIs especificadas (http ou email). Você pode personalizar o sistema para enviar notificações de um evento para diferentes URIs.
Para configurar as notificações, abra a página de configurações (account.lox24.eu -> Configurações -> Notificações), clique em "Criar um novo webhook" e insira no campo URI o endereço http ou e-mail para o qual você deseja receber notificações. Por padrão, todos os eventos possíveis serão enviados para a URI especificada. Se você quiser ser notificado apenas sobre certos eventos, marque a caixa ao lado dos eventos sobre os quais deseja ser notificado.
Se forem necessárias notificações adicionais, repita as instruções acima. Um máximo de cinco configurações individuais de notificação podem ser criadas.
As informações do evento serão notificadas no formato de objeto JSON, que tem o mesmo formato para todos os eventos e difere apenas nos dados do próprio evento.
Campo | Tipo | Descrição |
---|---|---|
id | string (36 chars) | ID do evento |
api_version | string | Versão da estrutura de dados |
name | string | Nome do evento, ex. 'sms.delivery' |
created_at | integer | Timestamp unix quando o evento foi criado |
attempt_total | integer | Número total de tentativas (re-tentativas) |
attempt_number | integer | Número atual da tentativa |
data | object | Dados do evento (veja lista de eventos) |
notification_task_id | string (36 chars) | ID da tarefa de notificação (identificador da solicitação) |
{
"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"
}
O sistema de notificação pode enviar informações de eventos de duas maneiras (transportes): HTTP e E-mail.
O json é enviado como o corpo da requisição http com o cabeçalho Content-Type: application/json
.
O serviço continuará tentando enviar a requisição (em intervalos de tempo crescentes) até que receba uma resposta com um código de status >= 200 e < 300 ou o número de tentativas atinja o valor especificado no campo attempt_number
.
NOTA: A resposta do seu script de endpoint não é levada em consideração, portanto, você deve monitorar seu script. Em caso de mau funcionamento, não há notificação por nossa parte.
O json é enviado como o corpo do e-mail com uma única tentativa de um e-mail no-reply@lox24.eu
.
Os alertas são enviados dos seguintes hosts 162.55.80.140
e 162.55.80.141
. Se você usar um firewall, não se esqueça de colocar esses endereços IP na lista de permissões.
Release Notes tell you what’s new in API. As always, we welcome your feedback.
X-LOX24-REQUEST-ID
para fins de suporte e rastreamento.sms.email.parsing.success
e sms.email.parsing.fail
is_text_deleted
of endpoint Simulate sending an SMS (for testing) and Create the Bulkmax_sms_parts
of endpointbulk.email.parsing.success
and bulk.email.parsing.fail
balance_changed_at
to the endpoint GET /me
.callback_data
of endpoint Retrieves the collection of SMSmax_sms_parts
of endpointbulk.email.parsing.success
and bulk.email.parsing.fail
subscribed_at
, unsubscribed_at
and unsubscribed_reason
(see Phone API)received_at
field.X-LOX24-AUTH-TOKEN
, header X-LOX24-AUTH-CLIENT-ID
is deprecated and not recommended for use.voice_lang
property to SMS and Bulk request/response objects.GET /bulks
by the property is_dryrun
.balance_changed_at
to the endpoint GET /me
.GET /incomings
and GET /incomings/{id}
to retrieve info about incoming and related SMS.POST /sms/dryrun
request.key_id
on GET /bulks
and GET /sms
./sms
, /bulks
and /incomings
endpoints.GET /sms
by the property bulk
GET /bulks
by the property source
sms
and bulks
responsesprice
to SMS response objectAPI 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.
You can find the new API description at https://doc.lox24.eu/