Send an SMS
One request, with the number in international format. The reply says how many parts the message took.
curl https://api.fil.example/v1/messages \ -H "Authorization: Bearer fil_test_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "to": "+2376XXXXXXXX", "channel": "sms", "body": "Votre code Fil est 4821. Il expire dans 10 minutes." }'const response = await fetch('https://api.fil.example/v1/messages', { method: 'POST', headers: { Authorization: `Bearer ${process.env.FIL_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ to: '+2376XXXXXXXX', channel: 'sms', body: 'Votre code Fil est 4821. Il expire dans 10 minutes.', }),});const message = await response.json();console.log(message.id, message.status); // msg_… queuedimport jsonimport osfrom urllib.request import Request, urlopenrequest = Request( "https://api.fil.example/v1/messages", data=json.dumps({ "to": "+2376XXXXXXXX", "channel": "sms", "body": "Votre code Fil est 4821. Il expire dans 10 minutes.", }).encode(), headers={ "Authorization": f"Bearer {os.environ['FIL_KEY']}", "Content-Type": "application/json", },)with urlopen(request) as response: message = json.load(response) print(message["id"], message["status"]) # msg_… queued<?php$request = curl_init('https://api.fil.example/v1/messages');curl_setopt_array($request, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . getenv('FIL_KEY'), 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode([ 'to' => '+2376XXXXXXXX', 'channel' => 'sms', 'body' => 'Votre code Fil est 4821. Il expire dans 10 minutes.', ]),]);$message = json_decode(curl_exec($request), true);echo $message['id'], ' ', $message['status']; // msg_… queuedpackage mainimport ( "bytes" "encoding/json" "fmt" "net/http" "os")func main() { body, _ := json.Marshal(map[string]string{ "to": "+2376XXXXXXXX", "channel": "sms", "body": "Votre code Fil est 4821. Il expire dans 10 minutes.", }) request, _ := http.NewRequest("POST", "https://api.fil.example/v1/messages", bytes.NewReader(body)) request.Header.Set("Authorization", "Bearer "+os.Getenv("FIL_KEY")) request.Header.Set("Content-Type", "application/json") response, err := http.DefaultClient.Do(request) if err != nil { panic(err) } defer response.Body.Close() var message struct{ ID, Status string } json.NewDecoder(response.Body).Decode(&message) fmt.Println(message.ID, message.Status) // msg_… queued}Test mode: nothing leaves this page.