Dokumentation
SMS API Kom igång

Skicka SMS

Skapa en SMS-batch med mottagare, avsändare, text, schemaläggning och leveransrapport.

Ett eller flera SMS skickas genom att skapa en batch.

Endpoint

Metod Sökväg Content-Type
POST /v2/batches application/json

Quickstart

curl -X POST "https://api.ip1sms.com/v2/batches" \
  -H "Authorization: Bearer $IP1_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "sender": "DittForetag",
    "recipients": ["$RECIPIENT"],
    "body": "Ditt meddelande"
  }'

Telefonnummer anges som MSISDN: landskod och nummer utan +, mellanslag eller inledande 00.

Fält i anropet

Fält Krävs Typ Villkor
sender Ja string Numerisk avsändare enligt E.164, högst 15 siffror, eller alfanumerisk avsändare med 3–11 tecken (A–Z, a–z, 0–9).
recipients Ja string[] eller objekt MSISDN, högst 15 siffror och endast siffror. Objektformen används för mallvariabler.
body Ja string Får inte vara tom och får vara högst 2 000 tecken.
type Nej string sms (standard) eller flash.
datacoding Nej string gsm för GSM 7-bit eller ucs för Unicode. Publicerad standard är ucs.
priority Nej integer 1 (standard) eller 2. Hög prioritet kan medföra ett pristillägg.
deliveryWindows Nej object[] Ett eller flera tidsfönster med opens och closes i ISO 8601. Fönster får inte överlappa.
deliveryReportUrl Nej string Absolut HTTPS-URL som tar emot statusuppdateringar med POST.
reference Nej string Egen referens, 1–40 tecken.
tags Nej string[] Taggar för kategorisering och filtrering av batcher.

Kontrollera aktuell prislista innan du använder priority: 2; den tidigare dokumentationens fasta pristillägg kan förändras.

Mallar per mottagare

Byt mottagarlistan mot ett objekt när samma meddelande ska få olika variabelvärden:

{
  "sender": "DittForetag",
  "recipients": {
    "46700000001": { "firstName": "Anna" },
    "46700000002": {},
    "default": { "firstName": "kund" }
  },
  "body": "Hej {firstName}, din bokning är bekräftad."
}

Nyckeln på första nivån är mottagarens MSISDN. Nycklarna under mottagaren matchas mot platshållare i body. default används när mottagaren saknar ett värde.

Schemaläggning

{
  "deliveryWindows": [
    {
      "opens": "2026-10-05T08:00:00Z",
      "closes": "2026-10-05T10:00:00Z"
    }
  ]
}

Om opens är null används aktuell tid. Om closes är null sätts det enligt den publicerade dokumentationen till 72 timmar efter öppning. Utelämnas fältet skapar systemet ett standardfönster.

Exempel med JavaScript

Kör detta på en server, inte i webbläsaren:

const response = await fetch('https://api.ip1sms.com/v2/batches', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.IP1_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    sender: 'DittForetag',
    recipients: [process.env.TEST_RECIPIENT],
    body: 'Test från iP.1 SMS API',
    reference: crypto.randomUUID(),
  }),
});

if (!response.ok) {
  throw new Error(`SMS-anrop misslyckades: ${response.status} ${await response.text()}`);
}

const batch = await response.json();
console.log(batch.id);

Batchsvaret

Ett lyckat anrop returnerar batchdokumentet. Centrala fält:

Fält Typ Beskrivning
id string Batchens unika ID.
sender string Registrerad avsändare.
body string Ursprunglig text före mallning.
owner string Kontot som äger batchen.
direction string MT för utgående eller MO för inkommande.
type string sms eller flash.
datacoding string gsm eller ucs.
templated boolean Om mottagarmallar användes.
priceSummary object Total, valuta och genomsnittlig kostnad.
messageSummary object Antal meddelanden och segment per statuskod.
deliveryWindows object[] Batchens sändningsfönster.
status integer Sammanvägd batchstatus.
deliveryReportUrl string | null Callback för leveransrapporter.
reference string | null Egen referens.
tags string[] Batchens taggar.

Vanliga HTTP-fel

Kod Betydelse Kontrollera
400 Bad Request JSON, obligatoriska fält och fältformat.
401 Unauthorized Bearer-token saknas eller är ogiltig.
403 Forbidden Nyckeln saknar behörighet eller avsändaren är inte tillåten.
404 Not Found Resurs eller sökväg finns inte.
405 Method Not Allowed Fel HTTP-metod.
409 Conflict Resursen står i konflikt med befintligt läge.
500 Internal Server Error Tillfälligt serverfel; logga korrelationsdata och försök kontrollerat igen.
503 Service Unavailable Tillfällig otillgänglighet; använd backoff.

Felresponsens body innehåller normalt en mer detaljerad beskrivning. Logga inte Bearer-token eller fullständiga mottagarnummer när du felsöker.

Välj vilka ändamål du samtycker till. Nödvändig lagring används bara för att komma ihåg ditt val.