Eine API für SMS und andere Kommunikationskanäle von BerlinSMS

SMS API für Entwickler – REST API, 2FA, OTP und Captcha

Ob Anbindung einzelner Systeme oder Aufbau einer skalierbaren Infrastruktur für Ihr Messaging: Nutzen Sie die API von BerlinSMS für eine optimale Kommunikation von Ihrer Anwendung aus. Unsere schlanke, gut dokumentierte und einfach zu integrierende REST-Schnittstelle eignet sich sowohl für den SMS-Versand als auch für die Integration von Captchas und der Zwei-Faktor-Authentifizierung (2FA). Mit Server-Standorten in Deutschland steht Ihnen unsere REST API zuverlässig und konform zur DSGVO zur Verfügung. Unsere Code-Beispiele und API-Referenzen für PHP, Python, C# und JavaScript helfen Ihnen beim schnellen Einstieg.

Integrieren Sie SMS-Versand, Zwei-Faktor-Authentifizierung und Captcha in wenigen Minuten in Ihre Anwendungsumgebung: mit Hilfe der DSGVO-konformen REST API, inklusive Dokumentation, Code-Beispielen für PHP, Python, C# und weiteren Sprachen.

DSGVO und Datenschutz bei der Verwendung unserer API

Die Verarbeitung aller API-Anfragen, Nachrichten und Protokolldaten erfolgt ausschließlich auf Servern in Deutschland. Es findet weder ein Datentransfer über Drittländer statt noch greifen wir auf Cloudanbieter in den USA zurück. Zudem ist BerlinSMS ein deutsches Unternehmen mit Sitz in Berlin. Auf Anfrage stellen wir Ihnen gerne Auftragsverarbeitungsverträge (AVV) zur Verfügung.

Tipp für Entwickler: Bei der Integration der API für 2FA erhalten Sie automatisch ein AVV-fähiges Setup. Eine manuelle Einstellung von Datenschutzoptionen entfällt damit.

SMS VERSAND MIT BERLINSMS

SMS VERSAND
/ SMS API

SMS-Versand per REST API. Einzelnachrichten, Bulk-Versand, alphanumerische Absender-IDs und Delivery-Report-Callback per Webhook.

CAPTCHA VON BERLINSMS

Captcha Infos

DSGVO-konformes Captcha ohne Google-Abhängigkeit. Sitekey/Secretkey-Modell, einfache Frontend-Einbindung und serverseitige Verifikation per REST.

CAPTCHA Rest API
Referenz

So schnell geht die Integration unserer Rest SMS API

Hier finden Sie Code-Beispiele für verschiedene Sprachen: Wählen Sie das passende Script für Ihre Anwendung. Alle Beispiele verwenden denselben REST-Endpoint und dieselbe Header-Authentifizierung.

curl

curl -X 'POST' \
  'https://api.berlinsms.de/send/sms/4917012345/Hallo%20world' \
  -H 'apiKey: [apiKey]'

OpenAPI

paths:
  /send/sms/{phonenumber}/{text}:
    post:
      tags:
        - send
      summary: send one single message to a number
      operationId: sendSingleSMS
      security:
        - apikeyAuth: []
      parameters:
        - name: phonenumber
          in: path
          description: destination telephone number
          schema:
            type: integer
            format: int64
          required: true
        - name: text
          in: path
          description: text to send
          schema:
            type: string
          example: Hallo World
          required: true
      responses:
        '200':
          description: successful operation
          content: {}
components:
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: apiKey
servers:
  - url: 'https://api.berlinsms.de'

PHP

<?php
$context = stream_context_create(array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"apiKey: $apiKey"
  )
));
$url = 'https://api.berlinsms.de/send/sms/'.$phonenumber.'/'.rawurlencode($message);

$file = file_get_contents( $url, false, $context );
?>

C#

using System.Web;

HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add( "apiKey", apiKey );
string url = "https://api.berlinsms.de/send/sms/"+ phonenumber +"/" + Uri.EscapeDataString(message);

HttpResponseMessage response = await httpClient.PostAsync(url, null);

Javascript

const options = { method: 'POST', headers: { apiKey: apiKey } };
const url = 'https://api.berlinsms.de/send/sms/' + phonenumber + '/' + encodeURIComponent(message);

