RCS API

RCS per REST-API

Integrieren Sie interaktive RCS-Nachrichten in Ihre Anwendungen. Rich Cards, Karussells, Buttons und SMS-Fallback - alles über eine einfache REST-API. Testen Sie jede Nachricht in der kostenlosen Sandbox, bevor Sie ein Konto anlegen.

Nachrichtentypen

9 Nachrichtenformate für jeden Anwendungsfall

Von einfachen Textnachrichten bis hin zu interaktiven Karussells - die API unterstützt alle RCS-Formate.

textBasic

Max. 160 Zeichen, SMS-ähnlich mit verifiziertem Absender

text

Bis zu 3.072 Zeichen + 11 Suggestion Chips

richCard

Bild/Video + Titel + Beschreibung + 4 Buttons

carousel

Bis zu 10 Karten, horizontal scrollbar

image

JPEG, PNG, GIF - direkt in der Nachrichten-App

video

MP4, 3GP für dynamische Inhalte

audio

MP3 für Sprachnachrichten und Podcasts

file

PDFs, Dokumente für Rechnungen & Tickets

media

Generischer Medientyp + Suggestion Chips

"suggestions": [
  {
    "reply": {
      "text": "Termin buchen",
      "postbackData": "book_apt",
      "webhookUrl": "https://..."
    }
  },
  {
    "action": {
      "text": "Anrufen",
      "type": "dial",
      "dialAction": {
        "phoneNumber": "+49..."
      }
    }
  }
]
Interaktiv

7 Button-Typen für jede Interaktion

Erstellen Sie interaktive Nachrichten mit bis zu 11 Suggestion Chips und 4 Card Actions pro Karte.

  • postback - Webhook-Callback mit benutzerdefinierten Daten
  • openUrl - Externe Links im Browser öffnen
  • openUrlInWebview - Links in der Messaging-App anzeigen
  • dial - Direktanruf starten
  • createCalendarEvent - Termin zum Kalender hinzufügen
  • viewLocation - Standort in Google Maps zeigen
  • shareLocation - Standort des Empfängers anfordern
Batch-Versand

Bis zu 10.000 Empfänger pro Request

Senden Sie dieselbe Nachricht an tausende Empfänger mit einem einzigen API-Call. Ideal für Kampagnen und Massenkommunikation.

  • Automatische Filterung deaktivierter Kontakte
  • Test-Nummern werden nicht berechnet
  • Progress-Tracking via Job-ID
  • Konfigurierbarer Batch-Size und Delay
  • Kampagnen-Namen für Tracking und Reporting
10.000
Empfänger pro Request
POST /send-batch
{
  "messageType": "text",
  "content": {
    "text": "Hallo {{contact_first_name}}, Ihre Bestellung bei {{company_name}} wird heute versandt. Abmelden: {{unsubscribe_link}}"
  },
  "smsFallback": {
    "message": "Hallo {{contact_first_name}}, Ihre Bestellung wird heute versandt. Abmelden: {{unsubscribe_link}}"
  }
}
Merge-Felder

Personalisieren Sie jede Nachricht

Platzhalter werden beim Versand pro Empfänger ersetzt – in RCS-Nachrichten, eigenständigen SMS und im SMS-Fallback-Text.

  • Kontaktfelder {{contact_first_name}}, {{contact_last_name}}, {{contact_phone}}, {{contact_email}}
  • Unternehmensfelder {{company_name}}, {{company_phone}}, {{company_website}}
  • Benutzerdefinierte Felder jedes {{your_tag}}, das Sie anlegen, plus {{today}}
  • {{unsubscribe_link}} eine individuelle Abmelde-URL pro Empfänger mit neuem Token bei jedem Versand
  • Überall nutzbar in Text, Kartentiteln, Beschreibungen und Button-URLs
RCS
Nicht verfügbar?
SMS
SMS Fallback

Automatischer SMS-Fallback

Wenn RCS nicht verfügbar ist, wird automatisch eine SMS gesendet. Definieren Sie pro Nachricht einen SMS-Fallback-Text.

  • Automatische Erkennung von RCS-Fähigkeit
  • Separater SMS-Absender konfigurierbar
  • Bis zu 1.530 Zeichen SMS-Text
  • Fallback-Grund im API-Response
