{"id":3397,"date":"2022-02-17T08:29:03","date_gmt":"2022-02-17T08:29:03","guid":{"rendered":"https:\/\/web.text2reach.com\/sms-sutisanas-api-dokumentacija\/"},"modified":"2026-06-01T12:08:07","modified_gmt":"2026-06-01T12:08:07","slug":"sms-messaging-api-documentation","status":"publish","type":"page","link":"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/","title":{"rendered":"SMS messaging API documentation"},"content":{"rendered":"\n<h2>Bulk SMS<\/h2>\n\n\n\n<p>Text2reach API has simple HTTP GET request interface and also JSON-RPC interface. To use JSON-RPC interface, please read the&nbsp;<a href=\"http:\/\/www.jsonrpc.org\/specification\" target=\"_blank\" rel=\"noreferrer noopener\">JSON-RPC Specification<\/a>.<\/p>\n\n\n\n<h3>API rate limits<\/h3>\n\n\n\n<p>To ensure fair usage and system stability, we enforce rate limits on all API requests.<br>Requests Allowed:&nbsp;<em><strong>300 per 10 seconds<\/strong><\/em>&nbsp;(per client).<br>Exceeding these limits will result in a&nbsp;<em><strong>429 Too Many Requests<\/strong><\/em>&nbsp;HTTP error response.<br>If your application receives a 429 error, you must stop sending requests immediately and wait until the limit resets.<br>The response will include a standard HTTP header to indicate the required wait time:&nbsp;<em><strong>Retry-After<\/strong><\/em>. The time, in seconds, the client should wait before making a new request.<br>Best Practice: Implement logic in your application that reads the Retry-After header and dynamically pauses subsequent requests for the specified duration.<\/p>\n\n\n\n<h2 id=\"h2-title\">1. Send SMS<\/h2>\n\n\n\n<h3 id=\"toc_1_1\">1.1 HTTP interface<\/h3>\n\n\n\n<p>To send a bulk message, SP must make a HTTP GET request to address:&nbsp;<em>https:\/\/api.text2reach.com\/sms\/send<\/em>&nbsp;query string values are specified below in the parameters table.&nbsp;<strong>All parameters should be properly url-encoded.<\/strong>&nbsp;The returned HTML body for the request will be a message ID or an error code in plain text format (or a detailed JSON object if requested).<\/p>\n\n\n\n<p>Example: <a href=\"https:\/\/api.text2reach.com\/sms\/send?api_key=05A256117C15DE668784DC8CF6863AF2&amp;phone=37126378162&amp;from=29180083&amp;message=Hello+world\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/api.text2reach.com\/sms\/send?api_key=XXXXXXXXXXXXX<\/a> <a href=\"https:\/\/api.text2reach.com\/sms\/send?api_key=05A256117C15DE668784DC8CF6863AF2&amp;phone=37126378162&amp;from=29180083&amp;message=Hello+world\" target=\"_blank\" rel=\"noreferrer noopener\">&amp;phone=37126378162&amp;from=29180083&amp;message=Hello+world<\/a><\/p>\n\n\n\n<h3>1.2 JSON-RPC interface<\/h3>\n\n\n\n<p>To send a bulk message, SP must make a JSON-RPC request to address: <em>https:\/\/api.text2reach.com\/sms\/?api_key=XXXXXXXXXXXXXX<\/em><\/p>\n\n\n\n<p>Method:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>send<\/strong>( from, phone, message, type, unicode, timestamp, report_url, expires, schedule, blacklist )<\/code><\/pre>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n    require_once 'jsonRPCClient.php';\n    define(\"API_KEY\", \"XXXXXXXXXXXX\");\n\n    $j = new jsonRPCClient(\"https:\/\/api.text2reach.com\/sms\/?api_key=\" . API_KEY);\n    $msg_id = $j-&gt;send(\n            'aaaaaaaaaa',\n            '37125924564',\n            'Hello world!',\n            'txt',\n            false,\n            0,\n            'http:\/\/www.yoursite.com\/sms\/report\/handler\/',\n            0,\n            0,\n            false\n    );\n    \/\/ save the $msg_id in DB and use it for report requests\n?&gt;\n                            <\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">1.3 Custom fields<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Name<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>{sms_unsubscribe_link}<\/td><td>Unsubscribe link &#8211; This custom field will include a unique link in the message for each recipient where the recipient can unsubscribe from future SMS. The link will take the recipient to a landing page where they will be asked to confirm the unsubscribe process. If the recipient confirms the unsubscribe process, the recipient&#8217;s number will be added to the client account blacklist, and future SMS sending to this number will be rejected until the number is removed from the blacklist. Numbers in the blacklist are added as recipient number + sender name, which means that the recipient unsubscribes only from specific sender name \/ brand messages.<\/td><\/tr><tr><td>{pin:*:6:3600}<\/td><td>PIN \/ Verification code \u2013 this custom field will include unique code in message body which will be sent to recipient. Sent code can be validated over API request. More information about PIN code variables and verification process see section&nbsp;<a href=\"https:\/\/my.text2reach.com\/api\/sms#toc_8\">8. PIN \/ Verification code<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"toc_1_1\">1.4 Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Name<\/td><td>Required<\/td><td>Default value<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>api_key<\/td><td>yes<\/td><td>&#8211;<\/td><td>Your registered Bulk API key<\/td><\/tr><tr><td>from<\/td><td>yes<\/td><td>&#8211;<\/td><td>source address of the message<\/td><\/tr><tr><td>phone<\/td><td>yes<\/td><td>&#8211;<\/td><td>destination address in international form<\/td><\/tr><tr><td>message<\/td><td>yes<\/td><td>&#8211;<\/td><td>plain text message up to 160 (1071) characters, Unicode message up to 70 (469) characters<\/td><\/tr><tr><td>type<\/td><td>no<\/td><td>txt<\/td><td>message type (&#8220;txt&#8221; for text, &#8220;bin&#8221; for binary)<\/td><\/tr><tr><td>unicode<\/td><td>no<\/td><td>true<\/td><td>if set to false, characters not in GSM 7bit alphabet will be converted (\u0101 =&gt; a) or removed<\/td><\/tr><tr><td>timestamp<\/td><td>no<\/td><td>0<\/td><td>Unix timestamp of a time when end user opted in to receive messages. If parameter is not set the current timestamp is used.<\/td><\/tr><tr><td>report_url<\/td><td>no<\/td><td>false<\/td><td>URL for delivery reports<\/td><\/tr><tr><td>expires<\/td><td>no<\/td><td>0<\/td><td>Delivery time in seconds<\/td><\/tr><tr><td>schedule<\/td><td>no<\/td><td>&#8211;<\/td><td>Unix timestamp of a time when the message is scheduled for delivery<\/td><\/tr><tr><td>blacklist<\/td><td>no<\/td><td>false<\/td><td>Checks if the number is in blacklist before sending. Returns error -21 if found<\/td><\/tr><tr><td>format<\/td><td>no<\/td><td>&#8211;<\/td><td>Response format. If not set, the response will be a message ID or an error code in plain text format. If set to &#8220;json&#8221;, the response will be in JSON format. If the request was not successful or in case of an error, the&nbsp;<strong>&#8216;success&#8217;<\/strong>&nbsp;field will be set to 0.<br>JSON format:<br><em>{ &#8216;success&#8217;: 1|0, &#8216;message&#8217;: &#8216;ok&#8217;|&#8217;error&#8217;, &#8216;data&#8217;: { &#8216;msg_id&#8217;: 1234567890, &#8216;status&#8217;: &#8216;submitted&#8217;|&#8217;error&#8217;, &#8216;error&#8217;: &#8216;error message&#8217; } }<\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"toc_1_1\">1.5 Description<\/h3>\n\n\n\n<p>This bulk API call will send the text message to the provided phone number. Your account will be checked for the required funds. If the message cannot be sent, the response will be a negative integer representing the error.<\/p>\n\n\n\n<p>The message will be considered as plain if all the characters are present in the GSM 7bit alphabet (see the table below). It is possible to send up to 1071 characters which will be split into seven parts, 153 characters per part. You will be charged for each part accordingly. 7 characters out of 160 are reserved to identify and concatenate multiple parts and applies only to messages having more than one part. If the message contains unicode characters then you can send up to 469 characters, 63 characters per part, max 7 parts. 7 characters out of 63 are reserved to identify and concatenate multiple parts and applies only to messages having more than one part.<\/p>\n\n\n\n<p>The mandatory parameter \u201cfrom\u201d can be a telephone number in international format, a short code or a textual sender name. Maximum length of an international number is 15 digits not including \u201c+\u201d or \u201c00\u201d prefix. Maximum length of a textual sender name is 11 alphanumeric characters.<\/p>\n\n\n\n<p>The optional parameter \u201ctype\u201d specifies the format of the parameter \u201cmessage\u201d. In case the type is set to \u201cbin\u201d, parameter \u201cmessage\u201d should be in hexadecimal format.<\/p>\n\n\n\n<p>The optional parameter \u201cunicode\u201d specifies the encoding used for parameter \u201cmessage\u201d. If it is set to \u201cfalse\u201d, then the message will be checked against GSM 7bit alphabet (see the table below) and all the symbols not in the table will be converted to the respective latin characters or completely removed. If the parameter \u201cunicode\u201d is set to \u201ctrue\u201d and the message contains characters not in the GSM 7bit alphabet, then the message will be considered as utf-8 and reduce the length of the message to 70 (469) characters.<\/p>\n\n\n\n<p>The optional parameter \u201ctimestamp\u201d specifies the time when the user opted in to receive the message. If an end user has signed up for your service and has provided a mobile phone number to receive advertisements or informational messages, then you should provide \u201ctimestamp\u201d parameter with the sign-up time. If an owner of a mobile phone number is changed, number is closed or operator is changed, then the message will not be sent. If the new owner of a number opts in to receive messages, a new timestamp should be used.<\/p>\n\n\n\n<p>The \u201creport_url\u201d parameter should be used to receive delivery reports for sent messages. Please see below for detailed request specification.<\/p>\n\n\n\n<p>If the \u201cexpire\u201d parameter is not specified, the operator default expire time is used. If specified and the message is not delivered in the specified amount of seconds, you will received &#8220;expired&#8221; status. Exact behavior depends on the end user mobile phone operator validity period of the message and is not guaranteed to match the expire time specified in the parameter.<\/p>\n\n\n\n<p>The \u201cschedule\u201d parameter should be set if you want to delay the delivery of the message. The parameter must be in two weeks range from the current time.<\/p>\n\n\n\n<h2 id=\"another-h2\">2. Manual delivery reports<\/h2>\n\n\n\n<p>You can request a status of the sent message by an api call.<\/p>\n\n\n\n<h3 id=\"toc_1_1\">2.1 HTTP interface<\/h3>\n\n\n\n<p>To request a status, SP must make a HTTP GET request to address:&nbsp;<em>https:\/\/api.text2reach.com\/sms\/status<\/em>&nbsp;query string values are specified below in the parameters table. The returned HTTP body will contain a status of the message.<\/p>\n\n\n\n<p>Example:<br><a href=\"https:\/\/api.text2reach.com\/sms\/status?api_key=XXXXXXXXXXXX&amp;msg_id=1234567\">https:\/\/api.text2reach.com\/sms\/status?api_key=XXXXXXXXXXXX&amp;msg_id=1234567<\/a><\/p>\n\n\n\n<h3>2.2 JSON-RPC interface<\/h3>\n\n\n\n<p>To request a status, SP must make a JSON-RPC request to address: <em>https:\/\/api.text2reach.com\/sms\/?api_key=XXXXXXXXXXXX<\/em><\/p>\n\n\n\n<p>Method:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>status<\/strong>( msg_id )<\/code><\/pre>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n    require_once 'jsonRPCClient.php';\n    define(\"API_KEY\", \"XXXXXXXXXXXX\");\n\n    $j = new jsonRPCClient(\"https:\/\/api.text2reach.com\/sms\/?api_key=\" . API_KEY);\n    $status = $j-&gt;status(1234567);\n\n    \/\/ save the status in DB for the msg_id=1234567\n?&gt;\n                            <\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">2.3 Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Name<\/td><td>Required<\/td><td>Default value<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>api_key<\/td><td>yes<\/td><td>&#8211;<\/td><td>your registered Bulk API key<\/td><\/tr><tr><td>msg_id<\/td><td>yes<\/td><td>&#8211;<\/td><td>message ID from \u201cbulk send\u201d api call<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"h3-after-h2\">3. Automatic delivery reports<\/h2>\n\n\n\n<p>Alternatively reports will be delivered to the \u201creport_url\u201d if it is provided in the send bulk api call. Delivery interface will be the same as used in the sending, e.g., if you used json-rpc interface to send a message, then the delivery report will be sent through json-rpc interface, too.<\/p>\n\n\n\n<h3 id=\"toc_1_1\">3.1 HTTP interface<\/h3>\n\n\n\n<p>SMSGW makes a HTTP GET request to a \u201creport_url\u201d address provided by SP with the parameters found below. The SP handler script must respond with text \u201cOK\u201d or else the report will be retried for a total of 10 times with 2n minutes interval (n \u2013 retries counter) and then discarded.<\/p>\n\n\n\n<h3>3.2 &nbsp;JSON-RPC interface<\/h3>\n\n\n\n<p>To handle report requests through JSON-RPC interface, you must have the minimum implementation as provided below:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n    require_once 'jsonRPCServer.php';\n\n    class handler {\n            public function report($msg_id, $status, $retries) {\n                    \/\/ handle the report\n                    return true;\n            }\n    }\n\n    $server = new handler();\n    jsonRPCServer::handle($server) or die('Invalid request');\n?&gt;\n                            <\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">3.3 Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Name<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td>msg_id<\/td><td>message id of the message this report belongs to, provided as a result of sending the message<\/td><\/tr><tr><td>status<\/td><td>status of the sent message,<br>delivered \u2013 the message was delivered successfully<br>undelivered \u2013 the message was not delivered<br>expired \u2013 the delivery reached time limit and was considered undelivered<br>canceled \u2013 the message was canceled before scheduled sendout<br>rejected \u2013 the message was rejected by SMSGW and was not charged<br>pending \u2013 the message is not jet delivered (this status is only reported using manual delivery checking)<br>unknown \u2013 message status is not known<\/td><\/tr><tr><td>retries<\/td><td>how many times platform tried to deliver report to the \u201creport_url\u201d<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"enkurs-numur-3\">4. Extended delivery report<\/h2>\n\n\n\n<p>You can request a details of the sent message by an api call.<\/p>\n\n\n\n<h3 id=\"toc_1_1\">4.1 HTTP interface<\/h3>\n\n\n\n<p>To request a details, SP must make a HTTP GET request to address:&nbsp;<em>https:\/\/api.text2reach.com\/sms\/details<\/em>&nbsp;query string values are specified below in the parameters table. The returned HTTP body will contain a status of the message.<\/p>\n\n\n\n<h3>4.2 JSON-RPC interface<\/h3>\n\n\n\n<p>To request a detailed status, SP must make a JSON-RPC request to address:<em>https:\/\/api.text2reach.com\/sms\/?api_key=XXXXXXXXXXXX<\/em><\/p>\n\n\n\n<p>Method:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>details<\/strong>( msg_id )<\/code><\/pre>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n    require_once 'jsonRPCClient.php';\n    define(\"API_KEY\", \"XXXXXXXXXXXX\");\n\n    $j = new jsonRPCClient(\"https:\/\/api.text2reach.com\/sms\/?api_key=\" . API_KEY);\n    $status = $j-&gt;status(1234567);\n\n    \/\/ save the status in DB for the msg_id=1234567\n?&gt;\n                                <\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">4.3 Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Name<\/td><td>Required<\/td><td>Default value<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>api_key<\/td><td>yes<\/td><td>&#8211;<\/td><td>your registered Bulk API key<\/td><\/tr><tr><td>msg_id<\/td><td>yes<\/td><td>&#8211;<\/td><td>message ID from \u201cbulk send\u201d api call<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"toc_1_1\">4.4 Returns<\/h3>\n\n\n\n<p>Error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"success\" : 0,\n    \"message\" : \"Unknown msg_id\",\n    \"data\" : &#91;]\n}<\/code><\/pre>\n\n\n\n<p>Successfull:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"success\" : 1,\n    \"message\" : \"ok\",\n    \"data\" : {\n        \"msg_id\" : \"1234567\",\n        \"source\" : \"info\",  \/\/ from number\/alpha\n        \"destination\" : \"37129123456\", \/\/ to number\n        \"country\" : {\n            \"name\" : \"Latvia\",\n            \"iso\" : \"lv\",\n            \"mcc\" : \"247\"\n        },\n        \"operator\" : {\n            \"name\":\"Best Mobile Operator\",\n            \"mnc\":\"10\"\n        },\n        \"created\" : \"2017-01-01 10:00:00\",\n        \"delivered\" : \"2017-01-01 10:00:03\",\n        \"schedule\" : \"N\",\n        \"scheduled\" : null,\n        \"message\" : \"Hello World!\",\n        \"multipart\" : \"N\",\n        \"parts\" : 1,\n        \"price: : 0.0232,\n        \"sum\" : 0.0232,\n        \"status\" : \"delivered\" \/\/ statuses: delivered | undelivered | expired | canceled | rejected | pending\n    }\n}<\/code><\/pre>\n\n\n\n<h2 id=\"enkurs-numur-3\">5. Cancel SMS<\/h2>\n\n\n\n<p>You can cancel pending\/scheduled message by an api call.<\/p>\n\n\n\n<h3 id=\"toc_1_1\">5.1 HTTP interface<\/h3>\n\n\n\n<p>Example:<br><a href=\"https:\/\/api.text2reach.com\/sms\/cancel?api_key=05A256117C15DE668784DC8CF6863AF2&amp;msg_id=1234567\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/api.text2reach.com\/sms\/cancel?api_key=XXXXXXXXXXXX&amp;msg_id=1234567<\/a><\/p>\n\n\n\n<p>To cancel message sending, SP must make a HTTP GET request to address:&nbsp;<em>https:\/\/api.text2reach.com\/sms\/cancel<\/em>&nbsp;query string values are specified below in the parameters table. The returned HTTP body will contain a status of the message.<\/p>\n\n\n\n<h3>5.2 JSON-RPC interface<\/h3>\n\n\n\n<p>To cancel message sending, SP must make a JSON-RPC request to address:<em>https:\/\/api.text2reach.com\/sms\/?api_key=XXXXXXXXXXXX<\/em><\/p>\n\n\n\n<p>Method:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>cancel<\/strong>( msg_id )<\/code><\/pre>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n    require_once 'jsonRPCClient.php';\n    define(\"API_KEY\", \"XXXXXXXXXXXX\");\n\n    $j = new jsonRPCClient(\"https:\/\/api.text2reach.com\/sms\/?api_key=\" . API_KEY);\n    $result = $j-&gt;cancel(1234567);\n\n    \/\/ result = ok | forbidden | error | unknown\n?&gt;\n                                <\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">5.3 Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Name<\/td><td>Required<\/td><td>Default value<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>api_key<\/td><td>yes<\/td><td>&#8211;<\/td><td>your registered Bulk API key<\/td><\/tr><tr><td>msg_id<\/td><td>yes<\/td><td>&#8211;<\/td><td>message ID from \u201cbulk send\u201d api call<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"enkurs-numur-3\">6. Credits balance<\/h2>\n\n\n\n<p>Prepaid customers can request remains of credits on account.<\/p>\n\n\n\n<h3 id=\"toc_1_1\">6.1 HTTP interface<\/h3>\n\n\n\n<p>To request a balance, SP must make a HTTP GET request to address:&nbsp;<em>https:\/\/api.text2reach.com\/sms\/credit<\/em>&nbsp;The returned HTTP body will contain a amount of credits.<\/p>\n\n\n\n<p>Example:<br><a href=\"https:\/\/api.text2reach.com\/sms\/credit?api_key=05A256117C15DE668784DC8CF6863AF2\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/api.text2reach.com\/sms\/credit?api_key=XXXXXXXXXXXX<\/a><\/p>\n\n\n\n<h3>6.2 JSON-RPC interface<\/h3>\n\n\n\n<p>To request a status, SP must make a JSON-RPC request to address:<em>https:\/\/api.text2reach.com\/sms\/?api_key=XXXXXXXXXXXX<\/em><\/p>\n\n\n\n<p>Method:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>credit<\/strong>()<\/code><\/pre>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n    require_once 'jsonRPCClient.php';\n    define(\"API_KEY\", \"XXXXXXXXXXXX\");\n\n    $j = new jsonRPCClient(\"https:\/\/api.text2reach.com\/sms\/?api_key=\" . API_KEY);\n    $prices = $j-&gt;credit();\n?&gt;<\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">6.3 Parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Name<\/td><td>Required<\/td><td>Default value<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>api_key<\/td><td>yes<\/td><td>&#8211;<\/td><td>your registered Bulk API key<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"enkurs-numur-3\">7. Prices<\/h2>\n\n\n\n<h3 id=\"toc_1_1\">7.1 HTTP interface<\/h3>\n\n\n\n<p>To get all available prices by countries, SP must make a HTTP GET request to address: https:\/\/api.text2reach.com\/sms\/prices query string values are specified below in the parameters table. The returned HTTP body will contain an json structure.<\/p>\n\n\n\n<p>Example:<br><a href=\"https:\/\/api.text2reach.com\/sms\/prices?api_key=05A256117C15DE668784DC8CF6863AF2\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/api.text2reach.com\/sms\/prices?api_key=XXXXXXXXXXXX&amp;format=json<\/a><\/p>\n\n\n\n<p>Are available follows formats (only HTTP interface):<br><strong>json<\/strong>&nbsp;&#8211; Price in JSON format. This is default format.<br><strong>csv<\/strong>&nbsp;&#8211; prices in csv-file with comma delimeter<br><strong>xls<\/strong>&nbsp;&#8211; prices in Excel format file<\/p>\n\n\n\n<h3>7.2 JSON-RPC interface<\/h3>\n\n\n\n<p>To get all available prices by countries, SP must make a JSON-RPC request to address:<em>https:\/\/api.text2reach.com\/sms\/?api_key=XXXXXXXXXXXX<\/em><\/p>\n\n\n\n<p>Method:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>prices<\/strong>()<\/code><\/pre>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n    require_once 'jsonRPCClient.php';\n    define(\"API_KEY\", \"XXXXXXXXXXXX\");\n\n    $j = new jsonRPCClient(\"https:\/\/api.text2reach.com\/sms\/?api_key=\" . API_KEY);\n    $prices = $j-&gt;prices();\n?&gt;\n                                <\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">7.3 Parameters <\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Name<\/td><td>Required<\/td><td>Default value<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>api_key<\/td><td>yes<\/td><td>&#8211;<\/td><td>your registered Bulk API key<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"toc_1_1\">7.4 Returns<\/h3>\n\n\n\n<p>Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n    ...\n    {\n        country : \"Belgium\",\n        iso     : \"be\",\n        code    : 32,\n        operator: \"Proximus\",\n        mcc\t    : 206,\n        mnc     : 1,\n        type    : \"all\",\n        price   : 0.123456,\n        note    : null\n    },\n    ...\n]<\/code><\/pre>\n\n\n\n<h2 id=\"enkurs-numur-3\">8. PIN \/ Verification code<\/h2>\n\n\n\n<p>Text2Reach API provides functionality to generate PIN code using custom fields in message body. To generate unique PIN code, you need to include custom field in any place of message body when sending SMS.<\/p>\n\n\n\n<h3 id=\"toc_1_1\">8.1 Custom field template<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>{PIN:&lt;TYPE&gt;:&lt;length&gt;:&lt;validity_period&gt;}<\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">8.2&nbsp;Custom field variables<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Variable<\/td><td>Mandatory<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>Type<\/td><td>yes<\/td><td>* &#8211; Alpha + numeric PIN code (A1B2)<br>N \u2013 Only Numeric PIN code (1234)<br>A \u2013 Only Alpha PIN code (ABCD)<\/td><\/tr><tr><td>Length<\/td><td>yes<\/td><td>Symbol count in numeric value<\/td><\/tr><tr><td>Validity period<\/td><td>yes<\/td><td>Validity period in seconds<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"toc_1_1\">8.3&nbsp;Custom field example<\/h3>\n\n\n\n<p>To send PIN code that consists of Alpha and Numeric values, is 8 characters long and is valid for one hour you need to insert following custom fields in any place in message body<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{PIN:*:8:3600}<\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">8.4&nbsp;Custom API endpoint<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;api.text2reach.com\/sms\/pin<\/code><\/pre>\n\n\n\n<h3 id=\"toc_1_1\">8.5 Request parameters<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Parameter<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>api_key<\/td><td>API key that was used to request pin code generation<\/td><\/tr><tr><td>phone<\/td><td>Phone number to verify<\/td><\/tr><tr><td>pin<\/td><td>PIN code to verify<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"toc_1_1\">8.6 Request example<\/h3>\n\n\n\n<p><a href=\"https:\/\/api.text2reach.com\/sms\/pin?api_key=05A256117C15DE668784DC8CF6863AF2&amp;phone=3712123123&amp;pin=A1B2\">https:\/\/api.text2reach.com\/sms\/pin?api_key=XXXXXXXXXXXX&amp;phone=3712123123&amp;pin=A1B2<\/a><\/p>\n\n\n\n<h3 id=\"toc_1_1\">8.7 Response codes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Response<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>VALID<\/td><td>PIN code is valid and matches to the one that was sent to phone number.<\/td><\/tr><tr><td>UNKNOWN<\/td><td>PIN code does not match to the one that was sent to phone number.<\/td><\/tr><tr><td>EXPIRED<\/td><td>PIN code has expired<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"enkurs-numur-3\">Error codes<\/h2>\n\n\n\n<p>If the message cannot be sent, the return value for msg_id will contain a negative integer which represents an error from the table below:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Value<\/td><td>Description<\/td><\/tr><\/thead><tbody><tr><td>-10<\/td><td>Geneal system error<\/td><\/tr><tr><td>-11<\/td><td>Wrong API KEY for the request<\/td><\/tr><tr><td>-12<\/td><td>Wrong Message ID<\/td><\/tr><tr><td>-14<\/td><td>Wrong source address<\/td><\/tr><tr><td>-15<\/td><td>Wrong destination address<\/td><\/tr><tr><td>-16<\/td><td>Wrong \u201ctype\u201d, must be \u201ctxt\u201d or \u201cbin\u201d<\/td><\/tr><tr><td>-17<\/td><td>Wrong message length (empty)<\/td><\/tr><tr><td>-18<\/td><td>Wrong message length (too long)<\/td><\/tr><tr><td>-19<\/td><td>Wrong &#8220;schedule&#8221; value<\/td><\/tr><tr><td>-20<\/td><td>Wrong &#8220;expires&#8221; value<\/td><\/tr><tr><td>-21<\/td><td>Phone in blacklist<\/td><\/tr><tr><td>-22<\/td><td>No route destination<\/td><\/tr><tr><td>-34<\/td><td>Message failed<\/td><\/tr><tr><td>-35<\/td><td>Client undefined<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2>GSM 7bit characters<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Hex<\/th><th>Decimal<\/th><th>Character name<\/th><th>Supported character<\/th><\/tr><\/thead><tbody><tr><td>0x00<\/td><td>0<\/td><td>COMMERCIAL AT<\/td><td>@<\/td><\/tr><tr><td>0x01<\/td><td>1<\/td><td>POUND SIGN<\/td><td>\u00a3<\/td><\/tr><tr><td>0x02<\/td><td>2<\/td><td>DOLLAR SIGN<\/td><td>$<\/td><\/tr><tr><td>0x03<\/td><td>3<\/td><td>YEN SIGN<\/td><td>\u00a5<\/td><\/tr><tr><td>0x04<\/td><td>4<\/td><td>LATIN SMALL LETTER E WITH GRAVE<\/td><td>\u00e8<\/td><\/tr><tr><td>0x05<\/td><td>5<\/td><td>LATIN SMALL LETTER E WITH ACUTE<\/td><td>\u00e9<\/td><\/tr><tr><td>0x06<\/td><td>6<\/td><td>LATIN SMALL LETTER U WITH GRAVE<\/td><td>\u00f9<\/td><\/tr><tr><td>0x07<\/td><td>7<\/td><td>LATIN SMALL LETTER I WITH GRAVE<\/td><td>\u00ec<\/td><\/tr><tr><td>0x08<\/td><td>8<\/td><td>LATIN SMALL LETTER O WITH GRAVE<\/td><td>\u00f2<\/td><\/tr><tr><td>0x09<\/td><td>9<\/td><td>LATIN CAPITAL LETTER C WITH CEDILLA<\/td><td>\u00c7<\/td><\/tr><tr><td>0x0A<\/td><td>10<\/td><td>LINE FEED<\/td><td><\/td><\/tr><tr><td>0x0B<\/td><td>11<\/td><td>LATIN CAPITAL LETTER O WITH STROKE<\/td><td>\u00d8<\/td><\/tr><tr><td>0x0C<\/td><td>12<\/td><td>LATIN SMALL LETTER O WITH STROKE<\/td><td>\u00f8<\/td><\/tr><tr><td>0x0D<\/td><td>13<\/td><td>CARRIAGE RETURN<\/td><td><\/td><\/tr><tr><td>0x0E<\/td><td>14<\/td><td>LATIN CAPITAL LETTER A WITH RING ABOVE<\/td><td>\u00c5<\/td><\/tr><tr><td>0x0F<\/td><td>15<\/td><td>LATIN SMALL LETTER A WITH RING ABOVE<\/td><td>\u00e5<\/td><\/tr><tr><td>0x10<\/td><td>16<\/td><td>GREEK CAPITAL LETTER DELTA<\/td><td>\u0394<\/td><\/tr><tr><td>0x11<\/td><td>17<\/td><td>LOW LINE<\/td><td>_<\/td><\/tr><tr><td>0x12<\/td><td>18<\/td><td>GREEK CAPITAL LETTER PHI<\/td><td>\u03a6<\/td><\/tr><tr><td>0x13<\/td><td>19<\/td><td>GREEK CAPITAL LETTER GAMMA<\/td><td>\u0393<\/td><\/tr><tr><td>0x14<\/td><td>20<\/td><td>GREEK CAPITAL LETTER LAMBDA<\/td><td>\u039b<\/td><\/tr><tr><td>0x15<\/td><td>21<\/td><td>GREEK CAPITAL LETTER OMEGA<\/td><td>\u03a9<\/td><\/tr><tr><td>0x16<\/td><td>22<\/td><td>GREEK CAPITAL LETTER PI<\/td><td>\u03a0<\/td><\/tr><tr><td>0x17<\/td><td>23<\/td><td>GREEK CAPITAL LETTER PSI<\/td><td>\u03a8<\/td><\/tr><tr><td>0x18<\/td><td>24<\/td><td>GREEK CAPITAL LETTER SIGMA<\/td><td>\u03a3<\/td><\/tr><tr><td>0x19<\/td><td>25<\/td><td>GREEK CAPITAL LETTER THETA<\/td><td>\u0398<\/td><\/tr><tr><td>0x1A<\/td><td>26<\/td><td>GREEK CAPITAL LETTER XI<\/td><td>\u039e<\/td><\/tr><tr><td>0x1B<\/td><td>27<\/td><td>ESCAPE TO EXTENSION TABLE<\/td><td><\/td><\/tr><tr><td>0x1C<\/td><td>28<\/td><td>LATIN CAPITAL LETTER AE<\/td><td>\u00c6<\/td><\/tr><tr><td>0x1D<\/td><td>29<\/td><td>LATIN SMALL LETTER AE<\/td><td>\u00e6<\/td><\/tr><tr><td>0x1E<\/td><td>30<\/td><td>LATIN SMALL LETTER SHARP S(German)<\/td><td>\u00df<\/td><\/tr><tr><td>0x1F<\/td><td>31<\/td><td>LATIN CAPITAL LETTER E WITH ACUTE<\/td><td>\u00c9<\/td><\/tr><tr><td>0x20<\/td><td>32<\/td><td>SPACE<\/td><td><\/td><\/tr><tr><td>0x21<\/td><td>33<\/td><td>EXCLAMATION MARK<\/td><td>!<\/td><\/tr><tr><td>0x22<\/td><td>34<\/td><td>QUOTATION MARK<\/td><td>\u201c<\/td><\/tr><tr><td>0x23<\/td><td>35<\/td><td>NUMBER SIGN<\/td><td>#<\/td><\/tr><tr><td>0x24<\/td><td>36<\/td><td>CURRENCY SIGN<\/td><td>\u00a4<\/td><\/tr><tr><td>0x25<\/td><td>37<\/td><td>PERCENT SIGN<\/td><td>%<\/td><\/tr><tr><td>0x26<\/td><td>38<\/td><td>AMPERSAND<\/td><td>&amp;<\/td><\/tr><tr><td>0x27<\/td><td>39<\/td><td>APOSTROPHE<\/td><td>\u2018<\/td><\/tr><tr><td>0x28<\/td><td>40<\/td><td>LEFT PARENTHESIS<\/td><td>(<\/td><\/tr><tr><td>0x29<\/td><td>41<\/td><td>RIGHT PARENTHESIS<\/td><td>)<\/td><\/tr><tr><td>0x2A<\/td><td>42<\/td><td>ASTERISK<\/td><td>*<\/td><\/tr><tr><td>0x2B<\/td><td>43<\/td><td>PLUS SIGN<\/td><td>+<\/td><\/tr><tr><td>0x2C<\/td><td>44<\/td><td>COMMA<\/td><td>,<\/td><\/tr><tr><td>0x2D<\/td><td>45<\/td><td>HYPHEN-MINUS<\/td><td>\u2013<\/td><\/tr><tr><td>0x2E<\/td><td>46<\/td><td>FULL STOP<\/td><td>.<\/td><\/tr><tr><td>0x2F<\/td><td>47<\/td><td>SOLIDUS(SLASH)<\/td><td>\/<\/td><\/tr><tr><td>0x30<\/td><td>48<\/td><td>DIGIT ZERO<\/td><td>0<\/td><\/tr><tr><td>0x31<\/td><td>49<\/td><td>DIGIT ONE<\/td><td>1<\/td><\/tr><tr><td>0x32<\/td><td>50<\/td><td>DIGIT TWO<\/td><td>2<\/td><\/tr><tr><td>0x33<\/td><td>51<\/td><td>DIGIT THREE<\/td><td>3<\/td><\/tr><tr><td>0x34<\/td><td>52<\/td><td>DIGIT FOUR<\/td><td>4<\/td><\/tr><tr><td>0x35<\/td><td>53<\/td><td>DIGIT FIVE<\/td><td>5<\/td><\/tr><tr><td>0x36<\/td><td>54<\/td><td>DIGIT SIX<\/td><td>6<\/td><\/tr><tr><td>0x37<\/td><td>55<\/td><td>DIGIT SEVEN<\/td><td>7<\/td><\/tr><tr><td>0x38<\/td><td>56<\/td><td>DIGIT EIGHT<\/td><td>8<\/td><\/tr><tr><td>0x39<\/td><td>57<\/td><td>DIGIT NINE<\/td><td>9<\/td><\/tr><tr><td>0x3A<\/td><td>58<\/td><td>COLON<\/td><td>:<\/td><\/tr><tr><td>0x3B<\/td><td>59<\/td><td>SEMICOLON<\/td><td>;<\/td><\/tr><tr><td>0x3C<\/td><td>60<\/td><td>LESS-THAN SIGN<\/td><td>&lt;<\/td><\/tr><tr><td>0x3D<\/td><td>61<\/td><td>EQUALS SIGN<\/td><td>=<\/td><\/tr><tr><td>0x3E<\/td><td>62<\/td><td>GREATER-THAN SIGN<\/td><td>&gt;<\/td><\/tr><tr><td>0x3F<\/td><td>63<\/td><td>QUESTION MARK<\/td><td>?<\/td><\/tr><tr><td>0x40<\/td><td>64<\/td><td>INVERTED EXCLAMATION MARK<\/td><td>\u00a1<\/td><\/tr><tr><td>0x41<\/td><td>65<\/td><td>LATIN CAPITAL LETTER A<\/td><td>A<\/td><\/tr><tr><td>0x42<\/td><td>66<\/td><td>LATIN CAPITAL LETTER B<\/td><td>B<\/td><\/tr><tr><td>0x43<\/td><td>67<\/td><td>LATIN CAPITAL LETTER C<\/td><td>C<\/td><\/tr><tr><td>0x44<\/td><td>68<\/td><td>LATIN CAPITAL LETTER D<\/td><td>D<\/td><\/tr><tr><td>0x45<\/td><td>69<\/td><td>LATIN CAPITAL LETTER E<\/td><td>E<\/td><\/tr><tr><td>0x46<\/td><td>70<\/td><td>LATIN CAPITAL LETTER F<\/td><td>F<\/td><\/tr><tr><td>0x47<\/td><td>71<\/td><td>LATIN CAPITAL LETTER G<\/td><td>G<\/td><\/tr><tr><td>0x48<\/td><td>72<\/td><td>LATIN CAPITAL LETTER H<\/td><td>H<\/td><\/tr><tr><td>0x49<\/td><td>73<\/td><td>LATIN CAPITAL LETTER I<\/td><td>I<\/td><\/tr><tr><td>0x4A<\/td><td>74<\/td><td>LATIN CAPITAL LETTER J<\/td><td>J<\/td><\/tr><tr><td>0x4B<\/td><td>75<\/td><td>LATIN CAPITAL LETTER K<\/td><td>K<\/td><\/tr><tr><td>0x4C<\/td><td>76<\/td><td>LATIN CAPITAL LETTER L<\/td><td>L<\/td><\/tr><tr><td>0x4D<\/td><td>77<\/td><td>LATIN CAPITAL LETTER M<\/td><td>M<\/td><\/tr><tr><td>0x4E<\/td><td>78<\/td><td>LATIN CAPITAL LETTER N<\/td><td>N<\/td><\/tr><tr><td>0x4F<\/td><td>79<\/td><td>LATIN CAPITAL LETTER O<\/td><td>O<\/td><\/tr><tr><td>0x50<\/td><td>80<\/td><td>LATIN CAPITAL LETTER P<\/td><td>P<\/td><\/tr><tr><td>0x51<\/td><td>81<\/td><td>LATIN CAPITAL LETTER Q<\/td><td>Q<\/td><\/tr><tr><td>0x52<\/td><td>82<\/td><td>LATIN CAPITAL LETTER R<\/td><td>R<\/td><\/tr><tr><td>0x53<\/td><td>83<\/td><td>LATIN CAPITAL LETTER S<\/td><td>S<\/td><\/tr><tr><td>0x54<\/td><td>84<\/td><td>LATIN CAPITAL LETTER T<\/td><td>T<\/td><\/tr><tr><td>0x55<\/td><td>85<\/td><td>LATIN CAPITAL LETTER U<\/td><td>U<\/td><\/tr><tr><td>0x56<\/td><td>86<\/td><td>LATIN CAPITAL LETTER V<\/td><td>V<\/td><\/tr><tr><td>0x57<\/td><td>87<\/td><td>LATIN CAPITAL LETTER W<\/td><td>W<\/td><\/tr><tr><td>0x58<\/td><td>88<\/td><td>LATIN CAPITAL LETTER X<\/td><td>X<\/td><\/tr><tr><td>0x59<\/td><td>89<\/td><td>LATIN CAPITAL LETTER Y<\/td><td>Y<\/td><\/tr><tr><td>0x5A<\/td><td>90<\/td><td>LATIN CAPITAL LETTER Z<\/td><td>Z<\/td><\/tr><tr><td>0x5B<\/td><td>91<\/td><td>LATIN CAPITAL LETTER A WITH DIAERESIS<\/td><td>\u00c4<\/td><\/tr><tr><td>0x5C<\/td><td>92<\/td><td>LATIN CAPITAL LETTER O WITH DIAERESIS<\/td><td>\u00d6<\/td><\/tr><tr><td>0x5D<\/td><td>93<\/td><td>LATIN CAPITAL LETTER N WITH TILDE<\/td><td>\u00d1<\/td><\/tr><tr><td>0x5E<\/td><td>94<\/td><td>LATIN CAPITAL LETTER U WITH DIAERESIS<\/td><td>\u00dc<\/td><\/tr><tr><td>0x5F<\/td><td>95<\/td><td>SECTION SIGN<\/td><td>\u00a7<\/td><\/tr><tr><td>0x60<\/td><td>96<\/td><td>INVERTED QUESTION MARK<\/td><td>\u00bf<\/td><\/tr><tr><td>0x61<\/td><td>97<\/td><td>LATIN SMALL LETTER A<\/td><td>a<\/td><\/tr><tr><td>0x62<\/td><td>98<\/td><td>LATIN SMALL LETTER B<\/td><td>b<\/td><\/tr><tr><td>0x63<\/td><td>99<\/td><td>LATIN SMALL LETTER C<\/td><td>c<\/td><\/tr><tr><td>0x64<\/td><td>100<\/td><td>LATIN SMALL LETTER D<\/td><td>d<\/td><\/tr><tr><td>0x65<\/td><td>101<\/td><td>LATIN SMALL LETTER E<\/td><td>e<\/td><\/tr><tr><td>0x66<\/td><td>102<\/td><td>LATIN SMALL LETTER F<\/td><td>f<\/td><\/tr><tr><td>0x67<\/td><td>103<\/td><td>LATIN SMALL LETTER G<\/td><td>g<\/td><\/tr><tr><td>0x68<\/td><td>104<\/td><td>LATIN SMALL LETTER H<\/td><td>h<\/td><\/tr><tr><td>0x69<\/td><td>105<\/td><td>LATIN SMALL LETTER I<\/td><td>i<\/td><\/tr><tr><td>0x6A<\/td><td>106<\/td><td>LATIN SMALL LETTER J<\/td><td>j<\/td><\/tr><tr><td>0x6B<\/td><td>107<\/td><td>LATIN SMALL LETTER K<\/td><td>k<\/td><\/tr><tr><td>0x6C<\/td><td>108<\/td><td>LATIN SMALL LETTER L<\/td><td>l<\/td><\/tr><tr><td>0x6D<\/td><td>109<\/td><td>LATIN SMALL LETTER M<\/td><td>m<\/td><\/tr><tr><td>0x6E<\/td><td>110<\/td><td>LATIN SMALL LETTER N<\/td><td>n<\/td><\/tr><tr><td>0x6F<\/td><td>111<\/td><td>LATIN SMALL LETTER O<\/td><td>o<\/td><\/tr><tr><td>0x70<\/td><td>112<\/td><td>LATIN SMALL LETTER P<\/td><td>p<\/td><\/tr><tr><td>0x71<\/td><td>113<\/td><td>LATIN SMALL LETTER Q<\/td><td>q<\/td><\/tr><tr><td>0x72<\/td><td>114<\/td><td>LATIN SMALL LETTER R<\/td><td>r<\/td><\/tr><tr><td>0x73<\/td><td>115<\/td><td>LATIN SMALL LETTER S<\/td><td>s<\/td><\/tr><tr><td>0x74<\/td><td>116<\/td><td>LATIN SMALL LETTER T<\/td><td>t<\/td><\/tr><tr><td>0x75<\/td><td>117<\/td><td>LATIN SMALL LETTER U<\/td><td>u<\/td><\/tr><tr><td>0x76<\/td><td>118<\/td><td>LATIN SMALL LETTER V<\/td><td>v<\/td><\/tr><tr><td>0x77<\/td><td>119<\/td><td>LATIN SMALL LETTER W<\/td><td>w<\/td><\/tr><tr><td>0x78<\/td><td>120<\/td><td>LATIN SMALL LETTER X<\/td><td>x<\/td><\/tr><tr><td>0x79<\/td><td>121<\/td><td>LATIN SMALL LETTER Y<\/td><td>y<\/td><\/tr><tr><td>0x7A<\/td><td>122<\/td><td>LATIN SMALL LETTER Z<\/td><td>z<\/td><\/tr><tr><td>0x7B<\/td><td>123<\/td><td>LATIN SMALL LETTER A WITH DIAERESIS<\/td><td>\u00e4<\/td><\/tr><tr><td>0x7C<\/td><td>124<\/td><td>LATIN SMALL LETTER O WITH DIAERESIS<\/td><td>\u00f6<\/td><\/tr><tr><td>0x7D<\/td><td>125<\/td><td>LATIN SMALL LETTER N WITH TILDE<\/td><td>\u00f1<\/td><\/tr><tr><td>0x7E<\/td><td>126<\/td><td>LATIN SMALL LETTER U WITH DIAERESIS<\/td><td>\u00fc<\/td><\/tr><tr><td>0x7F<\/td><td>127<\/td><td>LATIN SMALL LETTER A WITH GRAVE<\/td><td>\u00e0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2>Extended GSM 7bit characters&nbsp;<sup>1<\/sup><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Hex<\/th><th>Decimal<\/th><th>Character name<\/th><th>Supported character<\/th><\/tr><\/thead><tbody><tr><td>0x1B65<\/td><td>27 101<\/td><td>EURO SIGN<\/td><td>\u20ac<\/td><\/tr><tr><td>0x1B0A<\/td><td>27 10<\/td><td>FORM FEED<\/td><td>&lt;FF&gt;<\/td><\/tr><tr><td>0x1B3C<\/td><td>27 60<\/td><td>LEFT SQUARE BRACKET<\/td><td>[<\/td><\/tr><tr><td>0x1B2F<\/td><td>27 47<\/td><td>REVERSE SOLIDUS(BACKSLASH)<\/td><td>\\<\/td><\/tr><tr><td>0x1B3E<\/td><td>27 62<\/td><td>RIGHT SQUARE BRACKET<\/td><td>]<\/td><\/tr><tr><td>0x1B14<\/td><td>27 20<\/td><td>CIRCUMFLEX ACCENT<\/td><td>^<\/td><\/tr><tr><td>0x1B28<\/td><td>27 40<\/td><td>LEFT CURLY BRACKET<\/td><td>{<\/td><\/tr><tr><td>0x1B40<\/td><td>27 64<\/td><td>VERTICAL BAR<\/td><td>|<\/td><\/tr><tr><td>0x1B29<\/td><td>27 41<\/td><td>RIGHT CURLY BRACKET<\/td><td>}<\/td><\/tr><tr><td>0x1B3D<\/td><td>27 61<\/td><td>TILDE<\/td><td>~<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><sup>1<\/sup>&nbsp;&#8211; These additional characters, known as the Extended GSM character set, require two standard GSM characters for each extended GSM character because they use the escape character prefix.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bulk SMS Text2reach API has simple HTTP GET request interface and also JSON-RPC interface. To use JSON-RPC interface, please read the&nbsp;JSON-RPC Specification. API rate limits To ensure fair usage and system stability, we enforce rate limits on all API requests.Requests Allowed:&nbsp;300 per 10 seconds&nbsp;(per client).Exceeding these limits will result in a&nbsp;429 Too Many Requests&nbsp;HTTP error [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-sidebar.php","meta":{"content-type":"","inline_featured_image":false},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SMS messaging API documentation - Text2reach<\/title>\n<meta name=\"description\" content=\"Create SMS account, connect your payment card, generate SMS API KEY and start using SMS messaging API within minutes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SMS messaging API documentation - Text2reach\" \/>\n<meta property=\"og:description\" content=\"Create SMS account, connect your payment card, generate SMS API KEY and start using SMS messaging API within minutes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/\" \/>\n<meta property=\"og:site_name\" content=\"Text2reach\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-01T12:08:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.text2reach.com\/wp-content\/uploads\/2022\/06\/opengraph.png\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.text2reach.com\/#website\",\"url\":\"https:\/\/www.text2reach.com\/\",\"name\":\"Text2reach\",\"description\":\"SMS izs\u016bt\u012b\u0161ana\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.text2reach.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/#webpage\",\"url\":\"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/\",\"name\":\"SMS messaging API documentation - Text2reach\",\"isPartOf\":{\"@id\":\"https:\/\/www.text2reach.com\/#website\"},\"datePublished\":\"2022-02-17T08:29:03+00:00\",\"dateModified\":\"2026-06-01T12:08:07+00:00\",\"description\":\"Create SMS account, connect your payment card, generate SMS API KEY and start using SMS messaging API within minutes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.text2reach.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SMS messaging API documentation\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SMS messaging API documentation - Text2reach","description":"Create SMS account, connect your payment card, generate SMS API KEY and start using SMS messaging API within minutes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/","og_locale":"en_US","og_type":"article","og_title":"SMS messaging API documentation - Text2reach","og_description":"Create SMS account, connect your payment card, generate SMS API KEY and start using SMS messaging API within minutes.","og_url":"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/","og_site_name":"Text2reach","article_modified_time":"2026-06-01T12:08:07+00:00","og_image":[{"width":600,"height":600,"url":"https:\/\/www.text2reach.com\/wp-content\/uploads\/2022\/06\/opengraph.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/www.text2reach.com\/#website","url":"https:\/\/www.text2reach.com\/","name":"Text2reach","description":"SMS izs\u016bt\u012b\u0161ana","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.text2reach.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/#webpage","url":"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/","name":"SMS messaging API documentation - Text2reach","isPartOf":{"@id":"https:\/\/www.text2reach.com\/#website"},"datePublished":"2022-02-17T08:29:03+00:00","dateModified":"2026-06-01T12:08:07+00:00","description":"Create SMS account, connect your payment card, generate SMS API KEY and start using SMS messaging API within minutes.","breadcrumb":{"@id":"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.text2reach.com\/en\/sms-messaging-api-documentation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.text2reach.com\/en\/"},{"@type":"ListItem","position":2,"name":"SMS messaging API documentation"}]}]}},"_links":{"self":[{"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/pages\/3397"}],"collection":[{"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/comments?post=3397"}],"version-history":[{"count":11,"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/pages\/3397\/revisions"}],"predecessor-version":[{"id":8027,"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/pages\/3397\/revisions\/8027"}],"wp:attachment":[{"href":"https:\/\/www.text2reach.com\/en\/wp-json\/wp\/v2\/media?parent=3397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}