Global kommunikations­platform - boostet med en avanceret SMS gateway

GatewayAPI accelererer udviklingen med intuitive API’er og services, så du kan komme i gang med at bygge med det samme.

Opret konto Chat med en expert

Den rette partner til global messaging

Vækst med GatewayAPI: Vores høje skalerbarhed og compliance sikrer, at vi er med dig hele vejen uanset hvor mange meddelelser, du sender, eller lande, du er til stede i.

EU-setup

Vi tilbyder et EU setup hvor hosting og ejerskab holdes inden for EU, hvilket er en populær løsning for de virksomheder, der har særlige krav til deres data.

Tusindvis af integrationer

De mange integrationsmuligheder giver dig mulighed for nemt at implementere GatewayAPIs tjenester, herunder vores kraftfulde SMS gateway, så du kan have dit første proof of concept oppe at køre på nul komma fem.
Afspil video video play button
3 min. video

Skær igennem støjen

Det behøver ikke at være kompliceret at få dine modtageres opmærksomhed. Find ud af, hvordan vores tjenester kan hjælpe dig med at skære igennem støjen, så du kan interagere med dine modtagere hurtigt og effektivt. Vi er en prisvindende platform med tusindvis af tilfredse kunder globalt.

Sådan sender du din første SMS med GatewayAPI og cURL

Sådan sender du din første SMS med GatewayAPI og cURL

Læs vores guide til, hvordan du sender SMS-beskeder ved hjælp af GatewayAPI og kodesproget cURL.

Læs mere
Betroet af tusindvis af kunder verden over
Priser

Se SMS-priser for over 200 lande

Land
Standard
Helt ned til
Danmark flagDanmark(+45)
0.0401EUR
0.0327EUR
Sverige flagSverige(+46)
0.0376EUR
0.027EUR
Norge flagNorge(+47)
0.0462EUR
0.0342EUR
Tyskland flagTyskland(+49)
0.0642EUR
0.0597EUR
API Services

Alle de services og værktøjer du skal bruge

Intuitivt og nemt at bruge

Opsæt din GatewayAPI konto, og kom i gang med at sende beskeder i dag. Tilgå intuitive dashboards og services med det samme. Får du alligevel brug for hjælp, er hjælpen kun ét klik væk.

Solid oppetid

Vær sikker på, at dit budskab altid når frem til dine modtagere. Få adgang til et uovertruffent niveau af pålidelighed og teknisk redundans, der garanterer hurtig levering af beskeder i realtid – vores historiske oppetid på over 99,99% taler for sig selv.

Komplet GDPR-compliance

Med GatewayAPI som din messaging partner får du en fuldstændig GDPR-kompatibel service med europæisk datalagring og ISAE 3000-certificering. Derudover får du mulighed for at benytte et unikt EU setup, der benyttes af en række velrenommerede organisationer, herunder Justitsministeriet.

Adgang til alle oplysninger

Du kan se oppetiden for vores SMS gateway både live og historisk her. Priser for 200+ lande samt ISAE 3000 GDPR-rapport er frit tilgængelige. Derudover kan du nøjagtigt følge op på leveringen til hver enkelt modtager i dit dashboard.

Vælg frit fra værktøjskassen

Nå nye højder med vores mange add-on services. Suppler med vores E-mail API eller Number Lookup API samt virtuelle numre og keywords. Opsæt automatisering så let som en leg via integrationsmulighederne.

Vi går den ekstra mil

Supportteamet står klar til at hjælpe dig. Den gennemsnitlige svartid er under 20 sekunder inden for arbejdstid, og tilfredshedsscoren er på hele 98%. Derudover er der intet minimum forbrugskrav for at modtage support.

Parlez-vous C#?

Hook up til GatewayAPI med jeres foretrukne kodesprog

c#
curl
go
httpie
java
node.js
php
python
ruby
using System.Net.Http.Json;
using System.Net.Http.Headers;

using HttpClient client = new HttpClient();

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
    "Token",
    "GoGenerateAnApiToken"
);

var messages = new {
    sender = "ExampleSMS",
    message = "Hello World!",
    recipients = new[] { new { msisdn = 45_1234_5678 }},
};

using var resp = await client.PostAsync(
    "https://gatewayapi.com/rest/mtsms",
    JsonContent.Create(messages)
);