Scheduling

Zeitzonengesteuerte Terminplanung

Planen Sie Nachrichten für einen bestimmten Zeitpunkt in der Zukunft. Mit IANA-Timezone-Unterstützung erreichen Sie Ihre Empfänger immer zum richtigen Zeitpunkt.

  • IANA Timezone-Unterstützung (Europe/Berlin, etc.)
  • Validierung vor dem Senden via /validate-schedule-time
  • Planbare Batch-Nachrichten
  • Stornierbare Jobs via DELETE /batch/{jobId}
{
  "scheduleAt": "2026-10-15T09:00:00",
  "timeZone": "Europe/Berlin"
}
{
  "event": "rcs_button_clicked",
  "timestamp": "2026-09-30T10:30:00Z",
  "interaction": {
    "type": "button_click",
    "buttonText": "Jetzt kaufen",
    "postbackData": "product_123",
    ...
  },
  "message": {
    "id": "...",
    "campaignName": "Sommeraktion",
    ...
  },
  "contact": {
    "phone": "+4912345678",
    "name": "Max Mustermann",
    ...
  }
}
Webhooks

Webhooks für jedes Ereignis

Erhalten Sie sofortige Benachrichtigungen, wenn Empfänger klicken, antworten oder Ihre Nachrichten erhalten. Verbinden Sie Ihre Backend-Systeme für automatisierte Workflows.

  • Button-Klicks mit Ihren eigenen postbackData, Webhook-URL pro Button
  • Zustellstatus zugestellt, gelesen oder fehlgeschlagen
  • Eingehende RCS-Nachrichten Text, Bilder, Videos, Dateien und Standorte
  • Eingehende SMS an Ihre virtuellen Nummern
  • Formular-Einsendungen und bestätigte Double-Opt-ins
  • Kontaktinformationen und Nachrichten-ID in jedem Payload
Code-Beispiele

Einfache Integration

Mit wenigen Zeilen Code senden Sie Ihre erste RCS-Nachricht.

Request

# Rich Card mit Button senden
curl -X POST https://api.sendrcs.eu/api/rcs/send \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "+4912345678",
    "messageType": "richCard",
    "sendernameId": "your-sender-id",
    "content": {
      "title": "Willkommen!",
      "description": "Entdecken Sie unsere Angebote",
      "media": {
        "height": "MEDIUM",
        "contentInfo": {
          "fileUrl": "https://example.com/image.jpg"
        }
      },
      "cardActions": [{
        "text": "Mehr erfahren",
        "type": "openUrl",
        "openUrlAction": {
          "url": "https://example.com"
        }
      }]
    }
  }'

Response

{
  "success": true,
  "messageId": "3f9c2a1e-7b4d-4c8e-9a21-5d6e7f8a9b0c",
  "messageRecordId": "66fa1c2b9d3e4f5a6b7c8d9e",
  "method": "rcs",
  "fallbackUsed": false,
  "creditsUsed": 1,
  "hasInteractiveButtons": true,
  "conversation": {
    "conversationId": "66fa1c2b9d3e4f5a6b7c8d9f",
    "status": "ACTIVE",
    "remainingTime": "23:59:00",
    "chargedMessage": true,
    "messageCount": {
      "total": 1,
      "outbound": 1,
      "inbound": 0
    }
  }
}
Sandbox

Ohne Konto ausprobieren

Senden Sie exakt den Body, den Sie an /send schicken würden, an die öffentliche Sandbox. Sie erhalten dasselbe Validierungsergebnis wie vom echten Endpoint plus einen Link, der die Nachricht auf einem Android- und iOS-Smartphone-Mockup darstellt.

  • Kein API-Key, kein Versand, keine Credits
  • Gleicher Validator und gleiche Fehlerstruktur wie POST /send
  • Vorschau-Link mit Smartphone-Mockup, 24 Stunden gültig
  • Beispielbilder, ein Video und ein PDF über GET /sandbox/samples
  • Rate-Limit 20 Anfragen pro Minute, 100 pro Tag je IP
