Survey Send
This request is used to send a survey in real-time or scheduled.
Last updated
This request is used to send a survey in real-time or scheduled.
Last updated
POST
https://api.smspartner.fr/v1/sondage/to/send
The platform does not send marketing SMS between 8 PM and 8 AM on weekdays, as well as on Sundays and public holidays (legal restriction). If a message is sent during that time, it will be on hold until the next working day at 8 AM. Not sending marketing SMS? Contact us to disable this restriction:
apiKey
phoneNumbers
Recipient phone numbers. To send to multiple recipients, separate numbers with commas. Maximum of 500 numbers per request. Supported formats:
National format (06xxxxxxxx) or international (+336xxxxxxxx) for French numbers
International format (+496xxxxxxxx) for non-French numbers
sondageIdent
Survey identifier
tag
String (max 20 characters, no spaces, lowercase only)
scheduledDeliveryDate
dd/mm/YYYY (scheduled delivery)
time
Format: 0–24 (hour of delivery)
If scheduledDeliveryDate
is set, this parameter is required.
minute
Format: 0–55 (in 5-minute intervals)
If scheduledDeliveryDate
is set, this parameter is required.
_format
json
or xml
<?php
// Prepare data for POST request
$fields = array(
'apiKey'=> 'YOUR API KEY',
'phoneNumbers'=> '+336xxxxxxxx',
'sondageIdent'=> 'SONDAGE_IDENT',
'scheduledDeliveryDate'=> '21/10/2014',
'time'=> 9,
'minute'=> 0
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,'https://api.smspartner.fr/v1/sondage/to/send');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS,json_encode($fields));
$result = curl_exec($curl);
curl_close($curl);
// Process your response here
echo $result;
?>
Imports System.IO
Imports System.Net
Module Module1
Sub Main()
Dim base_url As String = "http://api.smspartner.fr/v1/"
Dim apiKey As String = "VOTRE_APIKEY"
#send sms
url = base_url & "sondage/to/send"
#note : utiliser une librairie JSON en production, par exemple :
#https//www.nuget.org/packages/Newtonsoft.Json/
Dim parameters As String = String.Format(
"{{""apiKey"":""{0}"",""phoneNumbers"":""{1}"",""sondageIdent"":""{2}""}}",
apiKey,
"+33XXXXXXXXX",
"SONDAGE_IDENT")
Console.Write(parameters)
apiRequest("POST", url, parameters)
End Sub
Function apiRequest(method As String, url As String, parameters As String) As String
Dim request As HttpWebRequest
request = WebRequest.Create(url)
request.Method = method
request.Timeout = 10000 # timeout in ms
request.ContentType = "application/json; charset=utf-8"
request.ContentLength = 0
#set POST data
If Not String.IsNullOrEmpty(parameters) Then
request.ContentLength = parameters.Length
Using reqStream As StreamWriter = New StreamWriter(request.GetRequestStream())
reqStream.Write(parameters)
End Using
End If
#get response
Dim returnValue As String = Nothing
Using response As HttpWebResponse = request.GetResponse()
If response.StatusCode = HttpStatusCode.OK Then
Using resStream = response.GetResponseStream()
If resStream IsNot Nothing Then
Using reader As New StreamReader(resStream)
returnValue = reader.ReadToEnd()
End Using
End If
End Using
End If
End Using
apiRequest = returnValue
End Function
End Module
# std
import logging
import json
from collections import OrderedDict
# 3p
import requests
API_KEY = "MY API KEY"
URL = "https://api.smspartner.fr/v1"
class SMSPartner():
def send_sms(self,phone_numbers, sondageIdent):
#sender = "DEMOSMS"
print(phone_numbers)
data = OrderedDict([
("apiKey", API_KEY),
("phoneNumbers", phone_numbers),
("sondageIdent", sondageIdent)
])
url = URL + "/send"
r = requests.post(url, data=json.dumps(data), verify=False)
r_json = r.json()
if r_json.get("success") == True:
print(r_json)
status = True
else:
print("SMS msg {} not delivered to {}".format(msg, phone_numbers))
status = False
return status
curl -H "Content-Type: application/json" -X POST -d '{"apiKey":"xxxxx","phoneNumbers":"xxxx","sondageIdent":"SONDAGE_IDENT"}' https://api.smspartner.fr/v1/sondage/to/send
const https = require('https');
// Préparer les données pour la requête POST
let data = JSON.stringify({
apiKey: 'YOUR API KEY',
phoneNumbers: '+336XXXXXXXX',
// identifiant du sondage que vous avez créé dans votre compte SMS Partner
sondageIdent: 'SONDAGE ID',
scheduledDeliveryDate: '04/07/2023',
time: 11,
minute: 55 //tous les 5 minutes ex: 00, 05, 10, 15, 20, etc.
});
let options = {
hostname: 'api.smspartner.fr',
path: '/v1/sondage/to/send',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length
}
};
let req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(JSON.parse(data));
});
}).on("error", (err) => {
console.log("Erreur: " + err.message);
});
req.write(data);
req.end();
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class SondageParSMS {
public static void main(String[] args) {
try {
// Prepare data for POST request
String apiKey = "your_api_key";
String phoneNumbers = "+336XXXXXXXX";
String sondageIdent = "your_sondage_ident";
String scheduledDeliveryDate = "05/07/2023";
int time = 10;
int minute = 35;
// Create JSON payload
String jsonPayload = "{\"apiKey\": \"" + apiKey + "\", \"phoneNumbers\": \"" + phoneNumbers +
"\", \"sondageIdent\": \"" + sondageIdent + "\", \"scheduledDeliveryDate\": \"" +
scheduledDeliveryDate + "\", \"time\": " + time + ", \"minute\": " + minute + "}";
// Create POST request
URL url = new URL("https://api.smspartner.fr/v1/sondage/to/send");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
// Send POST request
OutputStream outputStream = connection.getOutputStream();
outputStream.write(jsonPayload.getBytes());
outputStream.flush();
outputStream.close();
// Get response
int responseCode = connection.getResponseCode();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// Process your response here
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import SwiftUI
struct SondageSMS: View {
@State private var result: String = "Loading..."
var body: some View {
VStack {
Text("Sondage SMS")
.font(.title)
.padding()
Text(result)
.font(.system(size: 20))
.padding()
}
.onAppear(perform: sendSondage)
}
func sendSondage() {
let apiKey = "YOUR_API_KEY"
let phoneNumber = "+336xxxxxxxx"
let sondageIdent = "SONDAGE_IDENT"
let scheduledDeliveryDate = "05/07/2023"
let time = 9
let minute = 0
let urlString = "https://api.smspartner.fr/v1/sondage/to/send"
let url = URL(string: urlString)!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let parameters: [String: Any] = [
"apiKey": apiKey,
"phoneNumbers": phoneNumber,
"sondageIdent": sondageIdent,
"scheduledDeliveryDate": scheduledDeliveryDate,
"time": time,
"minute": minute
]
request.httpBody = try? JSONSerialization.data(withJSONObject: parameters)
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print("Error: \(error)")
} else if let data = data {
let resultString = String(data: data, encoding: .utf8)
DispatchQueue.main.async {
self.result = resultString ?? "Error"
}
}
}
task.resume()
}
}
struct SondageSMS_Previews: PreviewProvider {
static var previews: some View {
SondageSMS()
}
}
package main
import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
"time"
)
func main() {
// Prepare data for POST request
data := map[string]interface{}{
"apiKey": "YOUR API KEY",
"phoneNumbers": "+336xxxxxxxx",
"sondageIdent": "SONDAGE_IDENT",
"scheduledDeliveryDate": "21/10/2024",
"time": 9,
"minute": 0,
}
payload, err := json.Marshal(data)
if err != nil {
log.Fatalf("Error preparing data: %v", err)
}
// Create POST request
client := &http.Client{Timeout: 10 * time.Second}
req, err := http.NewRequest("POST", "https://api.smspartner.fr/v1/sondage/to/send", bytes.NewBuffer(payload))
if err != nil {
log.Fatalf("Error creating request: %v", err)
}
req.Header.Set("Content-Type", "application/json")
// Send POST request
resp, err := client.Do(req)
if err != nil {
log.Fatalf("Error sending request: %v", err)
}
defer resp.Body.Close()
// Get response
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalf("Error reading response body: %v", err)
}
// Process your response here
log.Printf("Response: %s", body)
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
private static readonly HttpClient client = new HttpClient();
static async Task Main(string[] args)
{
var request = new
{
apiKey = "YOUR_API_KEY",
phoneNumbers = "+336xxxxxxxx",
sondageIdent = "SONDAGE_IDENT",
scheduledDeliveryDate = "21/10/2014",
time = 9,
minute = 0
};
var content = new StringContent(
JsonConvert.SerializeObject(request),
Encoding.UTF8,
"application/json");
HttpResponseMessage response = await client.PostAsync("https://api.smspartner.fr/v1/sondage/to/send", content);
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
else
{
Console.WriteLine("POST request failed with status code: " + response.StatusCode);
}
}
}
{
"success":true,
"code":200,
"message_id":307,
"nb_sms": 1,
"cost": 0.038,
"currency": "EUR"
}
<?xml version='1.0' encoding='UTF-8'?>
<result>
<entry>true</entry>
<entry>200</entry>
<entry>306</entry>
<entry>1</entry>
<entry>0.038</entry>
<entry>
<![CDATA[EUR]]>
</entry>
</result>
{
"success": false,
"code": 9,
"error": [
{
"elementId": "children[message].data",
"message": "Message is required"
},
{
"elementId": "children[phoneNumbers].data",
"message": "Invalid phone number (922264)"
},
{
"elementId": "children[sender].data",
"message": "Sender name cannot exceed 11 characters"
},
{
"elementId": "children[scheduledDeliveryDate].data",
"message": "The date (21/11/2014 :) is earlier than the current date."
},
{
"elementId": "children[minute].data",
"message": "Minute is required"
},
{
"elementId": "children[time].data",
"message": "Hour is required"
}
]
}
<?xml version='1.0' encoding='UTF-8'?>
<result>
<entry>false</entry>
<entry>9</entry>
<entry>
<entry>
<entry>children[message].data</entry>
<entry>Message is required</entry>
</entry>
<entry>
<entry>children[phoneNumbers].data</entry>
<entry>Invalid phone number (922264)</entry>
</entry>
<entry>
<entry>children[sender].data</entry>
<entry>Sender name cannot exceed 11 characters</entry>
</entry>
<entry>
<entry>children[scheduledDeliveryDate].data</entry>
<entry>The date (21/11/2014 :) is earlier than the current date. To send it now, select [Immediate send]</entry>
</entry>
<entry>
<entry>children[minute].data</entry>
<entry>Minute is required</entry>
</entry>
<entry>
<entry>children[time].data</entry>
<entry>Hour is required</entry>
</entry>
</entry>
</result>
Error Codes
1
API Key is required
2
Phone number is required
9
At least one constraint was not respected during the sending:
- Sender name cannot exceed 11 characters
- Invalid phone number
- If scheduledDeliveryDate
is set: the date is earlier than the current date, minute is required, hour is required
10
Invalid API Key
11
Not enough credits