Sending Messages

POST

https://api.itniotech.com/sms/sendSms

The protocol is used to send SMS, supporting single number or multiple numbers, Support GET or POST, GET can support 100 numbers once, POST can support 1000 numbers once.
 
Request Parameters
appId
String
Required
App ID (Account Management – App Management -appId properties)
numbers
String
Required
Receiving number, multiple numbers should be separated with comma GET can support 100 numbers once, POST can support 1000 numbers once)
content
String
Required
SMS content,length should not be over the 1024 characters.(GET should use urlEncode)
senderId
String
Sender number(name). The maximum length is 32 characters.
orderId
String
Customer message id. The number of orderId must be consistent with the number of mobile phone numbers.
 
Request Sample
//use GET Request to send content "hello world":
Request URL:
    https://api.itniotech.com/sms/sendSms?appId=4luaKsL2&numbers=91856321412,91856321413&content=hello%20world&senderId=123&orderId=21412,21413
Request Method:
    GET
Request Headers:
    Content-Type: application/json;charset=UTF-8
    Sign: 05d7a50893e22a5c4bb3216ae3396c7c
    Timestamp: 1630468800
    Api-Key: bDqJFiq9

//use POST Request to send content "hello world":
Request URL:
    https://api.itniotech.com/sms/sendSms
Request Method:
    POST
Request Headers:
    Content-Type: application/json;charset=UTF-8
    Sign: 05d7a50893e22a5c4bb3216ae3396c7c
    Timestamp: 1630468800
    Api-Key: bDqJFiq9
Request Body:
{
    "appId":"4luaKsL2",
    "numbers":"91856321412,91856321413",
    "content":"hello world",
    "senderId":"123",
    "orderId":"21412,21413"
}
 
Response Parameters
Parameters Description Type
status "0"means successful,others than 0 means failure, seeing Status Code description String
reason Failure reason description String
success Number of successful submitted numbers String
fail Number of failure submitted numbers String
array The number of Successful Submitted Array. JSONArray
msgId Submitted numbers id corresponding to platform String
number Submitted numbers String
orderId Custom message ID String
orderId customer id String
 
Response Status Code
status Description
0 success
-1 Authentication error
-2 Restricted IP access
-3 Sensitive characters in SMS content
-4 SMS content is empty
-5 The SMS content is too long
-6 SMS that is not a template
-7 Phone number exceeds limit
-8 The phone number is empty
-9 Abnormal phone number
-10 The customer's balance is insufficient
-13 User locked
-16 Timestamp expires
-18 port program unusual
-19 Please contact the business managers binding channel
 

language

Java

PHP

Python

REQUEST


                    package com.itniotech.api.demo.sms;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;

import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

private void sendSms() {
    final String baseUrl = "https://api.itniotech.com/sms";
    final String apiKey = "your api key";
    final String apiPwd = "your api secret";
    final String appId = "{{appId}}";
    final String numbers = "{{numbers}}";
    final String content = "{{content}}";
    final String senderId = "{{senderId}}";
    final String orderId = "{{orderId}}";
    final String url = baseUrl.concat("/sendSms");
    HttpRequest request = HttpRequest.post(url);

    // currentTime
    final String datetime = String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
    // generate md5 key
    final String sign = SecureUtil.md5(apiKey.concat(apiPwd).concat(datetime));
    request.header(Header.CONNECTION, "Keep-Alive")
            .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
            .header("Sign", sign)
            .header("Timestamp", datetime)
            .header("Api-Key", apiKey);
    final String params = JSONUtil.createObj()
            .set("appId", appId)
            .set("numbers", numbers)
            .set("content", content)
            .set("senderId", senderId)
            .set("orderId", orderId)
            .toString();
    HttpResponse response = request.body(params).execute();
    if (response.isOk()) {
        String result = response.body();
        System.out.println(result);
    }
}        
                

REQUEST

header('content-type:text/html;charset=utf8');

$apiKey = "your api key";
$apiSecret = "your api secret";
$appId = "{{appId}}";
$url = "https://api.itniotech.com/sms/sendSms";
$timeStamp = time();
$sign = md5($apiKey.$apiSecret.$timeStamp);

$dataArr['appId'] = $appId;
$dataArr['numbers'] = '{{numbers}}';
$dataArr['content'] = '{{content}}';
$dataArr['senderId'] = '{{senderId
                            ';
$dataArr['orderId'] = '{{orderId}}';

                            $data = json_encode($dataArr);
                            $headers = array('Content-Type:application/json;charset=UTF-8', "Sign:$sign", "Timestamp:$timeStamp", "Api-Key:$apiKey");

                            $ch = curl_init();
                            curl_setopt($ch, CURLOPT_URL, $url);
                            curl_setopt($ch, CURLOPT_POST, 1);
                            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
                            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

                            $output = curl_exec($ch);
                            curl_close($ch);
                            var_dump($output);        
                

REQUEST

import hashlib
import time
import requests
import json

base_url = "https://api.itniotech.com/sms/"
api_key = "your api key"
api_pwd = "your api secret"
appid = "{{appId}}"
numbers = "{{numbers}}"
content = "{{content}}"
senderId = "{{senderId}}"
orderId = "{{orderId}}"

def create_headers():
  timestamp = int(time.time())
  s = "%s%s%s" % (api_key, api_pwd, str(timestamp))
  sign = hashlib.md5(s.encode(encoding='UTF-8')).hexdigest()
  headers = {
    'Content-Type': 'application/json;charset=utf-8',
    'Sign': sign,
    'Timestamp': str(timestamp),
    'Api-Key': api_key
  }
  return headers

headers = create_headers()

url = "%s/sendSms" % base_url
print(url)

#post method
body = {"appId": appid, "numbers": numbers, "content": content, "senderId": senderId, "orderId": orderId}
print(body)

rsp = requests.post(url, json=body, headers=headers)
if rsp.status_code == 200:
    res = json.loads(rsp.text)
  print(res)        
                
 

RESPONSEEXAMPLE


                    {
    "status": "0",
    "reason": "success",
    "success": "2",
    "fail": "0",
    "array":[
        {
            "msgId": "2108021054011000095",
            "number": "91856321412",
            "orderId":'21412',
        },
        {
            "msgId": "2108021059531000096",
            "number": "91856321413",
            "orderId":'21413',
        }
    ]
}