Sandbox-Referenz in der API-Dokumentation
# Kein API-Key nötig
curl -X POST https://api.sendrcs.eu/api/rcs/sandbox/preview \
  -H "Content-Type: application/json" \
  -d '{
    "messageType": "richCard",
    "content": {
      "title": "Ihre Bestellung ist unterwegs",
      "description": "Sendung verfolgen oder mit uns sprechen.",
      "media": {
        "height": "TALL",
        "contentInfo": {
          "fileUrl": "https://sendrcs.eu/images/rcsexamples/shoes-1.jpg"
        }
      },
      "cardActions": [{
        "text": "Sendung verfolgen",
        "type": "openUrl",
        "openUrlAction": { "url": "https://example.com/track" }
      }]
    }
  }'

# Antwort (gekürzt)
{
  "success": true,
  "valid": true,
  "errors": [],
  "preview": {
    "share_url": "https://app.sendrcs.eu/sandbox/xmMrt5OLflM-bbSE2y8ayToG",
    "expires_at": "2026-09-30T22:50:59.519Z",
    "sendable": false
  },
  "sandbox": { "nothing_sent": true }
}

API Endpoints

Alle Endpoints, nach Bereich gruppiert. Vollständige Request- und Response-Schemas finden Sie in der API-Referenz.