const response = await fetch(url, options);

Perl

use LWP::UserAgent;
use URI::Encode qw(uri_encode);

my $url = 'https://api.berlinsms.de/send/sms/' . $phonenumber . '/' . uri_encode($message);
my $ua = LWP::UserAgent->new();
$ua->default_header('apiKey' => $apiKey);

my $response = $ua->post($url);

Python

import requests
import urllib.parse 

headers = {'apiKey': apiKey} 
url = "https://api.berlinsms.de/send/sms/"+ str(phonenumber) +"/" + urllib.parse.quote(message, safe=''); 

requests.post(url, headers=headers)

Häufige Fragen & Antworten

Hier finden Sie Antworten auf die wichtigsten Fragen.

Wie erhalte ich einen API-Key?

Nach der kostenlosen Registrierung auf berlinsms.de können Sie im Dashboard unter „Für Entwickler“ sofort einen API-Key generieren. Der Prozess dauert unter zwei Minuten – keine manuelle Freischaltung, kein Wartezeitraum. Mit dem Key können Sie direkt die REST API ansprechen oder eines unserer Code-Beispiele für PHP, Python, C# oder JavaScript verwenden.

Welche Programmiersprachen werden unterstützt?

Die BerlinSMS API ist eine standardkonforme REST API mit JSON – sie funktioniert mit jeder Sprache, die HTTP-Requests stellen kann. Offizielle Code-Beispiele und Tutorials gibt es für Curl, OpenAPI, PHP, Python, JavaScript und C#. Da die API vollständig dokumentiert ist, lässt sie sich auch in andere Sprachen problemlos integrieren.

Was ist der Unterschied zwischen SMS-API, 2FA API und Captcha API?

Alle drei Produkte nutzen REST-Infrastruktur und Authentifizierung via API-Key bzw. Sitekey/Secretkey. Die SMS API ist für den allgemeinen Nachrichtenversand (Kampagnen, Benachrichtigungen, Transaktions-SMS). Die 2FA API ist speziell für Einmalpasswörter (OTP) bei der Benutzeranmeldung optimiert – mit kürzeren Zustellzeiten und Opt-in-Flows. Die Captcha API ersetzt Google reCAPTCHA durch eine DSGVO-konforme Alternative ohne Drittanbieter-Tracking.

Wie schnell werden OTP-Nachrichten über die 2FA API zugestellt?

Die durchschnittliche Zustellzeit für OTP-Nachrichten über die BerlinSMS 2FA API liegt unter 2 Sekunden. Unsere Server befinden sich in Berlin und Frankfurt am Main – mit redundanten Verbindungen zu den deutschen Mobilfunknetzen. Bei zeitkritischen Anwendungsfällen wie Login-Verifikation oder Zahlungsbestätigung ist das ein entscheidender Faktor.

Ist die BerlinSMS API DSGVO-konform?

Ja, vollständig. Alle Daten – inklusive Telefonnummern, Nachrichteninhalte und API-Logs – werden ausschließlich auf Servern in Deutschland verarbeitet. Es gibt keinen Transfer in Drittländer, keine Einbindung von US-Cloud-Diensten. Für Ihre Datenschutzdokumentation stellen wir auf Anfrage einen Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DSGVO aus.

Gibt es eine Sandbox oder Testumgebung?

Ja. Nach der Registrierung erhalten Sie Testkredits, mit denen Sie die API ohne Kosten ausprobieren können. So können Sie Ihre Integration vollständig testen, bevor Sie in den Live-Betrieb gehen. Die API-Endpunkte für Test und Produktion sind identisch aufgebaut – kein Umkonfigurieren beim Go-Live.

Kann ich Delivery Reports per Webhook empfangen?

Ja. Sie können bei der API-Anfrage eine Callback-URL angeben. Sobald eine SMS zugestellt oder abgelehnt wurde, sendet BerlinSMS einen HTTP-POST mit dem Zustellstatus, Zeitstempel und Nachrichtendetails an Ihre URL. Das ermöglicht vollständige Echtzeit-Transparenz ohne Polling. Details finden Sie in der SMS REST API Referenz.