Download OpenAPI specification:
In diesem Dokument finden Sie die Spezifikation für unsere LOX24 SMS Gateway API. Das Dokument hilft Ihnen dabei unsere SMS API in Ihre Applikation zu integieren und damit SMS zu versenden und zu empfangen. Sie können unsere SMS API unter der URL https://api.lox24.eu finden. Die einzelnen Funkionen sprechen Sie mit Hilfe eines /funktion an. Z.B. https://api.lox24.eu/me um Ihre Account Informationen abzurufen oder https://api.lox24.eu/sms um eine SMS zu versenden.
Der Content-Type für POST und PUT Anfragen wird gesetzt über application/json
oder multipart/form-data
(für Schnittstellen mit Dateiupload).
Jede API-Antwort enthält eine eindeutige Anforderungskennung im Header „X-LOX24-REQUEST-ID“. Diese 32-stellige alphanumerische Kennung wird für jede Anfrage generiert und kann für Supportzwecke verwendet werden, wenn Probleme gemeldet oder bestimmte API-Aufrufe nachverfolgt werden sollen.
Die meisten Zeitangaben werden als unix timestamp (integer) übertragen.
Wenn innerhalb einer Minute mehr als drei Anforderungen mit falschen Authentifizierungsdaten von einer IP-Adresse empfangen werden, dann werden alle nachfolgenden Anfragen von dieser IP für die nächsten zehn Minuten mit einer Antwort Status 429 (Too Many Requests) gesperrt.
Alle Funktionen erfordern eine Authentifizierung. Hierzu müssen Sie einen API-Key v2 in Ihrem Web-Account erstellen unter (http://account.lox24eu “Einstellungen” und “API-Einstellungen”). Sobald Sie den Key erstellt haben übertragen Sie diesen als HTTP header in dieser Form:
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"
}'
Wir unterstützen auch weiterhin die alte Version der Authentifizierung mit den beiden Headern 'X-LOX24-CLIENT-ID' und 'X-LOX24-AUTH-TOKEN', wobei die Client-ID identisch mit der Kundennummer ist, welche für den Login im Web-Account verwendet wird.
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'
Teilen oder veröffentkichen Sie Ihren geheimen API-Key niemals. Halten Sie den Key geheim. Ein unabsichtlich veröffentlichter Key kann jederzeit in Ihrem Web-Account (https://account.lox24.eu) in den "Einstellungen" und "API-Einstellungen" deaktiviert oder gelöscht werden.
User ist eine Hilfsschnittstelle, um z.B. den Kontostand bzw. die Kreditlinie abzufragen. Dies kann hilfreich sein, um zu bestimmen ob noch ausreichend Guthaben vorhanden ist, um weitere SMS zu versenden.
Mit dieser Schnittstelle können Sie Ihren Prepaid-Kontostand bzw. Ihre Postpaid-Kreditlinie prüfen. Das Guthaben wird Ihnen exkl. Mehrwertsteuer angezeigt. Daneben liefert die Schnittstelle Informationen zu Ihren verfügbaren SMS-Typen und vorhandenen Massen-SMS Gruppen.
#!/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"
}
}
Die SMS Schnittstelle dient dazu einzelne SMS zu versenden. Dies beinhaltet den richtigen SMS Versand aber auch den "Dryrun" zu Testzwecken. Daneben gibt es eine Reihe von Funktionen um versendete SMS abzufragen, SMS zu löschen oder den Versand zu stoppen.
Wenn Sie keine einzelnen SMS versenden wollen, sondern Massen-SMS über die API senden möchten, dann ist der Endpoint "bulks" relevant.
Das Ereignis 'sms.delivery' sendet bei Änderungen des dlr_code
. So können Sie feststellen, ob eine SMS erfolgreich zugestellt wurde, abgelehnt wurde oder noch zugestellt wird.
Jede übermittelte SMS hat einen Zustellungsbericht-Code Webhook-Ereignisbenachrichtigungen
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "sms.delivery" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Ereignis gesendet wenn sich der SMS-Zustellstatus ändert
{- "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"
}
Das Ereignis 'sms.delivery.dryrun' wird für einen simulierten SMS-Versand verwendet. Siehe Simulieren Sie den Versand einer SMS (zum Testen).
Jede übermittelte SMS hat einen Zustellungsbericht-Code (DLR).
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "sms.delivery.dryrun" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
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"
}
Wird ausgelöst, wenn E-Mail zu SMS erfolgreich geparst wird
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "sms.email.parsing.success" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
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"
}
Wird ausgelöst, wenn das Parsen von E-Mail zu SMS fehlschlägt
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "sms.email.parsing.fail" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
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"
}
Gibt die Liste der Textnachrichten in der Postbox zurück, geordnet nach dem Feld created_at
in absteigender Ordnung. Die Postbox enthält alle gesendeten, nicht gesendeten und abgebrochenen SMS. Optional können Sie auch nach dem Preis oder dem Zeitpunkt der Übermittlung an den Netzbetreiber sortieren. Sie haben auch die Möglichkeit, verschiedene Suchkriterien zu übertragen, um die Ausgabe der Nachrichten des Postfachs einzuschränken.
page | integer Default: 1 Aktuelle Seite |
_order[created_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Entität erstellt wurde |
_order[gateway_sent_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere nach Verarbeitungsdatum der SMS |
is_sent | boolean Boolean Filter für das Feld |
is_unicode | boolean Boolean Filter für das Feld |
uuid | string Finde eine SMS Anhand Ihrer unique ID |
uuid[] | Array of strings Finde mehrere SMS Anhand Ihrer unique IDs |
iso2 | string Exact Filter SMS nach Ihrem Zielland (ISO 3166-1 alpha-2) |
iso2[] | Array of strings Exact Filter SMS nach Ihren Zielländern (ISO 3166-1 alpha-2) |
dlr_code | integer Exact Filter SMS nach dem Zustellbericht |
dlr_code[] | Array of integers Exact Filter SMS nach den Zustellberichten |
status_code | integer Exact Filter SMS nach dem Status Code |
status_code[] | Array of integers Exact Filter SMS nach den Status Codes |
gateway_sent_at | integer Range Filter SMS nach Ihrer Übertragungszeit zum Netzbetreiber |
gateway_sent_at[] | Array of integers Exact und range Filter nach Übertragungszeit an den Netzbetreiber |
delivery_at | integer Exact Filter für die Zustellzeit |
delivery_at[] | Array of integers Exact und range Filter für die Zustellzeit |
created_at | integer Exact Filter Entitäten nach Ihrer Übertragungszeit an die API |
created_at[] | Array of integers Exact und range Filter nach der Erstellungszeit der Entitäten |
chars_count | integer Range Filter SMS nach Ihrer Zeichenzahl |
chars_count[] | Array of integers Exact und range Filter nach der Zeichenzahl |
parts_count | integer Range Filter SMS nach der Anzahl der SMS-Teile |
parts_count[] | Array of integers Exact und range Filter nach der Anzahl der SMS-Teile |
bulk | string Exact Filter nach der Massen-SMS (Bulk) |
bulk[] | Array of strings Exact und range Filter nach der Massen-SMS (Bulk) |
source | integer Range Filter SMS nach der vom Kunden übertragenen nummerischen ID |
source[] | Array of integers Exact und range Filter der SMS nach dem Parameter sources |
text | string Partial Filter SMS nach dem Nachrichtentext |
phone | string Partial Filter SMS nach der Zielrufnummer |
sender_id | string Partial Filter SMS nach der Absenderkennung |
ip | string Partial Filter SMS nach der Ursprungs-IP |
key_id | integer Exact Filter nach der API Key ID |
key_id[] | Array of integers Exact Filter nach den API Key IDs |
callback_data | string Exact Filter nach |
callback_data[] | Array of strings Exact Filter nach |
#!/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
}
]
}
}
Sendet die Textnachricht mittels POST request welcher alle erforderlichen Daten enthält, wie Text und Zielrufnummer.
The new sms resource
text required | string (property.sms.text) Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8. |
sender_id required | string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$ Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist. |
phone required | string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ Zielrufnummer:
Wenn Sie Ihre Rufnummer nicht im E.164 Format übertragen, versucht unser System die Rufnummer anhand Ihres Firmensitzes aus Ihren Profildaten in E.164 Format zu konvertieren. Um Probleme bei der automatischen Konvertierung zu vermeiden, nutzen Sie bitte bevorzugt das E.164 Format. |
property.messages.delivery_at (integer) or null | |
source | integer or null (property.messages.source) Um Ihre SMS später besser im Einzelverbindungsnachweis identifizieren zu können, gibt es die Möglichkeit eine individuelle nummerische (integer) ID mitzugeben. |
is_unicode | boolean or null (property.messages.is_unicode) Definiert ob Sie eine normale GSM 03.38 SMS oder eine Unicode SMS verschicken möchten:
|
(property.messages.voice_lang (string or null)) or null | |
callback_data | string or null (property.common.callback_data) <= 36 characters Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen. |
property.messages.service_code (any) or null | |
property.messages.is_text_deleted (boolean) or null |
Beispiel einer einfachen SMS-Nachricht mit nur erforderlichen Feldern
{- "text": "Hallo! Das ist eine Test-SMS.",
- "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"
}
Diese Schnittstelle simuliert die Antwort der API auf den SMS Versand, überträgt aber keine SMS ins Mobilfunknetz und verursacht keine Kosten. Die Schnittstelle kann zum Testen im Integrationsprozess verwendet werden. Der Parameter uuid
hat immer den Rückgabewert 11111111-2222-3333-4444-55555555555
. Die Daten werden bei LOX24 nicht gespeichert, dadurch ist eine Abfrage der übertragenen Daten mit GET /sms/{id}
nicht möglich. DLR Zustellberichte werden wie für richtige SMS an Ihre URL oder Mail zurückübertragen, wobei der Status 0 ist.
The new sms resource
text required | string (property.sms.text) Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8. |
sender_id required | string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$ Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist. |
phone required | string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ Zielrufnummer:
Wenn Sie Ihre Rufnummer nicht im E.164 Format übertragen, versucht unser System die Rufnummer anhand Ihres Firmensitzes aus Ihren Profildaten in E.164 Format zu konvertieren. Um Probleme bei der automatischen Konvertierung zu vermeiden, nutzen Sie bitte bevorzugt das E.164 Format. |
property.messages.delivery_at (integer) or null | |
source | integer or null (property.messages.source) Um Ihre SMS später besser im Einzelverbindungsnachweis identifizieren zu können, gibt es die Möglichkeit eine individuelle nummerische (integer) ID mitzugeben. |
is_unicode | boolean or null (property.messages.is_unicode) Definiert ob Sie eine normale GSM 03.38 SMS oder eine Unicode SMS verschicken möchten:
|
(property.messages.voice_lang (string or null)) or null | |
callback_data | string or null (property.common.callback_data) <= 36 characters Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen. |
property.messages.service_code (any) or null | |
property.messages.is_text_deleted (boolean) or null |
Beispiel einer einfachen SMS-Nachricht mit nur erforderlichen Feldern
{- "text": "Hallo! Das ist eine Test-SMS.",
- "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"
}
Mit dieser Schnittstelle können Sie die Übertragung von SMS stoppen welche in der Zukunft verschickt werden sollen (zeitversetzt). Außerdem kann im Einzelfall die Übertragung an den Netzbetreiber einige wenige Sekunden dauern, so dass Sie auch SMS für den Sofortversand im Ausnahmefall noch löschen können.
_order[created_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Entität erstellt wurde |
_order[gateway_sent_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere nach Verarbeitungsdatum der SMS |
is_sent | boolean Boolean Filter für das Feld |
is_unicode | boolean Boolean Filter für das Feld |
uuid | string Finde eine SMS Anhand Ihrer unique ID |
uuid[] | Array of strings Finde mehrere SMS Anhand Ihrer unique IDs |
iso2 | string Exact Filter SMS nach Ihrem Zielland (ISO 3166-1 alpha-2) |
iso2[] | Array of strings Exact Filter SMS nach Ihren Zielländern (ISO 3166-1 alpha-2) |
dlr_code | integer Exact Filter SMS nach dem Zustellbericht |
dlr_code[] | Array of integers Exact Filter SMS nach den Zustellberichten |
status_code | integer Exact Filter SMS nach dem Status Code |
status_code[] | Array of integers Exact Filter SMS nach den Status Codes |
gateway_sent_at | integer Range Filter SMS nach Ihrer Übertragungszeit zum Netzbetreiber |
gateway_sent_at[] | Array of integers Exact und range Filter nach Übertragungszeit an den Netzbetreiber |
delivery_at | integer Exact Filter für die Zustellzeit |
delivery_at[] | Array of integers Exact und range Filter für die Zustellzeit |
created_at | integer Exact Filter Entitäten nach Ihrer Übertragungszeit an die API |
created_at[] | Array of integers Exact und range Filter nach der Erstellungszeit der Entitäten |
chars_count | integer Range Filter SMS nach Ihrer Zeichenzahl |
chars_count[] | Array of integers Exact und range Filter nach der Zeichenzahl |
parts_count | integer Range Filter SMS nach der Anzahl der SMS-Teile |
parts_count[] | Array of integers Exact und range Filter nach der Anzahl der SMS-Teile |
bulk | string Exact Filter nach der Massen-SMS (Bulk) |
bulk[] | Array of strings Exact und range Filter nach der Massen-SMS (Bulk) |
source | integer Range Filter SMS nach der vom Kunden übertragenen nummerischen ID |
source[] | Array of integers Exact und range Filter der SMS nach dem Parameter sources |
text | string Partial Filter SMS nach dem Nachrichtentext |
phone | string Partial Filter SMS nach der Zielrufnummer |
sender_id | string Partial Filter SMS nach der Absenderkennung |
ip | string Partial Filter SMS nach der Ursprungs-IP |
key_id | integer Exact Filter nach der API Key ID |
key_id[] | Array of integers Exact Filter nach den API Key IDs |
callback_data | string Exact Filter nach |
callback_data[] | Array of strings Exact Filter nach |
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
}
Mit dieser API können Sie Massen-SMS (Bulk) unwiderruflich löschen, egal ob bereits versendet oder nicht. Die SMS erscheinen auch im Einzelverbindungsnachweis nicht mehr. Bitte beachten Sie, dass aus diesem Grund eine spätere Reklamation des Einzelverbindungsnachweieses nicht mehr möglich sind. Wenn Sie die SMS nur stoppen möchten, ist dies nicht die richtige Schnittstelle.
_order[created_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Entität erstellt wurde |
_order[gateway_sent_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere nach Verarbeitungsdatum der SMS |
is_sent | boolean Boolean Filter für das Feld |
is_unicode | boolean Boolean Filter für das Feld |
uuid | string Finde eine SMS Anhand Ihrer unique ID |
uuid[] | Array of strings Finde mehrere SMS Anhand Ihrer unique IDs |
iso2 | string Exact Filter SMS nach Ihrem Zielland (ISO 3166-1 alpha-2) |
iso2[] | Array of strings Exact Filter SMS nach Ihren Zielländern (ISO 3166-1 alpha-2) |
dlr_code | integer Exact Filter SMS nach dem Zustellbericht |
dlr_code[] | Array of integers Exact Filter SMS nach den Zustellberichten |
status_code | integer Exact Filter SMS nach dem Status Code |
status_code[] | Array of integers Exact Filter SMS nach den Status Codes |
gateway_sent_at | integer Range Filter SMS nach Ihrer Übertragungszeit zum Netzbetreiber |
gateway_sent_at[] | Array of integers Exact und range Filter nach Übertragungszeit an den Netzbetreiber |
delivery_at | integer Exact Filter für die Zustellzeit |
delivery_at[] | Array of integers Exact und range Filter für die Zustellzeit |
created_at | integer Exact Filter Entitäten nach Ihrer Übertragungszeit an die API |
created_at[] | Array of integers Exact und range Filter nach der Erstellungszeit der Entitäten |
chars_count | integer Range Filter SMS nach Ihrer Zeichenzahl |
chars_count[] | Array of integers Exact und range Filter nach der Zeichenzahl |
parts_count | integer Range Filter SMS nach der Anzahl der SMS-Teile |
parts_count[] | Array of integers Exact und range Filter nach der Anzahl der SMS-Teile |
bulk | string Exact Filter nach der Massen-SMS (Bulk) |
bulk[] | Array of strings Exact und range Filter nach der Massen-SMS (Bulk) |
source | integer Range Filter SMS nach der vom Kunden übertragenen nummerischen ID |
source[] | Array of integers Exact und range Filter der SMS nach dem Parameter sources |
text | string Partial Filter SMS nach dem Nachrichtentext |
phone | string Partial Filter SMS nach der Zielrufnummer |
sender_id | string Partial Filter SMS nach der Absenderkennung |
ip | string Partial Filter SMS nach der Ursprungs-IP |
key_id | integer Exact Filter nach der API Key ID |
key_id[] | Array of integers Exact Filter nach den API Key IDs |
callback_data | string Exact Filter nach |
callback_data[] | Array of strings Exact Filter nach |
#!/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
}
Gibt die Daten einer spezifischen SMS mittels Ihrer ID (uuid
) zurück. Wenn die SMS nicht gefunden wurde, wird eine HTTP 404 Antwort zurück gegeben.
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"
}
Löscht eine SMS anhand Ihrer ID (uuid
). Die Antwort enthält den Body und einen HTTP Code 204 im Erfolgsfall oder wenn die SMS nicht gefunden wurde einen 404. Achtung, bitte bedenken Sie, dass die SMS ebenfalls aus dem Einzelverbindungsnachweis gelöscht wird. Eine spätere Reklamation der Abrechnung ist in diesem Fall nicht mehr möglich.
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'
Die bulks Schnittstelle dient dazu Massen-SMS zu versenden. Dies beinhaltet den richtigen Massen-SMS Versand an mehrere Rufnummern und/oder Gruppen aber auch den "Dryrun" zu Testzwecken. Daneben gibt es eine Reihe von Funktionen um den Status einer Massensendung abzufragen oder die Sendung zu stoppen.
Wenn Sie keine Massen-SMS versenden wollen, sondern individuelle SMS über die API senden möchten, dann ist der Endpoint "sms" relevant.
Das Ereignis bulk.email.parsing.fail
wird bei einem E-Mail-Parsing-Fehler gesendet.
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "bulk.email.parsing.fail" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Ereignis gesendet wenn das Massen-E-Mail-Parsing fehlschlägt
{- "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"
}
Das Ereignis bulk.email.parsing.success
wird bei erfolgreichem Parsen einer E-Mail zu SMS Bulk E-Mail gesendet.
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "bulk.email.parsing.success" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Ereignis gesendet wenn die Massen-E-Mail erfolgreich geparst wird
{- "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"
}
Gibt die Übersicht aller Massen-SMS Kampagnen zurück. Geordnet nach dem Feld created_at
in absteigender Reihenfolge. Das Postfach enthält alle gesendeten, nicht gesendeten und abgebrochenen SMS. Optional können Sie auch nach dem Preis oder dem Zeitpunkt der Übermittlung an den Netzbetreiber sortieren. Sie haben auch die Möglichkeit, verschiedene Suchkriterien zu übertragen, um die Ausgabe der Nachrichten des Postfachs einzuschränken.
page | integer Default: 1 Aktuelle Seite |
_order[created_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Entität erstellt wurde |
_order[delivery_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Nachricht an das Mobilfunknetz übertragen wurde/sollte |
_order[processed_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Entität zuletzt geändert wurde |
_order[msg_total_count] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortieren Sie nach der Gesamtzahl der zugehörigen SMS |
text | string Partial Filter SMS nach dem Nachrichtentext |
sender_id | string Partial Filter SMS nach der Absenderkennung |
status_code | integer Exact Filter nach dem Status Code |
status_code[] | Array of integers Exact Filter nach den Status Codes |
created_at | integer Exact Filter Entitäten nach Ihrer Übertragungszeit an die API |
created_at[] | Array of integers Exact und range Filter nach der Erstellungszeit der Entitäten |
delivery_at | integer Exact Filter für die Zustellzeit |
delivery_at[] | Array of integers Exact und range Filter für die Zustellzeit |
processed_at | integer Exact Filter nach der letzten Änderung der Entitäten |
processed_at[] | Array of integers Exact and range filter entities by the last changes timestamps |
msg_total_count | integer Exact Filter nach der Anzahl der SMS in der Massen-SMS Sendung |
msg_total_count[] | Array of integers Exact und range Filter nach der Anzahl der SMS in der Massen-SMS Sendung |
source | integer Range Filter SMS nach der vom Kunden übertragenen nummerischen ID |
source[] | Array of integers Exact und range Filter der SMS nach dem Parameter sources |
key_id | integer Exact Filter nach der API Key ID |
key_id[] | Array of integers Exact Filter nach den API Key IDs |
is_unicode | boolean Boolean Filter für das Feld |
is_dryrun | boolean Boolean Filter nach dem Feld |
exists[is_unicode] | boolean Boolean und exists Filter nach dem Feld |
#!/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
}
]
}
}
Erstellen Sie eine Massen-SMS-Kampagne, indem Sie eine POST-Anfrage mit Nachrichtendetails und Empfängerinformationen senden.
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})$ Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist. |
text required | string (property.bulks.text) <= 1785 characters Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8. Der SMS Text kann personalisiert werden wenn als Empfänger eine Gruppe gewählt wurde und diese über zusätzliche Daten in den jeweiligen Spalten verfügt. Als Platzhalter kann "[Name colA]", "[Name colB]" etc. in den SMS Text eingebaut werden |
phones required | Array of strings or null (property.bulks.phones) [ items [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ ] Liste mit Zielrufnummern. Alternativ oder als Ergänzung zu msg_groups. Beispiel '491701234567','417833663636','820101234567' Rufnummern im Format:
Wenn Sie Ihre Rufnummer nicht im E.164 Format übertragen, versucht unser System die Rufnummer anhand Ihres Firmensitzes aus Ihren Profildaten in E.164 Format zu konvertieren. Um Probleme bei der automatischen Konvertierung zu vermeiden, nutzen Sie bitte bevorzugt das E.164 Format. |
msg_groups | Array of integers or null (property.bulks.msg_groups) Liste der Gruppen an welche die SMS versendet werden soll. Alternativ oder als Ergänzung zu phones. |
is_unicode | boolean or null (property.messages.is_unicode) Definiert ob Sie eine normale GSM 03.38 SMS oder eine Unicode SMS verschicken möchten:
|
property.messages.service_code (any) or null | |
source | integer or null (property.messages.source) Um Ihre SMS später besser im Einzelverbindungsnachweis identifizieren zu können, gibt es die Möglichkeit eine individuelle nummerische (integer) ID mitzugeben. |
(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
}
Dieser Endpunkt wird zu Testzwecken verwendet, um die Erstellung eines Bulk zu simulieren, ohne dass tatsächlich SMS erstellt und gegen eine Gebühr an den Netzbetreiber weitergeleitet werden.
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})$ Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist. |
text required | string (property.bulks.text) <= 1785 characters Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8. Der SMS Text kann personalisiert werden wenn als Empfänger eine Gruppe gewählt wurde und diese über zusätzliche Daten in den jeweiligen Spalten verfügt. Als Platzhalter kann "[Name colA]", "[Name colB]" etc. in den SMS Text eingebaut werden |
phones required | Array of strings or null (property.bulks.phones) [ items [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ ] Liste mit Zielrufnummern. Alternativ oder als Ergänzung zu msg_groups. Beispiel '491701234567','417833663636','820101234567' Rufnummern im Format:
Wenn Sie Ihre Rufnummer nicht im E.164 Format übertragen, versucht unser System die Rufnummer anhand Ihres Firmensitzes aus Ihren Profildaten in E.164 Format zu konvertieren. Um Probleme bei der automatischen Konvertierung zu vermeiden, nutzen Sie bitte bevorzugt das E.164 Format. |
msg_groups | Array of integers or null (property.bulks.msg_groups) Liste der Gruppen an welche die SMS versendet werden soll. Alternativ oder als Ergänzung zu phones. |
is_unicode | boolean or null (property.messages.is_unicode) Definiert ob Sie eine normale GSM 03.38 SMS oder eine Unicode SMS verschicken möchten:
|
property.messages.service_code (any) or null | |
source | integer or null (property.messages.source) Um Ihre SMS später besser im Einzelverbindungsnachweis identifizieren zu können, gibt es die Möglichkeit eine individuelle nummerische (integer) ID mitzugeben. |
(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
}
Fragt die einzelne Massen-SMS Sendung (Bulk) anhand der Bulk ID (uuid
) ab. Wenn die Sendung nicht gefunden wird, ist die Antwort ein HTTP Code 404.
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Massen-SMS ID (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
}
Entfernen Sie die Bulk-Sendung nach der ID . Endpunkt-Antwort hat keinen Body und sendet im Erfolgsfall den HTTP-Code 204, wenn die SMS entfernt wurde, oder 404, wenn sie nicht existiert. Achtung! Die Sendung wird auch aus dem Einzelverbindungsnachweis gelöscht. Spätere Reklamationen sind daher wegen fehlender Rückverfolgbarkeit ausgeschlossen.
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'
Massen-SMS Verarbeitung abbrechen, wenn der status_code = 0
(Neue nicht versendete Massen-SMS) oder status_code = 5
(Massen-SMS in Verarbeitung) ist und für die einzelnen SMS welche nocht nicht versendet sind (is_sent = False
)
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Massen-SMS ID (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
}
Kurze Informationen über den Bulk-Status erhalten
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Massen-SMS ID (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
}
Diese Schnittstelle dient dazu Inbound SMS abzufragen (pull). Die Liste aller eingehenden SMS, sowie den Inhalt einer bestimmten SMS. Bitte beachten Sie aber, dass Sie die SMS auch als push erhalten können, sobald diese eingehen. Die push Variante ist zu bevorzugen, da Sie hier nicht auf eingehende SMS prüfen müssen, sondern diese direkt an Ihr Script gesendet bekommen.
Das Ereignis 'sms.incoming' wird bei einer eingehenden/beantwortenden SMS (mobile originated - SMS-MO - Inbound SMS) gesendet.
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "sms.incoming" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Ereignis gesendet wenn eine eingehende SMS empfangen wird
{- "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"
}
Abrufen der Liste der eingehenden SMS, geordnet nach dem Feld received_at
in absteigender Reihenfolge. Das Postfach enthält alle empfangen Inbound-SMS und Antwort-SMS. Für SMS-Antworten wird die Eigenschaft 'msg_uuid' durch den entsprechend Wert der ursprünglich versendeten /sms gefüllt.
page | integer Default: 1 Aktuelle Seite |
_order[received_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortieren nach timestamp als die SMS empfangen wurde |
text | string Partial Filter SMS nach dem Nachrichtentext |
from | string Partial Textfilter nach der Absenderrufnummer |
to | string Partial Textfilter nach der Inbound Rufnummer |
msg_uuid | string Exact Filter nach der ursprünglichen SMS ID |
msg_uuid[] | Array of strings Exact Filter nach den ursprünglichen SMS IDs |
#!/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
}
]
}
}
Abrufen der spezifischen eingehenden SMS. Das Postfach enthält alle empfangen Inbound-SMS und Antwort-SMS. Für SMS-Antworten wird die Eigenschaft 'msg_uuid' durch den entsprechend Wert der ursprünglich versendeten /sms gefüllt.
uuid required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... ID der eingehenden Nachricht |
#!/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"
}
Eingegangene SMS (Inbound- oder Antwort SMS) kann anhand der UUID vom Server gelöscht werden.
uuid required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... ID der eingehenden Nachricht |
#!/usr/bin/env bash curl -X DELETE https://api.lox24.eu/incomings/20f39273-0566-11ea-a637-96000028b339 \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
Die Funktion "Groups" ermöglicht es Ihnen SMS Verteiler für eine Massen-SMS anzulegen. Jede Gruppe ist ein Verteiler welcher mehrere Nummern enthält. Mit den Funktionen können Sie Gruppen erstellen, ändern, einsehen oder löschen.
Gibt alle Ihre Gruppen (SMS-Verteilerliste) zurück.
page | integer Default: 1 Aktuelle Seite |
#!/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
}
]
}
}
Mit diesem Befehl erstellen Sie eine SMS-Mailingliste, die in unserem System für Sie gespeichert wird. Eine Mailingliste hat einen Namen, eine Beschreibung und fünf zusätzliche Spalten, die Sie zusätzlich zur Telefonnummer hinzufügen können.
The new groups resource
name required | string (property.group.name) [ 1 .. 50 ] characters Gruppenname |
description | string or null (property.group.description) <= 255 characters Gruppenbeschreibung |
name_a | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_b | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_c | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_d | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_e | string or null (property.group.column_name) <= 50 characters Name der Spalte |
object or null | |
deleted_at | string or null <date-time> (property.group.deleted_at) Datum und Uhrzeit, wann die Gruppe gelöscht wird |
id | integer (property.group.id) >= 1 Gruppen-ID |
count_items | integer (property.group.count_items) >= 0 Anzahl der Elemente in der Gruppe |
{- "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"
}
Gibt die Daten der spezifischen Gruppe zurück, wie Gruppen- und Spaltenname.
id required | integer >= 0 Gruppen-ID |
#!/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"
}
Ändern Sie die Konfiguration einer Gruppe, wie den Gruppennamen oder die Beschreibung.
id required | integer >= 0 Gruppen-ID |
The updated groups resource
name required | string (property.group.name) [ 1 .. 50 ] characters Gruppenname |
description | string or null (property.group.description) <= 255 characters Gruppenbeschreibung |
name_a | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_b | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_c | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_d | string or null (property.group.column_name) <= 50 characters Name der Spalte |
name_e | string or null (property.group.column_name) <= 50 characters Name der Spalte |
object or null | |
deleted_at | string or null <date-time> (property.group.deleted_at) Datum und Uhrzeit, wann die Gruppe gelöscht wird |
id | integer (property.group.id) >= 1 Gruppen-ID |
count_items | integer (property.group.count_items) >= 0 Anzahl der Elemente in der Gruppe |
{- "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"
}
Löschen Sie die Gruppe zusammen mit allen zugehörigen Telefonnummern.
id required | integer >= 0 Gruppen-ID |
#!/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'
Diese Schnittstelle dient als Ergänzung zu Gruppen. Mit Hilfe von Telefonen können Sie Telefonnummern in Ihrer SMS-Verteilerliste hinzufügen, löschen oder ändern. Es ist auch möglich, den Inhalt einer Gruppe über diese Schnittstelle zu exportieren.
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 |
Die Namen der Spalten entsprechen den Werten in den Feldern name_X
des entsprechenden /group
Objekts. Wenn der entsprechende Wert fehlt, ist der Default col_X
, wobei X = (a, b, c, d, e).
id required | integer >= 0 Gruppen-ID |
#!/usr/bin/env bash curl https://api.lox24.eu/groups/7116/file/csv \ -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
Ruft die Sammlung von Telefonen nach Gruppen-ID ab
id required | integer >= 0 Gruppen-ID |
#!/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
}
]
}
Erstellen Sie einen Eintrag mit einer Telefonnummer.
id required | integer >= 0 Gruppen-ID |
The new phones resource
phone required | string (property.phone.phone) <= 30 characters Telefonnummer |
a | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
b | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
c | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
d | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
e | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
callback_data | string or null (property.common.callback_data) <= 36 characters Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen. |
{- "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
}
Anstatt mehrere Anfragen zu senden, ist es besser, eine einzige Anfrage mit einer Liste von Telefon-Objekten als Anfragekörper zu senden.
id required | integer >= 0 Gruppen-ID |
The new groups resource
phone required | string (property.phone.phone) <= 30 characters Telefonnummer |
a | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
b | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
c | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
d | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
e | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
callback_data | string or null (property.common.callback_data) <= 36 characters Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen. |
[- {
- "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
}
}
}
Abfragen eines Eintrags mit einer Telefonnummer.
id required | integer >= 0 Telefon-Identifikator |
#!/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
}
Bearbeiten Sie einen Eintrag mit einer Telefonnummer.
id required | integer >= 0 Telefon-Identifikator |
The updated phones resource
phone required | string (property.phone.phone) <= 30 characters Telefonnummer |
a | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
b | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
c | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
d | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
e | string or null (property.phone.column) <= 1530 characters Telefon-Spaltendaten |
callback_data | string or null (property.common.callback_data) <= 36 characters Wert (String) welcher an Ihren Endpoint zurückgeschickt wird. Sie können z.B. Ihre eigene ID so übergeben und mit dem Zustellbericht (DLR) zurückbekommen. |
{- "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
}
Löschen Sie einen Eintrag mit einer Telefonnummer.
id required | integer >= 0 Telefon-Identifikator |
#!/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 ermöglicht es Ihnen, lange URLs zu verkürzen, indem Sie sie automatisch durch kurze URLs mit unserer l24.pw Domain ersetzen.
Damit lassen sich auch leistungsfähige Marketingkampagnen realisieren. So kann mit jeder SMS ein eindeutiger Kurzlink versendet werden. Damit können Sie verfolgen, welcher Ihrer Kunden auf den Link geklickt hat. Mit diesen Tracking-Daten können Sie gezielter mit Ihren Kunden interagieren und Ihre Kampagnen verbessern.
Aber das ist noch nicht alles! LOX24 bietet auch spezielle Kurzlinks an, die es dem Nutzer ermöglichen, sich für Ihren SMS-Newsletter anzumelden oder abzumelden. Dadurch können Sie das Double Opt-In und Opt-Out rechtssicher automatisieren.
Bitte lesen Sie das Kapitel Erstellen einer Kurzlink-Kampagne
Es gibt zwei Arten von Kampagnen:
Bitte lesen Sie das Kapitel Erstellen einer Anmeldeformular-Kampagne
Es wird eine spezielle Art von Kurzlink generiert, die den Benutzer zu einem Anmeldeformular auf unserer Website weiterleitet (white label). Sie müssen auch eine Gruppen-ID hinzufügen, um den SMS-Verteiler zu bestimmten. Zu dieser Gruppe werden die Telefonnummern der Nutzer, die das Anmeldeformular ausgefüllt haben, hinzugefügt.
Bitte lesen Sie das Kapitel Erstellen einer Abmeldeformular-Kampagne
Ein spezieller Kurzlink wird erstellt, die den Nutzer zu einem Abmeldeformular weiterleitet (white label). Sie können auch eine Gruppen-ID (SMS Verteiler) hinzufügen, aus der die Telefonnummern der Nutzer, die das Abmeldeformular abgeschickt haben, entfernt werden. Auch wenn die Gruppe bei der Abmeldung nicht aufgeführt ist, wird die Nummer des Benutzers zur Blacklist (Sperrliste) hinzugefügt.
Bitte lesen Sie das Kapitel SMS versenden oder Bulk erstellen für die allgemeine Funktionsweise des SMS Versands.
Um eine SMS mit einem kurzen Link zu versenden, müssen Sie den folgenden Platzhalter [slink campaing_id]
in den Nachrichtentext einfügen, wobei campaing_id
für der Wert der Kampagnen-ID steht. Diesen Wert erhalten Sie als Rückgabewert, wenn Sie eine Kurzlink-Kampagne erstellen. Natürlich können Sie den Wert auch für bestehende Kurzlink-Kampagnen abfragen. So würde zum Beispiel Ihr SMS-Text für eine Kurzlink-Kampagne mit der ID eGxoGRMq aussehen:
Bitte prüfen Sie den Link [slink eGxoGRMq]
Unser System ersetzt den Wert des Platzhalters für jeden SMS-Empfänger durch den richtigen Link. Sie können auch den SMS-Dryrun verwenden, um vorab zu prüfen, wie der Text mit dem Link aussehen ungefähr aussehen wird und wie hoch der Endpreis der SMS sein wird.
(Diese Information ist nur für Kampagnen mit dem Typ Advanced verfügbar)
Die Anzahl der Klicks auf eine einzelne SMS kann durch eine SMS ID oder für alle SMS als Liste ermittelt werden.
Sie können eine vollständige Liste der Kurzlinks erhalten, die von allen Ihren Kampagnen oder von einer bestimmten Kampagne erzeugt wurden.
Es gibt Endpunkte, die detaillierte Informationen über Benutzeranfragen liefern:
Über die campaigns Schnittstelle können Sie eine Short-Link-Kampagne erstellen. Eine Short-Link-Kampagne dient dazu eine Short-Link zu erstellen, welchen Sie im Anschluss für den Einzel- und Massen-SMS Versand nutzen können. Sie können über die Schnittstelle ebenfalls die bestehenden Short-Links abfragen und diese ändern oder löschen.
Schnittstelle zum Abrufen der Liste der bestehenden Kurzlink-Kampagnen, geordnet nach dem Feld created_at
in absteigender Reihenfolge.
page | integer Default: 1 Aktuelle Seite |
_order[created_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Entität erstellt wurde |
name | string Kurze Links nach Name filtern (Teilübereinstimmung) |
url | string Partial case-insensitive Textfilter nach einer Ziel-URL |
created_at | integer Exact Filter Entitäten nach Ihrer Übertragungszeit an die API |
created_at[] | Array of integers Exact und range Filter nach der Erstellungszeit der Entitäten |
type | integer Exact kurze Links nach Typ filtern (exakte Übereinstimmung) |
type[] | Array of integers Range kurze Links nach Typ filtern (Array von Werten) |
#!/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
}
]
}
}
Schnittstelle zum erstellen eines Kurzlinks mit den Parametern Ziel-URL, Typ und Name.
The new short_link_campaigns resource
type required | integer (property.short_link_campaigns.type) Enum: 1 2 Typ der Kurze Link-Kampagne |
name required | string (property.short_link_campaigns.name) <= 100 characters Name der Kurze Link-Kampagne |
url required | string (property.short_link_campaigns.url) URL der Kurze Link-Kampagne |
group_id | integer or null (property.short_link_campaigns.group_id) Gruppen-ID der Kurze Link-Kampagne |
{- "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
}
Erstellt eine spezielle Art von Kurzlink-Kampagne, die den Benutzer zu einem Anmeldeformular weiterleitet. Sie können die ID der Gruppe angeben, zu der die Telefonnummern der abonnierten Benutzer hinzugefügt werden sollen.
The new short_link_campaigns resource
name required | string (property.short_link_campaigns.name) <= 100 characters Name der Kurze Link-Kampagne |
group_id required | integer or null (property.short_link_campaigns.group_id) Gruppen-ID der Kurze Link-Kampagne |
{- "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
}
Erstellt eine spezielle Art von Kurzlink-Kampagne, die den Benutzer zu einem Abmeldeformular weiterleitet. Sie können die ID der Gruppe angeben, aus der die Telefonnummern der Benutzer entfernt werden.
The new short_link_campaigns resource
name required | string (property.short_link_campaigns.name) <= 100 characters Name der Kurze Link-Kampagne |
group_id required | integer or null (property.short_link_campaigns.group_id) Gruppen-ID der Kurze Link-Kampagne |
{- "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
}
Ruft den Eintrag einer Kurzlink-Kampagne nach deren ID ab. Wenn die Kampagne nicht gefunden wurde, wird der HTTP-Code 404 zurückgegeben.
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
}
Schnittstelle zum Bearbeiten der Daten eines Kurzlinks. Wenn die Kampagne nicht gefunden wurde, wird der HTTP-Code 404 ausgegeben.
code required | string short_link_campaigns code |
The updated short_link_campaigns resource
type required | integer (property.short_link_campaigns.type) Enum: 1 2 Typ der Kurze Link-Kampagne |
name required | string (property.short_link_campaigns.name) <= 100 characters Name der Kurze Link-Kampagne |
url required | string (property.short_link_campaigns.url) URL der Kurze Link-Kampagne |
group_id | integer or null (property.short_link_campaigns.group_id) Gruppen-ID der Kurze Link-Kampagne |
{- "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
}
Schnittstelle zum Löschen einer Kurzlink-Kampagne. Wenn die Kampagne nicht gefunden wurde, wird der HTTP-Code 404 ausgegeben.
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'
Die Links Schnittstelle dient dazu die konkreten Short-Links einer oder aller Short-Link-Kampagne abzufragen.
Liste aller einzelnen Kurzlinks
page | integer Default: 1 Aktuelle Seite |
_order[updated_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Liste nach 'updated_at' Eigenschaft sortieren |
url | string Partial case-insensitive Textfilter nach einer Ziel-URL |
updated_at | integer Exact Filter nach der letzten Aktualisierungszeit |
updated_at[] | Array of integers Exact und range Filter nach den letzten Aktualisierungszeiten |
#!/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
}
]
}
}
Alle Informationen über einen bestimmten Kurzlink abrufen.
shortCode required | string Kurzer Link-Code |
#!/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"
}
Abrufen der Liste aller Kurzlinks, die in einer bestimmten Kampagne verwendet wurden.
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
}
]
}
}
Über requests können Sie die Resultate Ihrer Short-Link-Kampagne auslesen. Sie können je nachdem, ob Sie eine SMS mit einfachem oder erweitertem Tracking versendet haben feststellen welche Rufnummern wie oft auf die Links in Ihren SMS geklickt haben. Über diese Schnittstelle ist es damit möglichen herauszufinden welche Empfänger oder welche SMS wie gut gelaufen sind.
Liste aller Anfragen nach einer SMS-Bulk-ID auf.
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Massen-SMS ID (Bulk-ID) |
page | integer Default: 1 Aktuelle Seite |
_order[date] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere eine Liste nach der Eigenschaft 'date' |
ip | string Partial case-insensitive Textfilter nach einer IP-Adresse |
url | string Partial case-insensitive Textfilter nach einer Ziel-URL |
user_agent | string Partial kurze Links nach User-Agent filtern (Teilübereinstimmung) |
country | string Exact Filter nach dem Ländercode |
country[] | Array of strings Exact Filter nach den Ländercodes |
referer | string Partial case-insensitive Textfilter nach einer referer |
date | integer Exact kurze Link-Anfragen nach exaktem Datum filtern |
date[] | Array of integers Exact Kurze Link-Anfragen nach Datum filtern (Array von Werten) |
type | integer Exact kurze Links nach Typ filtern (exakte Übereinstimmung) |
type[] | Array of integers Range kurze Links nach Typ filtern (Array von Werten) |
browser | string Partial case-insensitive Textfilter nach einem Browsernamen |
os | string Partial ase-insensitive Textfilter nach dem Namen eines Betriebssystems |
os_version | string Partial case-insensitive Textfilter nach einer Betriebssystemversion |
software_type | string Partial case-insensitive Textfilter nach einem Software-Typ |
hardware_type | string Partial case-insensitive Textfilter nach einem Hardware-Typ |
date[between] | string Bereich Kurze Link-Anfragen nach Datumsbereich filtern |
date[gt] | string Kurze Link-Anfragen nach Datum größer als filtern |
date[gte] | string Kurze Link-Anfragen nach Datum größer oder gleich filtern |
date[lt] | string Kurze Link-Anfragen nach Datum kleiner als filtern |
date[lte] | string Kurze Link-Anfragen nach Datum kleiner oder gleich filtern |
#!/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
}
]
}
}
Listet alle Klicks auf Shortlinks für eine bestimmte Kampagne auf
code required | string short_link_campaigns code |
page | integer Default: 1 Aktuelle Seite |
_order[date] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere eine Liste nach der Eigenschaft 'date' |
ip | string Partial case-insensitive Textfilter nach einer IP-Adresse |
url | string Partial case-insensitive Textfilter nach einer Ziel-URL |
user_agent | string Partial kurze Links nach User-Agent filtern (Teilübereinstimmung) |
country | string Exact Filter nach dem Ländercode |
country[] | Array of strings Exact Filter nach den Ländercodes |
referer | string Partial case-insensitive Textfilter nach einer referer |
date | integer Exact kurze Link-Anfragen nach exaktem Datum filtern |
date[] | Array of integers Exact Kurze Link-Anfragen nach Datum filtern (Array von Werten) |
type | integer Exact kurze Links nach Typ filtern (exakte Übereinstimmung) |
type[] | Array of integers Range kurze Links nach Typ filtern (Array von Werten) |
browser | string Partial case-insensitive Textfilter nach einem Browsernamen |
os | string Partial ase-insensitive Textfilter nach dem Namen eines Betriebssystems |
os_version | string Partial case-insensitive Textfilter nach einer Betriebssystemversion |
software_type | string Partial case-insensitive Textfilter nach einem Software-Typ |
hardware_type | string Partial case-insensitive Textfilter nach einem Hardware-Typ |
date[between] | string Bereich Kurze Link-Anfragen nach Datumsbereich filtern |
date[gt] | string Kurze Link-Anfragen nach Datum größer als filtern |
date[gte] | string Kurze Link-Anfragen nach Datum größer oder gleich filtern |
date[lt] | string Kurze Link-Anfragen nach Datum kleiner als filtern |
date[lte] | string Kurze Link-Anfragen nach Datum kleiner oder gleich filtern |
#!/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
}
]
}
}
Listet alle Klicks auf Shortlinks auf
page | integer Default: 1 Aktuelle Seite |
_order[date] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere eine Liste nach der Eigenschaft 'date' |
ip | string Partial case-insensitive Textfilter nach einer IP-Adresse |
url | string Partial case-insensitive Textfilter nach einer Ziel-URL |
user_agent | string Partial kurze Links nach User-Agent filtern (Teilübereinstimmung) |
country | string Exact Filter nach dem Ländercode |
country[] | Array of strings Exact Filter nach den Ländercodes |
referer | string Partial case-insensitive Textfilter nach einer referer |
date | integer Exact kurze Link-Anfragen nach exaktem Datum filtern |
date[] | Array of integers Exact Kurze Link-Anfragen nach Datum filtern (Array von Werten) |
type | integer Exact kurze Links nach Typ filtern (exakte Übereinstimmung) |
type[] | Array of integers Range kurze Links nach Typ filtern (Array von Werten) |
browser | string Partial case-insensitive Textfilter nach einem Browsernamen |
browser_version | string Partial case-insensitive Textfilter nach einer Browserversion |
os | string Partial ase-insensitive Textfilter nach dem Namen eines Betriebssystems |
os_version | string Partial case-insensitive Textfilter nach einer Betriebssystemversion |
software_type | string Partial case-insensitive Textfilter nach einem Software-Typ |
hardware_type | string Partial case-insensitive Textfilter nach einem Hardware-Typ |
date[between] | string Bereich Kurze Link-Anfragen nach Datumsbereich filtern |
date[gt] | string Kurze Link-Anfragen nach Datum größer als filtern |
date[gte] | string Kurze Link-Anfragen nach Datum größer oder gleich filtern |
date[lt] | string Kurze Link-Anfragen nach Datum kleiner als filtern |
date[lte] | string Kurze Link-Anfragen nach Datum kleiner oder gleich filtern |
#!/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
}
]
}
}
Abrufen der Detailinformationen über einen Kurzlink-Klick
id required | string Kurze Link-Anfrage-ID |
#!/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"
}
Listet alle Klicks auf Shortlinks für eine bestimmte Kampagne auf
shortCode required | string Kurzer Link-Code |
page | integer Default: 1 Aktuelle Seite |
_order[date] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere eine Liste nach der Eigenschaft 'date' |
ip | string Partial case-insensitive Textfilter nach einer IP-Adresse |
url | string Partial case-insensitive Textfilter nach einer Ziel-URL |
user_agent | string Partial kurze Links nach User-Agent filtern (Teilübereinstimmung) |
country | string Exact Filter nach dem Ländercode |
country[] | Array of strings Exact Filter nach den Ländercodes |
referer | string Partial case-insensitive Textfilter nach einer referer |
date | integer Exact kurze Link-Anfragen nach exaktem Datum filtern |
date[] | Array of integers Exact Kurze Link-Anfragen nach Datum filtern (Array von Werten) |
type | integer Exact kurze Links nach Typ filtern (exakte Übereinstimmung) |
type[] | Array of integers Range kurze Links nach Typ filtern (Array von Werten) |
browser | string Partial case-insensitive Textfilter nach einem Browsernamen |
browser_version | string Partial case-insensitive Textfilter nach einer Browserversion |
os | string Partial ase-insensitive Textfilter nach dem Namen eines Betriebssystems |
os_version | string Partial case-insensitive Textfilter nach einer Betriebssystemversion |
software_type | string Partial case-insensitive Textfilter nach einem Software-Typ |
hardware_type | string Partial case-insensitive Textfilter nach einem Hardware-Typ |
date[between] | string Bereich Kurze Link-Anfragen nach Datumsbereich filtern |
date[gt] | string Kurze Link-Anfragen nach Datum größer als filtern |
date[gte] | string Kurze Link-Anfragen nach Datum größer oder gleich filtern |
date[lt] | string Kurze Link-Anfragen nach Datum kleiner als filtern |
date[lte] | string Kurze Link-Anfragen nach Datum kleiner oder gleich filtern |
#!/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
}
]
}
}
Liste aller Klicks für eine einzelne SMS-ID
uuid required | string SMS ID ( |
page | integer Default: 1 Aktuelle Seite |
_order[date] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortiere eine Liste nach der Eigenschaft 'date' |
ip | string Partial case-insensitive Textfilter nach einer IP-Adresse |
url | string Partial case-insensitive Textfilter nach einer Ziel-URL |
user_agent | string Partial kurze Links nach User-Agent filtern (Teilübereinstimmung) |
country | string Exact Filter nach dem Ländercode |
country[] | Array of strings Exact Filter nach den Ländercodes |
referer | string Partial case-insensitive Textfilter nach einer referer |
date | integer Exact kurze Link-Anfragen nach exaktem Datum filtern |
date[] | Array of integers Exact Kurze Link-Anfragen nach Datum filtern (Array von Werten) |
type | integer Exact kurze Links nach Typ filtern (exakte Übereinstimmung) |
type[] | Array of integers Range kurze Links nach Typ filtern (Array von Werten) |
browser | string Partial case-insensitive Textfilter nach einem Browsernamen |
os | string Partial ase-insensitive Textfilter nach dem Namen eines Betriebssystems |
os_version | string Partial case-insensitive Textfilter nach einer Betriebssystemversion |
software_type | string Partial case-insensitive Textfilter nach einem Software-Typ |
hardware_type | string Partial case-insensitive Textfilter nach einem Hardware-Typ |
date[between] | string Bereich Kurze Link-Anfragen nach Datumsbereich filtern |
date[gt] | string Kurze Link-Anfragen nach Datum größer als filtern |
date[gte] | string Kurze Link-Anfragen nach Datum größer oder gleich filtern |
date[lt] | string Kurze Link-Anfragen nach Datum kleiner als filtern |
date[lte] | string Kurze Link-Anfragen nach Datum kleiner oder gleich filtern |
#!/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
}
]
}
}
Abrufen der Liste von SMS, welche einen Short-Link enthalten, und der jeweiligen Anzahl an Klicks.
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
}
]
}
}
Abfrage der Klicks auf einen Short-Link für eine spezifische SMS. Wenn die SMS nicht existiert oder nicht enthalten ist, wird der HTTP-Code 404 zurückgegeben.
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
}
Die Fraud Detection API hilf dabei, verdächtige Anfragen an Ihren Dienst zu identifizieren. Die API erhält von Ihnen unter Einhaltung der in Europa gültigen Datenschutzbestimmungen Daten wie Telefonnummer, E-Mail und IP-Adresse Ihres potentiellen Kunden. Unser System prüft diese anhand von Datenbanken, Algorithmen und künstlicher Intelligenz. Die API gibt schließlich eine Bewertung über die Wahrscheinlichkeit bzw. das Risiko eines Betrugs. Das Risiko wird dabei gemessen als Betrugswahrscheinlichkeit von 0 bis 100, wobei 0
eine kleine Betrugswahrscheinlichkeit (guter Risikowert) und 100
eine äußerst hohe Betrugswahrscheinlichkeit (schlechter Risikowert) darstellt.
Der Dienst ermöglicht es Ihnen auch selber, jeden Teil der Anfrage separat zu prüfen, indem Sie z. B. nur die Telefondaten übergeben.
Neben der Risikobewertung enthält die Antwort der Fraud Detection AP auch zusätzliche Informationen, die Ihnen bei Ihrer eigenen Risikoeinschätzung weiterhelfen:
Je nach gewähltem Tarif 'direct' sind die Antwort und die Bearbeitungsgeschwindigkeit der Anfrage unterschiedlich. Economy Anfragen bieten sich z.B. für einen simplen Login an. Pro Anfragen für eine Neukundenanmeldung und Direkt Anfragen für einen Produktverkauf:
Da das Scoring einige Zeit in Anspruch nimmt, wird die Anfrage im asynchronen Modus verarbeitet und nach der Verarbeitung sendet der Dienst die Anfragedaten im JSON-Format an die von Ihnen angegebene HTTP-URL oder E-Mail zurück. Diesen Wert können Sie im Web-Account unter Einstellungen und Benachrichtigungen festlegen (Ereignisbenachrichtigungen). Sie können auch den Status der Anfrage anhand ihrer ID überprüfen, indem Sie eine Anfrage an die API senden. Wir empfehlen Ihnen jedoch dringend, das Benachrichtigungssystem (Webhook) zu verwenden, da der Dienst bei einer großen Anzahl von Anfragen Ihrerseits Ihre Anfragen blockieren könnte.
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]... Eindeutige Entitäts-UUID |
api_version | string (property.common.api_version) Version der Datenstruktur der Meldung |
name | string Value: "fraud-check.done" Name des Webhook-Ereignisses |
created_at | integer (property.common.created_at) >= 0 Zeitstempel, wann die Entität vom Benutzer zum System hinzugefügt wurde |
attempt_total | integer (property.common.attempt_total) [ 1 .. 4 ] Gesamtzahl der Zustellversuche von Benachrichtigungs-Webhooks |
attempt_number | integer (property.common.attempt_number) >= 1 Aktuelle Nummer des Webhook-Benachrichtigungsversuchs |
object Event-specific data payload | |
notification_task_id | string <uuid> Notification task identifier (request identifier) |
Ereignis gesendet wenn die Betrugserkennungsprüfung abgeschlossen ist
{- "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"
}
Fragt die Liste aller bisherigen Anfragen an die Fraud Detection API ab
page | integer Default: 1 Aktuelle Seite |
_order[created_at] | string (order.ordering) Default: "asc" Enum: "asc" "desc" Sortierung nach Zeitstempel, wann die Entität erstellt wurde |
id | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Exact Filter nach der ID der Betrugsanfrage |
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 nach den Betrugsanfrage-IDs |
callback_data | string Einmalige Filterung von Entitäten durch die |
request_phone.phone | string Partial Filter nach dem Telefonwert der Anfrage |
request_email.email | string Partial Filter nach dem E-Mail-Wert der Anfrage |
request_ip.ip | string Partial Filter nach dem IP-Wert der Anfrage |
status_code | integer Exact Filter von Betrugsanfragen nach dem Statuscode |
status_code[] | Array of integers Exact Filter von Betrugsanfragen nach den Statuscodes |
#!/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
}
]
}
}
Erstellt eine Anfrage an die Fraud Detection API um den Risikofaktor für einen Betrug zu bestimmen.
The new fraud-check resource
service_code required | string (property.fraud-check.service_code) Enum: "economy" "pro" "direct" Der Servicecode bestimmt die Art der Betrugsabfrage, die Sie durchführen. economy enthält nur einen Risikowert, während pro und direct mehr Details zu den Ergebnissen enthalten, so dass Sie Ihre eigene Entscheidung treffen können. direct Abfragen werden ebenfalls mit Priorität bearbeitet. (siehe /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
}
Gibt das Ergebnis einer vorherigen Anfrage an die Fraud Detection API zurück.
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Fraud Detection Abfrage 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
}
Löscht eine vorherige Abfrage an die Fraud Detection API mit allen Daten.
id required | string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Fraud Detection Abfrage 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'
Die LOX24 API nutzt ein generisches Filter System um Inhalte zu filtern und
zu sortieren. Sie können in der jeweiligen Funktionsbeschreibung einsehen, welche
Filter verfügbar sind.
Die API nutzt zwei Arten von Textfiltern:
Hinweis: Suchfilter mit der exact Strategie, können mehrere Suchworte in der gleichen Anfrage enthalten (in diesem Fall ähnlich zu einer SQL IN Anfrage).
Finde SMS bei denen die Telefonnummer (phone
) die Zahlen "4979" und der Text (text
) die Zeichen "hello" enthält:
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'
Finde SMS mit dem Zielland (iso2
) gleich 'DE' oder 'CH' und den 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'
Der boolesche Filter erlaubt es, nach booleschen Feldern und Werten zu suchen.
Syntax: ?property=<true|false|1|0>
Finde SMS welche noch nicht ins Mobilfunknetz gesendet wurden:
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'
Der Bereichsfilter ermöglicht die Filterung nach einem Wert kleiner, größer, kleiner oder gleich, größer oder gleich und zwischen zwei Werten.
Syntax: ?property[<lt|gt|lte|gte|between>]=value
Filter SMS welche erstellt wurden (created_at
) zwischen 1575158400 (2019-12-01) und 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'
Der Ordnungsfilter ermöglicht es Ihnen, eine Sammlung nach den vorgegebenen Eigenschaften zu sortieren.
Parameter: _order
Sortieren Sie die SMS-Sammlung nach dem Feld 'created_at' in absteigender Reihenfolge:
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'
Für jede übermittelte SMS gibt es einen Zustellbericht (DLR). Es gibt zwei Wege diese Zustellberichte zu erhalten:
Ereignisbenachrichtigungen
GET /sms/{id}
(id - SMS id) ab und prüfen den Parameter dlr_code
dlr_code
):Status code | Beschreibung |
---|---|
0 | NONE: Es liegt kein Zustellbericht vor |
1 | DELIVERY_OK: Die Nachricht wurde erfolgreich auf dem Endgerät zugestellt |
2 | DELIVERY_QUEUE: Die Nachricht wurde zwischengespeichert bis zur Zustellung |
4 | DELIVERY_SUBMIT_ACK: Die Nachricht befindet sich in der Zustellung |
8 | DELIVERY_EXPIRED: Die Nachricht konnte innerhalb eines spezifischen Zeitfensters nicht zugestellt werden. Die Zielrufnummer ist z.B. nicht im Netz registriert. |
16 | DELIVERY_REJECTED: Die Nachricht wurde abgelehnt. Die Nummer kann ungültig sein oder Zielnummer oder Inhalt der SMS wurden vom Netzbetreiber blockiert. |
Grundsätzlich muss der SMS Text UTF-8 Encoded an den Gateway übertragen werden. Sie haben dabei die Möglichkeit über den Parameter „encoding“ zu entscheiden, ob Sie eine normale 7 bit oder UCS-2 SMS verschicken wollen.
Das Basis Zeichensatz enthält alle Zeichen die bei einer normalen 7 bit SMS als 1 Zeichen übertragen werden können. Die Zeichen des erweiterten Zeichensatzes können ebenfalls übertragen werden, benötigen aber jeweils 2 Zeichen für die Übertragung. SMS welche mit dem GSM Zeichensatz übermittelt werden, können 160 Zeichen enthalten bzw. aus mehre-ren verketteten SMS mit jeweils 153 Zeichen bestehen.
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 | | |
Mit UCS-2 können 1.112.064 Zeichen und damit alle verbreiteten Schriften dargestellt werden. Jedes Zeichen wird einfach berechnet, Unicode SMS können pro SMS jedoch nur aus 70 Zeichen bestehen, bzw. aus mehreren verketteten SMS mit jeweils 67 Zeichen bestehen.
Aus technischen Gründen können mit einer GSM-SMS nur 160 Zeichen Text (Unicode 70 Zeichen Text) übertragen werden. Wenn Sie eine SMS mit mehr Zeichen versenden, dann versenden Sie eine so genannte concatenated SMS. Bei überlangen Kurzmitteilun-gen/Multi-SMS (Concatenated SMS, Long SMS), werden längere Texte aufgeteilt und einzeln versendet und jeder einzelne Teil als separate Kurzmitteilung abgerechnet. Das Empfangsgerät setzt die Teile dann wieder zu einem zusammenhängenden Text zusammen. Damit dem Gerät die Verknüpfung der SMS angezeigt werden kann, werden 7 Zeichen (bzw. 3 bei Unicode) benötigt, Ihnen stehen damit bei einer überlangen SMS nur noch 153 Zeichen (bzw. 67 bei Unicode) für Ihren Text zur Verfügung.
Sie können eingehende SMS (mobile originated - SMS-MO) per Push auf ein Script auf Ihrem Web-Server gesendet bekommen. Eingehende SMS können Sie für Ihre individuelle Inbound Rufnummer erhalten. Sie können diese im Web-Account unter Einstellungen und Inbound Nummer bestellen. Ebenfalls können Sie kostenlos Antworten auf nach Deutschland verschickte Economy SMS erhalten.
Sie können für jede Rufnummer einen individuellen Endpoint (HTTPS oder Mail) angeben. Alternativ können Sie auch alle eingehenden Nachrichten mittels unseres Ereignisbenachrichtigungsdienstes erhalten.
Push-Service bedeutet, dass unser Gateway Daten an ein Skript auf Ihrem Webspace überträgt. Bei Rückgabe eines HTTP Status Codes < 200
or >= 300
, wird unser System automatisch drei weitere Zustellversuche unternehmen. Die Antwort Ihres Skripts wird nicht berücksichtigt, daher müssen Sie Ihr Skript überwachen. Im Falle von Störungen erfolgt keine Benachrichtigung durch uns. Die URL für alle Push-Dienste können Sie in Ihrem LOX24-Webaccount (Einstellungen -> API Einstellungen) eingeben. Alternativ können Sie die Push-Dienste auch per normaler E-Mail erhalten.
Inbound SMS werden als HTTP GET mit den Parametern sender_id
für die Rufnummer des Absenders, text
für den Nachrichtentext und time
als Unixtimestamp für die Uhrzeit des SMS Eingangs. Bei den Antwort-SMS auf Economy SMS erhalten Sie außerdem uuid
zur Zurodnung zur ursprünglich versendeten SMS. Bei einer Inbound Rufnummer erhalten Sie mit phone
die Inbound Rufnummer und mit id
die ID der eingehenden SMS.
Inbound SMS per Mail enthält ein JSON Objekt mit den gleichen Parametern.
Parameter | Typ | Beschreibung |
---|---|---|
id | integer | Identifikations-ID für Inbound-SMS (nicht bei Economy Antwort-SMS) |
phone | string | Rufnummer der Inbound Rufnummer (nicht bei Economy Antwort-SMS) |
sender_id | string | Absenderrufnummer der eingehenden SMS |
text | string | Nachrichtentext |
time | integer | Uhrzeit zu der die SMS bei LOX24 eingegangen ist |
uuid | UUID | Zuordnung zur ursprünglich versendeten SMS (optional) |
In dieser Anleitung zeigen wir Ihnen wie Sie unsere SMS API mit Ihrem Kannel Client nutzen können, um SMS über Kannel an uns zu schicken.
Wenn Sie bereits Kannel für Ihre SMPP Verbindungen nutzen, können Sie LOX24 ganz einfach als zusätzliche Anbindung hinzufügen. Es sind keine Änderungen an Kannel notwendig, lediglich die Konfiguration wird um LOX24 ergänzt.
Support: berlin@lox24.eu
Um mit Kannel SMS zu verschicken benötigen Sie den API-Key. In Ihrem Web-Account erstellen Sie einen Schlüssel vom Typ 'Kannel API'. Gehen Sie in die "Einstellungen" -> "API Einstellungen" und klicken Sie auf den Button "API Key erstellen". Der Name ist beliebig, als Version wählen Sie "Kannel API".
Sie haben zwei Möglichkeiten SMS mit Kannel zu verschicken:
Hinweis: Mehr über die Zustellberichte (DLR) im Allgemeinen können Sie hier nachlesen:
Die LOX24 API wird die Zustellberichte ohne Umweg über Kannel direkt an die von Ihnen hinterlegte URL oder Mail Adresse senden.
Ergänzen Sie Ihre Kannel-Konfiguration wie folgt:
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
Wobei:
Wir senden die Zustellberichte zurück an Kannel. Kannel leitet diese dann wie von Ihnen konfiguriert an Sie weiter.
Ergänzen Sie Ihre Kannel-Konfiguration wie folgt:
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
Wobei:
Falls Sie in den API-Einstellungen einen API v2 Status URL/E-mail Endpoint im Web-Account konfiguriert haben, können Sie auf dlr-url
verzichten und die Zustellberichte in der gleichen Form erhalten wie bei einer normalen SMS über unsere API v2. Mehr hierzu hier.
Im Konfigurationsbeispiel haben wir den Port 10443 genutzt. Sie können aber jeden beliebigen Port nutzen. Wir empfehlen Ihnen Ihre Firewall entsprechend zu konfigurieren, um nur Anfragen des LOX24 SMS Servers zuzulassen (116.203.64.153,213.133.127.70,85.10.245.*).
Die LOX24 Kannel API unterstüzt für die DLR Url die folgenden Variablen:
%d - Kannel report type (integer):
%q - Die international Rufnummer (E.164), welche die Nachricht erhält.
%T - Die Uhrzeit des Zustellberichts als Unix Timestamp.
Hinweis: Sie können weitere Variablen verwenden, wir garantieren aber nicht die ordnungsgemäße Funktionsweise.
(required)
Die Absenderkennung der Nachricht kann eine Rufnummer mit bis zu 15 Ziffern oder einen Text mit bis zu 11 Zeichen enthalten. Im Fall einer Rufnummer als Absender, halten Sie sich bitte möglichst an das E.164 Format. Ein Text Absender kann Leerzeichen enhalten, aber keine anderen Sonderzeichen, Umlaute oder Satzzeichen. Bitte beachten Sie, dass der Absender nicht in jedem Zielland übertragen werden kann und teilweise die Registrierung einer Absenderkennung durch lokale Regulierung erforderlich ist.
(required)
Der Nachrichtentext kann eine Länge von maximal 1530 Zeichen im GSM Standardzeichensatz enthalten. Mit einer Unicode SMS liegt die maximale Zeichenlänge bei 670 Zeichen. Das interne Encoding ist in beiden Fällen UTF-8.
(optional)
Sie können SMS mit dem Parameter 'coding' verschicken:
0 - GSM 03.38 (default), 1 - 8-bit or 2 - UCS-2 encoding.
Wir verarbeiten 8-bit und UCS-2 identisch als Unicode SMS.
(optional)
Geben Sie eine URL an, an welche Sie die Zustellberichte von Kannel gesendet bekommen möchten. Falls Sie den Parameter nicht übergeben, nutzen wir den API v2 DLR endpoint Ihrer API Konfiguration (falls vorhanden).
(optional)
Können Sie nutzen, um die SMS zeitversetzt in der Zukunft zu verschicken. Die Angabe erfolgt in Minuten. Falls der Wert leer bleibt, wird die SMS sofort verschickt.
Dieses Beispiel zeigt, wie Sie eine SMS an Ihre Kannel Installtion senden können. Die smsbox ist in diesem Beispiel auf dem lokalen Server und Port 9001.
Ergänzen Sie die DLR url mit einem individuellen Parameter für Ihre eigene Message-ID, in unserem Beispiel ist dies customid
= 1234567.
Die Sprache Ihrer Nachricht wird automatisch erkannt wenn der Wert voice_lang
ist null
. Es gelten folgende Regeln:
Wenn keine Standardsprache definiert ist und die Zielrufnummer mit folgender Vorwahl beginnt, senden wir die SMS in Deutsch: '+49', '+41', '+43', '+79'.
Wenn keine Standardsprache definiert ist und die Zielrufnummer mit folgender Vorwahl beginnt, senden wir die SMS in Spanisch: '+52', '+57', '+34', '+54', '+51', '+58', '+56', '+593', '+502', '+53', '+591', '+504', '+595', '+503', '+505', '+506', '+507', '+598', '+240'.
Die API unterstützt jetzt einige Funktionen von [SSML (Speech Synthesis Markup Language)] (https://en.wikipedia.org/wiki/Speech_Synthesis_Markup_Language) für die erweiterte Formatierung von Sprachnachrichten.
<break>
- Pausen in die Ansage einfügen<say-as>
- Aussprache des Textes kontrollieren<break>
Tagtime
(z. B. „1s“, „500ms“)<say-as>
Taginterpret-as="characters"
- Text Buchstabe für Buchstabe buchstabierenUmschließen Sie den Inhalt Ihrer Nachricht mit dem <speak>
Root-Element:
<speak>
Your verification code is <say-as interpret-as="characters">A1B2C3</say-as>.
<break time="1s"/>
Please enter it now.
</speak>
Sie können SMS-Nachrichten auf zwei verschiedene Arten per E-Mail versenden: Sie können eine einzelne SMS an eine bestimmte Telefonnummer senden oder eine SMS an eine Gruppe von Telefonnummern senden.
Um eine einzelne SMS zu versenden, sollte die E-Mail wie folgt formatiert werden:
{{user_id}}.{{api_key}}.{{phone}}.{{service_code}}.{{sender_id}}.{{text_source}}.{{encoding}}.{{max_sms_parts}}@mail2sms.lox24.eu
Um eine SMS an Telefonnummern einer bestimmten Gruppe zu senden, verwenden Sie das folgende Format:
{{user_id}}.{{api_key}}.{{group_id}}.{{service_code}}.{{sender_id}}.{{text_source}}.{{encoding}}.{{max_sms_parts}}@email2bulk.lox24.eu
Nr. | Name | Beschreibung |
---|---|---|
1 | user_id | User ID (Ganzzahl), identisch mit der Benutzeranmeldung bei LOX24 |
2 | api_key | "Email2SMS"-API-Schlüssel von der API-Schlüssel-Einstellungsseite ("Einstellungen" -> "API-Einstellungen") |
3 | phone/group_id | Bei Einzel-SMS ist dies die Telefonnummer im E.164-Format ohne führendes "+" (z. B. "491701234567"). Bei Gruppen-SMS ist dies die Gruppen-ID, die Sie in Ihrem Web-Konto finden oder über die API abfragen können. |
4 | service_code | Servicecode 'text2speech' oder 'direkt' (Standard). |
5 | sender_id | Absender-ID: eine ganze Zahl von 1 bis 6 (Standardwert 1). Auswahl des Absenders aus den zuvor im Konto gespeicherten Absendern ("Einstellungen" -> "Absenderkennungen") Wenn die Absender-ID nicht gefunden wurde, ist der Standardwert "email2sms". |
6 | text_source | Textquelle: 0 - Betreff und Haupttext (standardmäßig), 1 - nur Betreff, 2 - nur Haupttext |
7 | encoding | Eine ganze Zahl: 0 - normales GSM (Standard), 1 - Unicode, 2 - automatische Erkennung (anhand des gesamten Textes der Anfrage) |
8 | max_sms_parts | Eine ganze Zahl zwischen 1 und 10. Standardwert ist 1. Es gibt eine Begrenzung der Textlänge beim Verarbeiten der E-Mail. Zusätzliche Zeichen werden für die Verkettung in Nachrichten verwendet, die länger als die Standardgrenzen sind. |
Senden von SMS an Telefone mit einer Gruppen-ID = 12345 (Mindestparameter)
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345@email2bulk.lox24.eu
SMS an Telefone mit einer Gruppen-ID = 12345 mit dem Dienst 'direct' senden
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct@email2bulk.lox24.eu
Senden Sie SMS an Telefone mit der Gruppennummer 12345 mit dem Dienst 'direct' und der Absenderkennung 2
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2@email2bulk.lox24.eu
Senden Sie SMS an Telefone mit der Gruppennummer 12345 mit dem Dienst 'direct', mit der Absenderkennung 2 und dem Text im Betreff der E-Mail.
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2.1@email2bulk.lox24.eu
Senden von SMS an Telefone mit einer Gruppen-ID = 12345 mit dem Dienst 'direct', mit Absender-ID = 2, mit Text aus dem Betreff der E-Mail und automatischer Erkennung der Kodierung
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2.1.2@email2bulk.lox24.eu
SMS an eine einzelne Telefonnummer senden "+1234567890" (Mindestparameter)
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890@mail2sms.lox24.eu
SMS an eine einzelne Telefonnummer "+1234567890" mit dem Dienst 'direct' senden
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct@mail2sms.lox24.eu
Senden Sie eine SMS an eine einzelne Rufnummer "+1234567890" mit dem Dienst 'direct' und der Absenderkennung = 2
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2@mail2sms.lox24.eu
Senden Sie eine SMS an eine einzelne Telefonnummer "+1234567890" mit dem Dienst 'direct', mit der Absenderkennung = 2, und dem Text aus dem Betreff der E-Mail
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2.1@mail2sms.lox24.eu
Senden von SMS an eine einzelne Telefonnummer "+1234567890" mit dem Dienst 'direct', mit Absender-ID = 2, mit Text aus dem Betreff der E-Mail und automatischer Erkennung der Kodierung
1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2.1.2@mail2sms.lox24.eu
Die meisten Fehler werden ignoriert, um eine unerwünschte Überflutung zu vermeiden, einschließlich authentifizierungsbezogener Fehler. Bei einigen Fehlern sendet das System jedoch eine JSON-Antwort mit einer Fehlerbeschreibung.
Error JSON
Name | Beschreibung |
---|---|
field | Fehlerfeld in der Anfrage |
description | Fehlerbeschreibung |
request | EMail-Adresse, an die die Anfrage gesendet wurde |
{"field":"group_id","description":"Group with id = 12345 was not found!","request":"1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct@email2bulk.lox24.eu"}
Bitte beachten Sie, dass die Mail Schnittstelle nicht mit Weiterleitungen funktioniert. Die Mail muss direkt an den Mail2SMS Gateway gesendet werden.
Das Ereignisbenachrichtigungssystem dient als Ersatz für das veraltete System zur Übermittlung von Zustellberichten und eingehenden SMS (diese alten Systeme gelten als veraltet, werden nicht verbessert und werden nicht zur weiteren Verwendung empfohlen).
Mit dem Ereignisbenachrichtigungssystem können Sie Informationen über bestimmte Ereignisse an bestimmte URIs (http oder E-Mail) senden. Sie können das System so anpassen, dass Benachrichtigungen über ein Ereignis an verschiedene URIs gesendet werden. Sie können auch verschiedene Benachrichtigungen an die gleiche URI schicken.
Um die Benachrichtigungen zu konfigurieren, öffnen Sie die Einstellungsseite in Ihrem Web-Account (account.lox24.eu -> Einstellungen -> Benachrichtigungen), klicken Sie auf "Neuen Webhook erstellen" und geben Sie im Feld URI die http-Adresse oder E-Mail ein, an die Sie Benachrichtigungen erhalten möchten. Standardmäßig werden alle möglichen Ereignisse an die angegebene URI gesendet. Wenn Sie nur über bestimmte Ereignisse benachrichtigt werden möchten, markieren Sie das Kästchen neben den Ereignissen, über die Sie benachrichtigt werden möchten.
Wenn Sie zusätzliche Benachrichtigungen wünschen, wiederholen Sie die obige Vorgehensweise. Es können maximal fünf individuelle Benachrichtigungseinstellungen erstellt werden.
Die Ereignisinformationen werden im JSON-Objektformat übermittelt, das für alle Ereignisse das gleiche Format hat und sich nur in den Daten des Ereignisses selbst unterscheidet.
Feld | Typ | Beschreibung |
---|---|---|
id | string (36 chars) | Ereignis ID |
api_version | string | Version der Datenstruktur |
name | string | Ereignis Name, e.g. 'sms.delivery' |
created_at | integer | Unix timestamp des Ereignisses |
attempt_total | integer | Gesamtzahl der Übertragungsvesuche (re-tries). |
attempt_number | integer | Aktueller Übertragungsversuch |
data | object | Ereignisdaten (siehe Liste der Ereignisse) |
notification_task_id | string (36 chars) | ID des Übertragungsversuchs |
{
"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"
}
Das Benachrichtigungssystem kann Ereignisinformationen auf zwei Arten senden: HTTPS und E-Mail.
Das json wird als Body der http-Anfrage mit der Kopfzeile Content-Type: application/json
gesendet.
Der Dienst wird weiterhin versuchen, die Anfrage zu senden (in zunehmenden Zeitabständen), bis er eine Antwort mit einem Statuscode >= 200 und < 300 erhält oder die Anzahl der Versuche den im Feld attempt_number
angegebenen Wert erreicht.
HINWEIS: Die Antwort Ihres Endpunkt-Skripts wird nicht berücksichtigt, daher müssen Sie Ihr Skript überwachen. Im Falle von Störungen erfolgt keine Benachrichtigung durch uns.
Das json wird als Body der E-Mail mit einem einzigen Versuch von einer E-Mail no-reply@lox24.eu
gesendet.
Warnmeldungen werden von den folgenden Hosts gesendet: 162.55.80.140
und 162.55.80.141
. Wenn Sie eine Firewall verwenden, vergessen Sie nicht, diese IP-Adressen auf die Whitelist zu setzen.
In den Versionshinweisen erfahren Sie, was in der API neu ist. Wie immer begrüßen wir Ihr Feedback.
X-LOX24-REQUEST-ID
-Header für Support- und Tracking-Zwecke.sms.email.parsing.success
und sms.email.parsing.fail
is_text_deleted
für den Endpoint Simulate sending an SMS (for testing) and Create the Bulkmax_sms_parts
of endpointbulk.email.parsing.success
und bulk.email.parsing.fail
GET /me
Abfragen.callback_data
Werten an Retrieves the collection of SMS APIsubscribed_at
, unsubscribed_at
und unsubscribed_reason
hinzugefügt (
siehe Phone API)received_at
geordnet.X-LOX24-AUTH-TOKEN`` zu authentifizieren. Der Header
X-LOX24-AUTH-CLIENT-ID``` ist veraltet und wird
nicht mehr empfohlen.voice_lang
wurde zu SMS und Bulk Anfrage/Antwort Objekten hinzugefügt.Kannel (https://lox24.eu/api/kannel/{service}}).
GET /bulks
nach der Eigenschaft is_dryrun
.balance_changed_at
für den Endpoint GET /me
.GET /incomings
und GET /incomings/{id}
um alle Inbound SMS und Antworten abzufragen.POST /sms/dryrun
.key_id
bei GET /bulks
und GET /sms
./sms
, /bulks
und /incomings
Endpoints.GET /sms
nach dem Parameter bulk
GET /bulks
nach dem Parameter source
sms
und bulks
hinzugefügtPreis
zum SMS-Antwortobjekt hinzugefügtAPI v2.0 wurde in Übereinstimmung mit Industriestandards entwickelt, um die Integration so einfach wie möglich zu gestalten. Darüber hinaus können Sie jetzt mit einer einzigen Abfrage große Mengen an SMS versenden und jederzeit detaillierte Informationen über die Nachrichten abrufen.
Die umfangreiche Gruppenfunktionalität ermöglicht es Ihnen, Ihre Mailinglisten in unserer Hochleistungs-Cloud zu verwalten und damit eigene Ressourcen zu sparen. All dies ist nach wie vor konform mit den europäischen Datenschutzstandards und dem deutschen Telekommunikationsgesetz.
Sie finden die neue API-Beschreibung unter https://doc.lox24.eu/