Methode Endpoint Beschreibung
Messaging https://api.sendrcs.eu/api/rcs
POST /send Einzelne RCS-Nachricht senden, optional mit SMS-Fallback und Zeitplanung
POST /send-batch Dieselbe Nachricht an bis zu 10.000 Empfänger senden
POST /send-sms Eigenständige SMS senden, ohne RCS
POST /validate Nachricht vor dem Versand validieren
GET /button-guidelines Button-Richtlinien und Limits
Sandbox (ohne API-Key) https://api.sendrcs.eu/api/rcs
POST /sandbox/validate Nachricht ohne Konto validieren
POST /sandbox/preview Validieren und Vorschau-Link mit Smartphone-Mockup erhalten
GET /sandbox/samples Beispielbilder, Video und PDF, die die Sandbox darstellt
GET /sandbox/preview/{slug} Sandbox-Vorschau als JSON lesen
Zeitplanung & Jobs https://api.sendrcs.eu/api/rcs
GET /timezones Verfügbare IANA-Zeitzonen
POST /validate-schedule-time Geplanten Zeitpunkt validieren
GET /batch/{jobId}/status Status und Fortschritt eines Batch-Jobs
DELETE /batch/{jobId} Geplanten oder laufenden Batch-Job abbrechen
GET /jobs Ihre Jobs auflisten
GET /queue/status Warteschlangen-Status
Status, Konversationen & Log https://api.sendrcs.eu/api/rcs
GET /status RCS-Dienststatus
GET /health Health-Check
GET /senders Ihre RCS- und SMS-Absendernamen auflisten
GET /stats Messaging-Statistiken
GET /conversations Aktive Konversationen auflisten
GET /conversations/{phoneNumber}/status Konversationsstatus eines Empfängers
GET /conversations/{phoneNumber}/rate-limit Rate-Limit einer Konversation
POST /conversations/billing-preview Vor dem Versand prüfen, welche Empfänger ein offenes Fenster haben, bis zu 1.000 Nummern
GET /messages/log Nachrichten-Log (Basis-URL https://api.sendrcs.eu/api/messages)
GET /messages/{id}/content Inhalt einer gesendeten Nachricht (Basis-URL https://api.sendrcs.eu/api/messages)
DELETE /messages/{id} Geplante Nachricht vor dem Versand abbrechen (Basis-URL https://api.sendrcs.eu/api/messages)
GET /messages/interactions Button-Klicks und getippte Antworten auf Ihre gesendeten Nachrichten (Basis-URL https://api.sendrcs.eu/api/messages)
Kontakte https://api.sendrcs.eu/api/v1
GET POST /contacts Kontakte auflisten und anlegen
GET /contacts/count Kontakte zählen
POST /contacts/bulk Kontakte massenhaft anlegen oder aktualisieren
PATCH /contacts/bulk/enable Kontakte massenhaft aktivieren
PATCH /contacts/bulk/disable Kontakte massenhaft deaktivieren
GET PUT DELETE /contacts/{id} Kontakt abrufen, aktualisieren und löschen
GET POST /contacts/fields Benutzerdefinierte Felder auflisten und anlegen
GET PUT DELETE /contacts/fields/{fieldId} Benutzerdefiniertes Feld abrufen, aktualisieren und löschen
GET PUT /contacts/{id}/fields Feldwerte eines Kontakts abrufen und gesammelt setzen
PUT DELETE /contacts/{id}/fields/{fieldId} Einzelnen Feldwert setzen und löschen
Gruppen https://api.sendrcs.eu/api/v1
GET POST /groups Gruppen auflisten und anlegen
GET PUT DELETE /groups/{id} Gruppe abrufen, aktualisieren und löschen
POST DELETE /groups/{id}/contacts Kontakte zu einer Gruppe hinzufügen und entfernen
Vorlagen https://api.sendrcs.eu/api/v1
GET POST /templates Nachrichtenvorlagen auflisten und anlegen
GET PUT DELETE /templates/{id} Vorlage abrufen, aktualisieren und löschen
GET POST /templates/groups Vorlagengruppen auflisten und anlegen
POST /templates/groups/assign Vorlagen einer Vorlagengruppe zuweisen
PUT DELETE /templates/groups/{id} Vorlagengruppe umbenennen und löschen
Authentifizierung

Einfache API-Key Authentifizierung

Alle API-Anfragen erfordern einen API-Key im Header – ausgenommen die öffentlichen Sandbox-Endpoints. Generieren Sie Ihren Key im Dashboard.

X-API-Key: your-api-key-here

API-Keys finden Sie unter Einstellungen → API Keys in Ihrem Dashboard. Optional beschränken Sie einen Key in seinen Einstellungen auf bestimmte öffentliche IP-Adressen oder CIDR-Bereiche – Anfragen von anderen Adressen werden mit 403 abgewiesen.

Conversation Billing

24-Stunden Konversationsfenster

Innerhalb eines 24-Stunden-Fensters senden Sie unbegrenzt Nachrichten zum Preis einer Konversation. Optimieren Sie Ihre Kosten bei hohem Nachrichtenvolumen.

  • 24-Stunden-Fenster öffnet sich, sobald eine Seite der anderen antwortet
  • Billing-Preview vor dem Versand via API
  • Analytics Endpoint für Konversations-Metriken
  • Kostenoptimierung bei Follow-up Nachrichten
24h
Konversationsfenster
Unbegrenzte Nachrichten zum Festpreis
FAQ

RCS-API – häufige Fragen

Wie sende ich eine RCS-Nachricht über die API?

Senden Sie einen POST-Request an https://api.sendrcs.eu/api/rcs/send mit Ihrem API-Key im Header X-API-Key und einem JSON-Body mit Absender-ID, Empfänger und Nachrichteninhalt – zum Beispiel einer Rich Card mit Titel, Beschreibung, Bild und Button. Die Antwort liefert eine Nachrichten-ID und den Status. Vollständige Beispiele für jedes Format finden Sie in der API-Dokumentation.

Wie authentifiziere ich API-Anfragen?

Jede Anfrage benötigt einen API-Key im Header X-API-Key. Ihre Keys erstellen und verwalten Sie im SendRCS-Dashboard unter Einstellungen und API-Keys.

Welche Nachrichtenformate unterstützt die API?

Neun Formate: Basic Text (bis 160 Zeichen), Rich Text (bis 3.072 Zeichen und 11 Suggestion Chips), Rich Card, Carousel (bis 10 Karten), Bild, Video, Audio, Datei (PDFs und Dokumente) sowie generische Medien mit Suggestion Chips. Sieben Button-Typen stehen zur Verfügung: postback, openUrl, openUrlInWebview, dial, createCalendarEvent, viewLocation und shareLocation.

Kann ich mit einer Anfrage an viele Empfänger senden?

Ja. Der Batch-Endpoint sendet dieselbe Nachricht mit einem einzigen API-Aufruf an bis zu 10.000 Empfänger. Deaktivierte Kontakte werden automatisch herausgefiltert, Batch-Größe und Verzögerung sind konfigurierbar, und über einen Kampagnennamen lässt sich der Versand tracken und auswerten.

Wie funktioniert der SMS-Fallback in der API?

Definieren Sie für jede Nachricht einen SMS-Fallback-Text. Die API erkennt automatisch, ob der Empfänger RCS empfangen kann, und sendet andernfalls die SMS – mit separat konfigurierbarem SMS-Absender und bis zu 1.530 Zeichen Text. Die API-Antwort zeigt, wann und warum ein Fallback verwendet wurde.

Kann ich Nachrichten über die API zeitlich planen?

Ja. Übergeben Sie eine scheduleAt-Zeit mit IANA-Zeitzonen-Unterstützung, etwa Europe/Berlin, und die Nachricht wird zu diesem Zeitpunkt in der Ortszeit des Empfängers gesendet. Über den Endpoint validate-schedule-time prüfen Sie eine Zeit vorab, mit DELETE /batch/{jobId} brechen Sie einen geplanten Job ab.

Wie erfahre ich, wenn ein Empfänger auf einen Button klickt?

Über Webhooks. SendRCS ruft Ihr Backend in Echtzeit bei sechs Ereignissen auf: Button-Klicks mit Ihren eigenen postbackData, Änderungen des Zustellstatus (zugestellt, gelesen, fehlgeschlagen), eingehende RCS-Nachrichten, eingehende SMS an Ihre virtuellen Nummern, Formular-Einsendungen und bestätigte Double-Opt-ins. Webhook-URLs für Buttons legen Sie pro Button fest, die übrigen unter Einstellungen und Webhooks im Dashboard.

Kann ich die API ohne Konto testen?

Ja. Die öffentliche Sandbox unter https://api.sendrcs.eu/api/rcs/sandbox/preview prüft jeden Nachrichten-Body mit denselben Regeln wie der echte Sende-Endpoint und liefert einen Link, der die Nachricht auf einem Android- und iOS-Smartphone-Mockup darstellt. Es ist kein API-Key nötig, nichts wird gesendet und es werden keine Credits verbraucht. Der Link läuft nach 24 Stunden ab, das Rate-Limit liegt bei 20 Anfragen pro Minute und 100 pro Tag je IP.

Deckt die API auch SMS, Kontakte und Vorlagen ab?

Ja. Mit demselben API-Key erhalten Sie einen eigenen SMS-Endpoint, das Nachrichten-Log sowie vollständige CRUD-Endpoints für Kontakte, benutzerdefinierte Felder, Gruppen und Nachrichtenvorlagen unter https://api.sendrcs.eu/api/v1/. Nachrichtentexte unterstützen Merge-Felder wie {{contact_first_name}} und einen individuellen {{unsubscribe_link}} pro Empfänger.

Warum warnt die Validierung vor einer E-Mail- oder Webadresse im Nachrichtentext?

Weil iPhones text- und textBasic-Nachrichten abweisen, deren Text eine E-Mail-Adresse oder Webadresse (URL, www.-Host oder bloße Domain) enthält, während Android sie zustellt. Die Nachricht wird trotzdem angenommen; der Endpoint /validate und die Sandbox geben eine Warnung zurück, damit Sie entscheiden können. Um jedes Telefon zu erreichen, setzen Sie Links auf Chips und Buttons, oder nutzen Sie eine Rich Card: Kartentitel, Beschreibungen und Chip-Beschriftungen dürfen eine Adresse enthalten.

Bereit, mit der RCS API zu starten?

Erstellen Sie Ihren kostenlosen Account und erhalten Sie Ihren API-Key in wenigen Minuten.

  • Kein Abo
  • Keine Bindung
  • Pay as you go
  • Kostenlos testen