// On 2xx, print the SMS IDs received back from the API
// otherwise print the response content to see the error:
if (resp.IsSuccessStatusCode && resp.Content != null) {
    Console.WriteLine("success!");
    var content = await resp.Content.ReadFromJsonAsync<Dictionary<string, dynamic>>();
    foreach (var smsId in content["ids"].EnumerateArray()) {
        Console.WriteLine("allocated SMS id: {0:G}", smsId);
    }
} else if (resp.Content != null) {
    Console.WriteLine("failed :(\nresponse content:");
    var content = await resp.Content.ReadAsStringAsync();
    Console.WriteLine(content);
}
12345678910111213141516171819202122232425262728293031323334
curl -v "https://gatewayapi.com/rest/mtsms" \
  -u "GoGenerateAnApiToken": \
  -d sender="ExampleSMS" \
  -d message="Hello World" \
  -d recipients.0.msisdn=4512345678
12345
package main

import (
  "bytes"
  "encoding/json"
  "io/ioutil"
  "log"

  "github.com/mrjones/oauth"
)

func main() {
  // Authentication
  key := "Create-an-API-Key"
  secret := "GoGenerateAnApiKeyAndSecret"
  consumer := oauth.NewConsumer(key, secret, oauth.ServiceProvider{})
  client, err := consumer.MakeHttpClient(&oauth.AccessToken{})
  if err != nil {
    log.Fatal(err)
  }

  // Request
  type GatewayAPIRecipient struct {
    Msisdn uint64 `json:"msisdn"`
  }
  type GatewayAPIRequest struct {
    Sender     string                `json:"sender"`
    Message    string                `json:"message"`
    Recipients []GatewayAPIRecipient `json:"recipients"`
  }
  request := &GatewayAPIRequest{
    Sender:  "ExampleSMS",
    Message: "Hello World",
    Recipients: []GatewayAPIRecipient{
      {
        Msisdn: 4512345678,
      },
    },
  }

  // Send it
  var buf bytes.Buffer
  if err := json.NewEncoder(&buf).Encode(request); err != nil {
    log.Fatal(err)
  }
  res, err := client.Post(
    "https://gatewayapi.com/rest/mtsms",
    "application/json",
    &buf,
  )
  if err != nil {
    log.Fatal(err)
  }
  if res.StatusCode != 200 {
    body, _ := ioutil.ReadAll(res.Body)
    log.Fatalf("http error reply, status: %q, body: %q", res.Status, body)
  }

  // Parse the response
  type GatewayAPIResponse struct {
    Ids []uint64
  }
  response := &GatewayAPIResponse{}
  if err := json.NewDecoder(res.Body).Decode(response); err != nil {
    log.Fatal(err)
  }
  log.Println("ids", response.Ids)
}
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
package main

import (
  "net/http"
  "net/url"
)

func main() {
  http.PostForm(
    "https://gatewayapi.com/rest/mtsms",
    url.Values{
      "token":   {"GoGenerateAnApiToken"},
      "sender":  {"ExampleSMS"},
      "message": {"Hello World"},
      "recipients.0.msisdn": {"4512345678"},
    },
  )
}
123456789101112131415161718
# install httpie oauth lib, with pip install httpie-oauth
http --auth-type=oauth1\
 --auth="Create-an-API-Key:GoGenerateAnApiKeyAndSecret"\
 "https://gatewayapi.com/rest/mtsms"\
 sender='ExampleSMS'\
 message='Hello world'\
 recipients:='[{"msisdn": 4512345678}]'
1234567
http --auth=GoGenerateAnApiToken: \
 https://gatewayapi.com/rest/mtsms\
 sender='ExampleSMS'\
 message='Hello world'\
 recipients:='[{"msisdn": 4512345678}]'
12345
// Install deps with gradle
//   compile 'com.squareup.okhttp3:okhttp:3.4.1'
//   compile 'se.akerfeldt:okhttp-signpost:1.1.0'
//   compile 'org.json:json:20160810'
final String key = "Create-an-API-Key";
final String secret = "GoGenerateAnApiKeyAndSecret";

OkHttpOAuthConsumer consumer = new OkHttpOAuthConsumer(key, secret);
OkHttpClient client = new OkHttpClient.Builder()
        .addInterceptor(new SigningInterceptor(consumer))
        .build();
