RCS API

RCS via REST API

Integrera interaktiva RCS-meddelanden i dina applikationer. Rich Cards, karuseller, knappar och SMS-Fallback - allt via ett enkelt REST API. Testa vilket meddelande som helst i den kostnadsfria sandboxen innan du skapar ett konto.

Meddelandetyper

9 meddelandeformat för alla användningsområden

Från enkla textmeddelanden till interaktiva karuseller - API:et stöder alla RCS-format.

textBasic

Max. 160 tecken, SMS-liknande med verifierad avsändare

text

Upp till 3 072 tecken + 11 förslagsknappar

richCard

Bild/video + titel + beskrivning + 4 knappar

carousel

Upp till 10 kort, horisontellt scrollbara

image

JPEG, PNG, GIF - direkt i meddelandeappen

video

MP4, 3GP för dynamiskt innehåll

audio

MP3 för röstmeddelanden och poddar

file

PDF:er, dokument för fakturor & biljetter

media

Generisk mediatyp + förslagsknappar

"suggestions": [
  {
    "reply": {
      "text": "Boka tid",
      "postbackData": "book_apt",
      "webhookUrl": "https://..."
    }
  },
  {
    "action": {
      "text": "Ring",
      "type": "dial",
      "dialAction": {
        "phoneNumber": "+46..."
      }
    }
  }
]
Interaktivt

7 knapptyper för varje interaktion

Skapa interaktiva meddelanden med upp till 11 förslagsknappar och 4 kortåtgärder per kort.

  • postback - Webhook-callback med anpassad data
  • openUrl - Öppna externa länkar i webbläsaren
  • openUrlInWebview - Visa länkar direkt i meddelandeappen
  • dial - Starta ett direktsamtal
  • createCalendarEvent - Lägg till händelse i kalendern
  • viewLocation - Visa plats i Google Maps
  • shareLocation - Begär mottagarens plats
Massutskick

Upp till 10 000 mottagare per förfrågan

Skicka samma meddelande till tusentals mottagare med ett enda API-anrop. Perfekt för kampanjer och masskommunikation.

  • Automatisk filtrering av avaktiverade kontakter
  • Testnummer debiteras inte
  • Framstegsspårning via Job-ID
  • Konfigurerbar batchstorlek och fördröjning
  • Kampanjnamn för spårning och rapportering
10.000
Mottagare per förfrågan
POST /send-batch
{
  "messageType": "text",
  "content": {
    "text": "Hej {{contact_first_name}}, din order från {{company_name}} skickas idag. Avregistrera: {{unsubscribe_link}}"
  },
  "smsFallback": {
    "message": "Hej {{contact_first_name}}, din order skickas idag. Avregistrera: {{unsubscribe_link}}"
  }
}
Kopplingsfält

Personalisera varje meddelande

Platshållare ersätts per mottagare vid utskick - i RCS-meddelanden, fristående SMS och SMS-fallback-texten.

  • Kontaktfält {{contact_first_name}}, {{contact_last_name}}, {{contact_phone}}, {{contact_email}}
  • Företagsfält {{company_name}}, {{company_phone}}, {{company_website}}
  • Anpassade fält valfri {{your_tag}} du definierar, plus {{today}}
  • {{unsubscribe_link}} en unik avregistreringslänk per mottagare med ny token vid varje utskick
  • Fungerar överallt i text, korttitlar, beskrivningar och knapp-URL:er
RCS
Inte tillgängligt?
SMS
SMS-Fallback

Automatisk SMS-Fallback

När RCS inte är tillgängligt skickas ett SMS automatiskt. Definiera en SMS-reservtext för varje meddelande.

  • Automatisk detektering av RCS-kapacitet
  • Separat SMS-avsändare konfigurerbar
  • Upp till 1 530 tecken SMS-text
  • Reservlösningsorsak i API-svar
Schemaläggning

Tidszonsmedveten schemaläggning

