Partner API Documentation Grizzly SMS

Description of the protocol's operation

The partner protocol is designed to provide phone numbers and incoming SMS messages via API directly to the Grizzly SMS server. 

All requests include the parameter — KEY. This key is provided by support staff and is available in the personal account.

Quantity requests GET_SERVICES, number requests GET_NUMBER and activation completion requests FINISH_ACTIVATION are sent directly from our server to the partner's server.

URL format : https://GrizzlySMS where GrizzlySMS can be partner.ru:port/GrizzlySMS.php or partner.ru/GrizzlySMS.php

GET_SERVICES

GET_NUMBER

PUSH_SMS

FINISH_ACTIVATION

The Grizzly SMS server sends a request for quantity of phone numbers using the GET_SERVICES method approximately every 10-20 seconds.

If you provide a count > 0 in response, you will receive a request for phone number issuance using the GET_NUMBER method.

After receiving the GET_NUMBER request, you are required to provide a 
phone number that meets all criteria and forward all incoming SMS messages to us using the PUSH_SMS method. This is necessary for us to perform clear and objective filtering and deliver the relevant SMS messages to the right service for our clients.

Upon completing all necessary tasks related to the phone numbers, you will receive a status 3 through the FINISH_ACTIVATION method. This status indicates that the phone number was successfully registered, and you have been rewarded for it.

Requirements:

  • Request/response format: JSON
  • UTF-8 encoding
  • Always use a user-agent header in requests to the Grizzly SMS server

 

Field types:

  • int : integer value in the range from -2 147 483 648 to 2 147 483 647
  • Uint : unsigned integer value in the range from 0 to 2 147 483 647
  • long : integer value in the range from -9 223 372 036 854 775 808 to 9 223 372 036 854 775 807
  • Ulong : unsigned long integer value in the range from 0 to 9 223 372 036 854 775 807
  • cur : real value containing up to 2 decimal places, for example, 177.77
  • boolean : literal values true or false
  • string : string value of unlimited length
  • array of string: string massive
1. GET_SERVICES number request method

This request provides us with information about the quantity of phone number for services available for sale.

The POST request is transmitted from the Grizzly SMS server to the partner's server.

! Please note: If your GSM modem is limited in the number of concurrently active modules, you should provide a count equal to the number of active modules.

Request fields
Field Type Required Description
action String
 
GET_SERVICES
key String
 
Protocol key
Answer fields:
Field Type Required Desciption
status String
 
Status of the response (см. Status Table)
countryList Array of CountryList
 
List of countries
 
CountryList
Field Type Required Description
country String
 
(see Data Table)
operatorMap* Associative
array
 
Key - operator (see Data Table), value - associative array of services**

* You should not send empty data arrays in the operatorMap

** Associative array of services: Key - a brief service name (see Data Table), value - the quantity of phone numbers available for the service (type: int)

Example of a request:
{
  "action": "GET_SERVICES",
  "key": "qwerty123"
}
Example of an answer:
{
  "countryList":
    [
      {
        "country": "russia",
        "operatorMap":
          {
            "any":
              {
                "vk": 3,
                "ok": 10
              }
          }
      },
      {
        "country": "ukraine",
        "operatorMap":
          {
            "any":
              {
                "vk": 0,
                "wa": 32
              }
          }
      }
    ],
  "status": "SUCCESS"
}
2. GET_NUMBER request method

This request provides us with a phone number that we pass on to the client.

The POST request is transmitted from the Grizzly SMS server to the partner's server.

If the exceptionPhoneSet array contains a list of prefixes, for example 44742 and 44740, you should not provide a number that starts with any of these prefixes. The number of digits is not limited by the size of the prefix.

Request fields:
Field Type Required Desctiption
action String
 
GET_NUMBER
key String
 
Protocol key
country String
 
see Data Table
service String
 
see Data Table
operator String
 
see Data Table
sum Cur
 
The amount you will receive for a successfully registered service

exceptionPhoneSet

Array of String
 
List of prefixes that are PROHIBITED to give when requesting a phone number
Answer fields
Field Type Required Description
status String
 
(see Status Table)
number Ulong
 
Phone number with country code
activationId Ulong
 
Activation ID in the partner's system
flashcall Boolean   TRUE if support PUSH_CALL
voice Boolean   TRUE if support PUSH_CALL_RECORD
 
