Guider
Send SMS med API-et
Send en SMS
curl -X POST "https://api.telkit.no/v1/sms" \ -H "Authorization: Bearer $TELKIT_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: ordre-2041-hentemelding" \ -d '{ "profile": "nettbutikken", "to": "+4791234567", "text": "Hei! Pakken din er klar til henting."}'const response = await fetch("https://api.telkit.no/v1/sms", { method: "POST", headers: { Authorization: `Bearer ${process.env.TELKIT_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": "ordre-2041-hentemelding", }, body: JSON.stringify({ profile: "nettbutikken", to: "+4791234567", text: "Hei! Pakken din er klar til henting.", }),});const answer = await response.json();| Felt | Betyr |
|---|---|
profile / profileId | Profilen som sender: kortnavnet eller id-en. En profilnøkkel sender alltid fra sin egen profil. |
to | Mottakeren. Skriv nummeret med landskode, for eksempel +4791234567. |
text | Teksten. Eller send templateId og variables for en mal. |
sender | Hvem SMS-en kommer fra. Utelatt: profilens standardavsender. |
scheduledAt | Send senere, på dette tidspunktet (ISO 8601 med tidssone). |
Svaret har id, state, units (SMS-enheter), priceOre og testMode. Prisen er reservert på saldoen når svaret kommer.
Avsender og tidspunkt
sender har tre former:
{ "kind": "text", "name": "Nettbutikk" }: et avsendernavn profilen har fått godkjent. Mottakeren kan ikke svare.{ "kind": "reply_number" }: et felles nummer mottakeren kan svare til.{ "kind": "dedicated" }: profilens eget nummer, hvis den har ett.
curl -X POST "https://api.telkit.no/v1/sms" \ -H "Authorization: Bearer $TELKIT_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: time-8812-paminnelse" \ -d '{ "profile": "nettbutikken", "to": "+4791234567", "text": "Påminnelse: du har time hos oss i morgen kl. 10.", "sender": { "kind": "text", "name": "Nettbutikk" }, "scheduledAt": "2026-11-02T08:00:00+01:00"}'const response = await fetch("https://api.telkit.no/v1/sms", { method: "POST", headers: { Authorization: `Bearer ${process.env.TELKIT_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": "time-8812-paminnelse", }, body: JSON.stringify({ profile: "nettbutikken", to: "+4791234567", text: "Påminnelse: du har time hos oss i morgen kl. 10.", sender: { kind: "text", name: "Nettbutikk", }, scheduledAt: "2026-11-02T08:00:00+01:00", }),});const answer = await response.json();En planlagt SMS kan avbrytes til den er sendt, og da frigjøres det reserverte beløpet.
curl -X POST "https://api.telkit.no/v1/sms/0199e4a6-4d2a-7e1b-9c3f-8a5b2d6e7f10/cancel" \ -H "Authorization: Bearer $TELKIT_API_KEY"const response = await fetch("https://api.telkit.no/v1/sms/0199e4a6-4d2a-7e1b-9c3f-8a5b2d6e7f10/cancel", { method: "POST", headers: { Authorization: `Bearer ${process.env.TELKIT_API_KEY}`, },});const answer = await response.json();Pris før du sender
POST /v1/sms/quote regner ut enheter og pris for en tekst uten å sende noe. En lang tekst eller tegn utenfor standard SMS-alfabet gir flere enheter.
curl -X POST "https://api.telkit.no/v1/sms/quote" \ -H "Authorization: Bearer $TELKIT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "profile": "nettbutikken", "text": "Hei! Pakken din er klar til henting."}'const response = await fetch("https://api.telkit.no/v1/sms/quote", { method: "POST", headers: { Authorization: `Bearer ${process.env.TELKIT_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ profile: "nettbutikken", text: "Hei! Pakken din er klar til henting.", }),});const answer = await response.json();Leveringsstatus
Når operatøren melder at SMS-en er sendt, levert eller feilet, får du hendelsen sms.status med state, units, priceOre og eventuelt errorDesc. Sett opp en webhook, eller les meldingen:
curl "https://api.telkit.no/v1/sms/0199e4a6-4d2a-7e1b-9c3f-8a5b2d6e7f10" \ -H "Authorization: Bearer $TELKIT_API_KEY"const response = await fetch("https://api.telkit.no/v1/sms/0199e4a6-4d2a-7e1b-9c3f-8a5b2d6e7f10", { headers: { Authorization: `Bearer ${process.env.TELKIT_API_KEY}`, },});const answer = await response.json();Svar fra mottakere kommer som sms.received.
Avmelding med STOPP
Svarer en mottaker STOPP, blir nummeret meldt av for profilen, og du får hendelsen sms.optedOut. Svarer mottakeren START, blir nummeret meldt på igjen (sms.optedIn). En SMS til et avmeldt nummer blir avvist med recipient_opted_out før noe blir reservert.
Du kan også melde av et nummer selv, for eksempel når kunden ber om det i kundeservice:
curl -X POST "https://api.telkit.no/v1/sms-opt-outs" \ -H "Authorization: Bearer $TELKIT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "profile": "nettbutikken", "number": "+4791234567"}'const response = await fetch("https://api.telkit.no/v1/sms-opt-outs", { method: "POST", headers: { Authorization: `Bearer ${process.env.TELKIT_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ profile: "nettbutikken", number: "+4791234567", }),});const answer = await response.json();