Schemalägg meddelanden för en specifik tidpunkt i framtiden. Med IANA-tidszonsstöd når du alltid dina mottagare vid rätt tillfälle.

  • IANA-tidszonsstöd (Europe/Stockholm, etc.)
  • Validering före sändning via /validate-schedule-time
  • Schemaläggningsbara massmeddelanden
  • Avbokningsbara jobb via DELETE /batch/{jobId}
{
  "scheduleAt": "2026-10-15T09:00:00",
  "timeZone": "Europe/Stockholm"
}
{
  "event": "rcs_button_clicked",
  "timestamp": "2026-09-30T10:30:00Z",
  "interaction": {
    "type": "button_click",
    "buttonText": "Köp nu",
    "postbackData": "product_123",
    ...
  },
  "message": {
    "id": "...",
    "campaignName": "Sommarkampanj",
    ...
  },
  "contact": {
    "phone": "+46701234567",
    "name": "Anna Svensson",
    ...
  }
}
Webhooks

Webhooks för varje händelse

Få omedelbara notifieringar när mottagare klickar, svarar eller tar emot dina meddelanden. Koppla dina backend-system för automatiserade arbetsflöden.

  • Knappklick med dina egna postbackData, webhook-URL per knapp
  • Leveransstatus levererat, läst eller misslyckat
  • Inkommande RCS-meddelanden text, bilder, videor, filer och platser
  • Inkommande SMS till dina virtuella nummer
  • Formulärinskick och bekräftade double opt-ins
  • Kontaktinformation och meddelande-id i varje payload
Kodexempel

Enkel integration

Skicka ditt första RCS-meddelande med bara några rader kod.

Förfrågan

# Skicka ett Rich Card med knapp
curl -X POST https://api.sendrcs.se/api/rcs/send \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "+46701234567",
    "messageType": "richCard",
    "sendernameId": "your-sender-id",
    "content": {
      "title": "Välkommen!",
      "description": "Upptäck våra erbjudanden",
      "media": {
        "height": "MEDIUM",
        "contentInfo": {
          "fileUrl": "https://example.com/image.jpg"
        }
      },
      "cardActions": [{
        "text": "Läs mer",
        "type": "openUrl",
        "openUrlAction": {
          "url": "https://example.com"
        }
      }]
    }
  }'

Svar

{
  "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

Testa utan konto

Skicka exakt den body du skulle skicka till /send till den publika sandboxen. Du får samma valideringsresultat som från det riktiga endpointet plus en länk som visar meddelandet på en Android- och iOS-telefonmockup.

  • Ingen API-nyckel, inget skickas, inga krediter används
  • Samma validator och felformat som POST /send
  • Telefonmockup-länk, giltig i 24 timmar
  • Exempelbilder, en video och en PDF via GET /sandbox/samples
  • Rate limit 20 förfrågningar per minut, 100 per dag per IP
Sandbox-referens i API-dokumentationen
# Ingen API-nyckel behövs
curl -X POST https://api.sendrcs.eu/api/rcs/sandbox/preview \
  -H "Content-Type: application/json" \
  -d '{
    "messageType": "richCard",
    "content": {
      "title": "Din order är på väg",
      "description": "Spåra paketet eller prata med oss.",
      "media": {
        "height": "TALL",
        "contentInfo": {
          "fileUrl": "https://sendrcs.eu/images/rcsexamples/shoes-1.jpg"
        }
      },
      "cardActions": [{
        "text": "Spåra ordern",
        "type": "openUrl",
        "openUrlAction": { "url": "https://example.com/track" }
      }]
    }
  }'

# Svar (förkortat)
{
  "success": true,
  "valid": true,
  "errors": [],
  "preview": {
    "share_url": "https://app.sendrcs.eu/sandbox/zMR8AUSBgGiMFM--15xIGTVX",
    "expires_at": "2026-09-30T22:51:00.257Z",
    "sendable": false
  },
  "sandbox": { "nothing_sent": true }
}

API-endpoints

Alla endpoints, grupperade efter område. Fullständiga request- och response-scheman finns i API-referensen.