Example of a request:
{
  "action": "GET_NUMBER",
  "key": "qwerty123",
  "country": "russia",
  "operator": "any",
  "service": "tg",
  "sum": 20.00,
}
Example of a request with exceptionPhoneSet
{
  "action": "GET_NUMBER",
  "key": "qwerty123",
  "country": "russia",
  "operator": "any",
  "service": "vk",
  "sum": 10,
  "exceptionPhoneSet": [
    "7918",
    "79281"
  ]
}
Example of an answer:
{
  "status": "SUCCESS",
  "number": 79157891133,
  "activationId": 571346,
  "flashcall": true,
  "voice": false
}
Example of an answer in case of no numbers:
{
  "status": "NO_NUMBERS"
}
3. Delivery of SMS to the Grizzly SMS server using the PUSH_SMS method

This POST request is sent from the partner's server to the Grizzly SMS server at the address:  https://api.grizzlysms.com/agent/api/sms

If you receive a response with the status "SUCCESS," mark the SMS as successfully delivered in your database and do not send it again. If a status other than "SUCCESS" is returned, repeat the request with a 10-second delay until you receive a "SUCCESS" status.

Requests fields
Field Type Required Description
action String
 
PUSH_SMS
key String
 
Protocol key
smsId Ulong
 
ID of the SMS in the partner's system
phone Ulong
 
Phone number (including the county code) to which the SMS was sent
phoneFrom String
 
The sender's name (may be either alphanumeric or numeric) which sent the SMS
Text String
 
SMS text
Состав полей ОТВЕТА
Field Type Required Description

status

String
 
(see Status Table)
Example of a request:
{
  "action": "PUSH_SMS",
  "key": "qwerty123",
  "smsID": 1
  "phone": 447472190082
  "phoneFrom": "Microsoft",
  "text": "Microsoft access code: 5015"
}
Example of an answer:
{
  "status": "SUCCESS"
}
4. Activation completion request method FINISH_ACTIVATION

This request is transmitted from the Grizzly SMS server to the partner's server to complete activation.

POST request initiated from the Grizzly SMS server to the partner's server.

Activation management is fully controlled by Grizzly SMS. Due to factors beyond our control, we may not receive a response from you regarding a successful status change. Therefore, if Grizzly SMS sends a repeat activation completion request, you should check for the existence of the activation ID on your end. If the activation exists, send a status of SUCCESS in response.

Request fields
Field Type Required Desciption
action String
 
FINISH_ACTIVATION
key String
 
Protocol key
activationId Ulong
 
Activation ID obtained in the second request
status Ulong
 
See Status Table
Answer fields
Field Type Required Desctiption

status

String
 
See Status Table
Example of a request:
{
  "action": "FINISH_ACTIVATION",
  "key": "qwerty123",
  "smsId": 100,
  "status": 3
}
Example of an answer:
{
  "status": "SUCCESS"
}
🆕 5. Request method PUSH_CALL_RECORD

This POST request is sent from the partner's server to the Grizzly SMS server at the address:  https://api.grizzlysms.com/agent/api/sms

If you receive a response with the status "SUCCESS," mark the SMS as successfully delivered in your database and do not send it again. If a status other than "SUCCESS" is returned, repeat the request with a 10-second delay until you receive a "SUCCESS" status.

Content-Type: multipart/form-data
Requests fields
Field Type Required Description
action String
 
PUSH_CALL_RECORD
key String
 
Protocol key
callId Ulong
 
ID of the call in the partner's system
phone Ulong
 
Phone number (including the county code) 
phoneFrom String
 
The caller's phone
text String required if 'file' is empty text of record
file Binary reuired if 'text' is empty file wav, amr, mp3, ogg
Response
Field Type Required Description

status

String
 
(see Status Table)
Example of a request
{
  "action": "PUSH_CALL_RECORD",
  "key": "qwerty123",
  "recordID": 1
  "phone": 447472190082
  "phoneFrom": "443355667788",
  "text": "Microsoft access code: 5015"
}
Example of an answer:
{
  "status": "SUCCESS"
}
🆕 6. Request method PUSH_CALL

This POST request is sent from the partner's server to the Grizzly SMS server at the address:  https://api.grizzlysms.com/agent/api/sms

If you receive a response with the status "SUCCESS," mark the SMS as successfully delivered in your database and do not send it again. If a status other than "SUCCESS" is returned, repeat the request with a 10-second delay until you receive a "SUCCESS" status.

Requests fields
Field Type Required Description
action String
 