JSONObject json = new JSONObject();
json.put("sender", "ExampleSMS");
json.put("message", "Hello World");
json.put("recipients", (new JSONArray()).put(
        (new JSONObject()).put("msisdn", 4512345678L)
));

RequestBody body = RequestBody.create(
        MediaType.parse("application/json; charset=utf-8"), json.toString());
Request signedRequest = (Request) consumer.sign(
        new Request.Builder()
                .url("https://gatewayapi.com/rest/mtsms")
                .post(body)
                .build()).unwrap();

try (Response response = client.newCall(signedRequest).execute()) {
    System.out.println(response.body().string());
}
1234567891011121314151617181920212223242526272829
import java.io.DataOutputStream;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;

public class HelloWorld {
  public static void main(String[] args) throws Exception {
    URL url = new URL("https://gatewayapi.com/rest/mtsms");
    HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
    con.setDoOutput(true);

    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.writeBytes(
      "token=GoGenerateAnApiToken"
      + "&sender=" + URLEncoder.encode("ExampleSMS", "UTF-8")
      + "&message=" + URLEncoder.encode("Hello World", "UTF-8")
      + "&recipients.0.msisdn=4512345678"
    );
    wr.close();

    int responseCode = con.getResponseCode();
    System.out.println("Got response " + responseCode);
  }
}
123456789101112131415161718192021222324
async function sendSMS() {
  const token = "GoGenerateAnApiToken";
  const payload = {
    sender: "ExampleSMS",
    message: "Hello World",
    recipients: [
      { msisdn: 45_1234_5678 },
    ],
  };

  const resp = await fetch(
    "https://gatewayapi.com/rest/mtsms",
    {
      method: "POST",
      body: JSON.stringify(payload),
      headers: {
        "Content-Type": "application/json",
        "Authorization": `Token ${token}`,
      },
    },
  );

  console.log(await resp.json());
}

sendSMS();
1234567891011121314151617181920212223242526
<?php
//Send an SMS using Gatewayapi.com
$url = "https://gatewayapi.com/rest/mtsms";
$api_token = "GoGenerateAnApiToken";

//Set SMS recipients and content
$recipients = [4512345678, 4587654321];
$json = [
    'sender' => 'ExampleSMS',
    'message' => 'Hello world',
    'recipients' => [],
];
foreach ($recipients as $msisdn) {
    $json['recipients'][] = ['msisdn' => $msisdn];
}

//Make and execute the http request
//Using the built-in 'curl' library
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch,CURLOPT_USERPWD, $api_token.":");
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($json));
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
print($result);
$json = json_decode($result);
print_r($json->ids);
1234567891011121314151617181920212223242526272829
# Install deps with: pip install requests
import requests

def send_sms(sender: str, msg_content: str, recipients: list[int]):
    token="GoGenerateAnApiToken"

    payload = {
        "sender": sender,
        "message": msg_content,
        "recipients": [
            {"msisdn": recipient_number}
            for recipient_number in recipients
        ],
    }

    resp = requests.post(
        "https://gatewayapi.com/rest/mtsms",
        json=payload,
        auth=(token, ""),
    )
    resp.raise_for_status()
    print(resp.json())

send_sms("ExampleSMS", "Hello World", [45_1234_5678])
123456789101112131415161718192021222324
require 'uri'
require 'net/http'
require 'json'

body = {
  'recipients': [{'msisdn': 45_1234_5678}],
  'message': 'Hello World',
  'sender': 'ExampleSMS',
}

token = 'GoGenerateAnApiToken'

resp = Net::HTTP.post(
  URI.parse('https://gatewayapi.com/rest/mtsms'),
  JSON.generate(body),
  {
    'Content-Type': 'application/json',
    'Authorization': "Token #{token}",
  },
)

puts resp.body
12345678910111213141516171819202122

WordPress WordPress

Gratis plugin til at sende SMS beskeder og opsætte 2-faktor login m.m.

Læs mere Opsæt plugin

Zapier Zapier

Integrer med over 5.000 apps via Zapier, og kom i gang med at automatisere SMS workflows.

Læs mere Gå til Zapier

SMPP SMPP

Connect til GatewayAPI med en direkte SMPP-forbindelse og send store mængder af SMS beskeder gnidningsfrit.

Læs mere Kontakt os

Make Make

Opsæt SMS automatisering så let som en leg via Make.

Læs mere Gå til Make