Doc Partner
SMS Partner
Doc Partner - EN
Doc Partner - EN
  • Welcome
  • API
    • SMS Partner
      • Credits
      • Send SMS
        • Single Send
        • Bulk Send
        • Send by Long Number
        • Survey Send
        • Cancel Scheduled SMS
        • Special Characters
      • Status & Statistics
        • Single Status
        • Bulk Status
        • Status by Message
        • Status by Tag
        • Sending Statistics
      • Contact Management
        • Add Group
        • Add Contact
        • Delete Group
        • Add Bulk Contacts
        • Edit Contact
        • Delete Contact
        • Get Group List
        • Get Contact List
        • Get Contact Details
      • Replies / Opt-outs Management
        • Stop List
        • Add Number to SMS Stop List
        • Remove Number from SMS Stop List
        • Replies Management
      • Sub-accounts
        • Activation
        • Create Sub-account
        • Delete Sub-account
        • Sub-account List
        • Manage Sub-account Credits
      • Manage Call Forwarding
      • Number Verification
        • Send a Verification
        • Format Verification
      • Contact Rental
        • Categories
        • Targeting & Calculation
        • Rental Status
        • Download File
      • RCS
    • Error Codes
Powered by GitBook

© 2025 NDA Media

On this page
  1. API
  2. SMS Partner
  3. Send SMS

Survey Send

This request is used to send a survey in real-time or scheduled.

PreviousSend by Long NumberNextCancel Scheduled SMS

Last updated 1 month ago

URL

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:

Required Parameters

Name
Value

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

Optional Parameters

Name
Value

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

Requests

<?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);
        }
    }
}

Response

{
   "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>

Errors

{
    "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

Response Code
Description

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

help@smspartner.fr
Your API key