PUSH_CALL
key String
 
Protocol key
callId Ulong
 
ID of the call in the partner's system
phone Ulong
 
Phone number (including the county code)
phoneFrom String
 
The caller's phone
Response
Field Type Required Description

status

String
 
(see Status Table)
Example of a request
{
  "action": "PUSH_CALL",
  "key": "qwerty123",
  "callID": 1
  "phone": 447472190082,
  "phoneFrom": "447472190099"
}
Example of an answer:
{
  "status": "SUCCESS"
}
Status Table
Состав полей ЗАПРОСА
Status Description
SUCCESS The request was finished successfully
ERROR Error during request execution. The ERROR field should be filled with a description
NO_NUMBERS No numbers are available. This response is only returned for a number request
Activation Status
Status Desctiption

1

Issuing a number for this service is prohibited
3 Activation was successfully sold. You have received a reward
4 Activation was canceled*
5 Activation has been returned. The customer has been refunded for the activation. It's possible that this number was previously registered, and two-factor authentication may be enabled on the number

**The mechanism for cancellation works as follows: If a phone number has been canceled 5 times,  you should not issue the same number again. It's possible that the number was not suitable for the client or was already registered for the  specific service.

Successful answer to the request:
{
  "status": "SUCCESS",
  //information
}
Answer in case of an error:
{
  "status": "ERROR",
 "error": "Description of the error"
}
Testing the protocol

Simultaneous Number Issuance. You should handle simultaneous requests properly and not issue numbers repeatedly. For example, if you have 100 numbers for Telegram Indonesia, and Grizzly SMS simultaneously makes 100 requests for Telegram United Kingdom, the partner server should provide 100 unique numbers. If a number is issued multiple times, the test fails.

Crrect Activation Completion. The change in activation status is fully controlled by Grizzly SMS. The partner server should not autonomously complete activations.

SMS Delivery Verification. Once you receive an SMS, you must immediately forward it to the Grizzly SMS server. If you receive a status of SUCCESS, you should not forward the SMS again. However, if you receive a different status, you should retry the request every 10-20 seconds. If an SMS is issued again after receiving a SUCCESS status, the test fails.

Field Type Verification. Thoroughly check the field types specified in this documentation. If this condition is violated, the testing fails.

 

Country Code in Phone Number. Phone number issuance should be in digital format and include the country code.

Number Issuance Time Verification. You must issue numbers with a delay of less than 3 seconds. If it takes more than 3 seconds, the testing fails.

Number Quantity Verification. If you issue 1000 numbers in a request for quantity of numbers, but only 100 are issued at the same time, then testing has failed.

Exception Handling Verification. If you incorrectly handle exceptions for issuing a number, then testing has failed.

Data Table
Data Table:
Lists Links
List of countries The full list of countries with names and IDs can be found at the link https://grizzlysms.com/docs
List of operators At the moment, the breakdown by operators is under development, so you should pass the value 'any'. Once this functionality is implemented, we will notify you through the technical support chat.
List of services The full list of services with names and IDs can be found at the link https://grizzlysms.com/docs
API for price change

This API is aimed at automatization of work with the sliders on your side (services’ prices).

API can be found by this address https://apiagent.7grizzlysms.com.
For authentication in requests you need to send your API-key in the HTTP-header apikey.

All data is transmitted in the JSON format.
As for GET requests, it is necessary to send HTTP-header Accept: application/json, as for POST request - Accept: application/json and Content-Type: application/json.

Available values of the country parameter are located in Country list in the columns ID and Countries, so, you can use both 0, and russia.
Available values of the service parameter are located in List of services in the column ID.

Terms and fines

Withdrawal founds. Withdrawal of earned funds is carried out by requests. A partner can create a request in the Withdrawal section. Withdrawal of earnings from 100 USDT is available for one transaction. Requests are processed daily from 8:00 to 20:00 (UTC) within 20 to 180 minutes. If you are promised any bonus (according to the terms and conditions published on the website), please be sure to indicate it in the comments to the request.

Compensations for 2FA and Wrong code. Grizzly SMS platform, as an intermediary, compensates customers for Telegram numbers with 2FA and wrong codes in full. Grizzly SMS receives information on 2FA automatically from Telegram Expert and TG-GIANT software. Important: Funds for numbers with 2FA and wrong code (answer 'wrong code') and on Telegram accounts are not charged. You can see the information about 2FA or wronge_code in the Activation History.