Metod Endpoint Beskrivning
Messaging https://api.sendrcs.eu/api/rcs
POST /send Skicka ett enskilt RCS-meddelande med valfri SMS-fallback och schemaläggning
POST /send-batch Skicka samma meddelande till upp till 10 000 mottagare
POST /send-sms Skicka ett fristående SMS utan RCS
POST /validate Validera ett meddelande före utskick
GET /button-guidelines Knappriktlinjer och gränser
Sandbox (utan API-nyckel) https://api.sendrcs.eu/api/rcs
POST /sandbox/validate Validera ett meddelande utan konto
POST /sandbox/preview Validera och få en telefonmockup-länk
GET /sandbox/samples Exempelbilder, video och PDF som sandboxen visar
GET /sandbox/preview/{slug} Läs en sandbox-förhandsvisning som JSON
Schemaläggning & jobb https://api.sendrcs.eu/api/rcs
GET /timezones Tillgängliga IANA-tidszoner
POST /validate-schedule-time Validera en schemalagd tidpunkt
GET /batch/{jobId}/status Status och förlopp för ett batch-jobb
DELETE /batch/{jobId} Avbryt ett schemalagt eller pågående batch-jobb
GET /jobs Lista dina jobb
GET /queue/status Köstatus
Status, konversationer & logg https://api.sendrcs.eu/api/rcs
GET /status RCS-tjänstestatus
GET /health Hälsokontroll
GET /senders Lista dina RCS- och SMS-avsändarnamn
GET /stats Meddelandestatistik
GET /conversations Lista aktiva konversationer
GET /conversations/{phoneNumber}/status Konversationsstatus för en mottagare
GET /conversations/{phoneNumber}/rate-limit Rate limit för en konversation
GET /messages/log Meddelandelogg (bas-URL https://api.sendrcs.eu/api/messages)
GET /messages/{id}/content Innehåll i ett skickat meddelande (bas-URL https://api.sendrcs.eu/api/messages)
Kontakter https://api.sendrcs.eu/api/v1
GET POST /contacts Lista och skapa kontakter
GET /contacts/count Räkna kontakter
POST /contacts/bulk Skapa eller uppdatera kontakter i bulk
PATCH /contacts/bulk/enable Aktivera kontakter i bulk
PATCH /contacts/bulk/disable Inaktivera kontakter i bulk
GET PUT DELETE /contacts/{id} Hämta, uppdatera och ta bort en kontakt
GET POST /contacts/fields Lista och skapa anpassade fält
GET PUT DELETE /contacts/fields/{fieldId} Hämta, uppdatera och ta bort ett anpassat fält
GET PUT /contacts/{id}/fields Hämta och sätt en kontakts fältvärden samlat
PUT DELETE /contacts/{id}/fields/{fieldId} Sätt och ta bort ett enskilt fältvärde
Grupper https://api.sendrcs.eu/api/v1
GET POST /groups Lista och skapa grupper
GET PUT DELETE /groups/{id} Hämta, uppdatera och ta bort en grupp
POST DELETE /groups/{id}/contacts Lägg till och ta bort kontakter i en grupp
Mallar https://api.sendrcs.eu/api/v1
GET POST /templates Lista och skapa meddelandemallar
GET PUT DELETE /templates/{id} Hämta, uppdatera och ta bort en mall
GET POST /templates/groups Lista och skapa mallgrupper
POST /templates/groups/assign Tilldela mallar till en mallgrupp
PUT DELETE /templates/groups/{id} Byt namn på och ta bort en mallgrupp
Autentisering

Enkel API-nyckelautentisering

Alla API-förfrågningar kräver en API-nyckel i headern, utom de publika sandbox-endpoints. Generera din nyckel i din Dashboard.

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

Du hittar dina API-nycklar under Settings → API Keys i din instrumentpanel.

Konversationsdebitering

24 timmars konversationsfönster

Inom ett 24-timmarsfönster kan du skicka obegränsat med meddelanden till priset av en konversation. Optimera dina kostnader med höga meddelandevolymer.

  • 24-timmarsfönster från första meddelandet
  • Debiteringsförhandsgranskning före sändning via API
  • Analytics-endpoint för konversationsstatistik
  • Kostnadsoptimering för uppföljningsmeddelanden
24h
Konversationsfönster
Obegränsade meddelanden till ett fast pris
FAQ

Vanliga frågor om RCS API

Hur skickar jag ett RCS-meddelande via API:et?

Skicka en POST-förfrågan till https://api.sendrcs.eu/api/rcs/send med din API-nyckel i headern X-API-Key och en JSON-body med avsändar-id, mottagare och meddelandeinnehåll - till exempel ett Rich Card med titel, beskrivning, bild och en knapp. Svaret returnerar ett meddelande-id och status. Fullständiga exempel för alla format finns i API-dokumentationen.

Hur autentiserar jag API-förfrågningar?

Varje förfrågan kräver en API-nyckel i headern X-API-Key. Du skapar och hanterar dina nycklar i SendRCS-dashboarden under Inställningar och API-nycklar.

Vilka meddelandeformat stöder API:et?

Nio format: Basic Text (upp till 160 tecken), Rich Text (upp till 3 072 tecken och 11 förslagschips), Rich Card, karusell (upp till 10 kort), bild, video, ljud, fil (PDF-filer och dokument) samt generiska medier med förslagschips. Sju knapptyper finns: postback, openUrl, openUrlInWebview, dial, createCalendarEvent, viewLocation och shareLocation.

Kan jag skicka till många mottagare med en förfrågan?

Ja. Batch-endpointen skickar samma meddelande till upp till 10 000 mottagare i ett enda API-anrop. Inaktiverade kontakter filtreras bort automatiskt, batchstorlek och fördröjning kan konfigureras, och ett kampanjnamn låter dig följa upp och rapportera på utskicket.

Hur fungerar SMS-fallback i API:et?

Definiera en SMS-fallback-text för varje meddelande. API:et upptäcker automatiskt om mottagaren kan ta emot RCS och skickar annars SMS:et i stället - med en separat konfigurerbar SMS-avsändare och upp till 1 530 tecken. API-svaret anger när och varför fallback användes.

Kan jag schemalägga meddelanden via API:et?

Ja. Ange en scheduleAt-tid med stöd för IANA-tidszoner, till exempel Europe/Stockholm, så skickas meddelandet vid den tidpunkten i mottagarens lokala tid. Du kan validera en tid i förväg via endpointen validate-schedule-time och avbryta ett schemalagt jobb med DELETE /batch/{jobId}.

Hur får jag veta när en mottagare klickar på en knapp?

Via webhooks. SendRCS anropar ditt backend i realtid vid sex händelser: knappklick med dina egna postbackData, ändringar i leveransstatus (levererat, läst, misslyckat), inkommande RCS-meddelanden, inkommande SMS till dina virtuella nummer, formulärinskick och bekräftade double opt-ins. Webhook-URL:er för knappar anges per knapp, övriga under Inställningar och Webhooks i dashboarden.

Kan jag testa API:et utan konto?

Ja. Den publika sandboxen på https://api.sendrcs.eu/api/rcs/sandbox/preview validerar vilken meddelande-body som helst med samma regler som det riktiga send-endpointet och returnerar en delningslänk som visar meddelandet på en Android- och iOS-telefonmockup. Ingen API-nyckel behövs, inget skickas och inga krediter används. Länken upphör efter 24 timmar, och rate limit är 20 förfrågningar per minut och 100 per dag per IP.

Täcker API:et även SMS, kontakter och mallar?

Ja. Samma API-nyckel ger dig ett fristående SMS-endpoint, meddelandeloggen och fullständiga CRUD-endpoints för kontakter, anpassade fält, grupper och meddelandemallar under https://api.sendrcs.eu/api/v1/. Meddelandetext stöder kopplingsfält som {{contact_first_name}} och en unik {{unsubscribe_link}} per mottagare.

Redo att komma igång med RCS API?

Skapa ditt gratis konto och få din API-nyckel på några minuter.

  • Inget abonnemang
  • Ingen bindning
  • Pay as you go
  • Gratis provperiod