Skip to main content

ippanel sdk

Project description

IPPanel SMS api SDK

Build Status


you can install this package with either pip:

python -m pip install ippanel

or running bellow command after downloading source:

python install


For using sdk, you have to create a client instance that gives you available methods on API

from ippanel import Client

# you api key that generated from panel
api_key = "api-key"

# create client instance
sms = Client(api_key)


Credit check

# return float64 type credit amount
credit = sms.get_credit()

Send one to many

For sending sms, obviously you need originator number, recipients and message.

message_id = sms.send(
    "+9810001",          # originator
    ["98912xxxxxxx"],    # recipients
    "ippanel is awesome" # message
    "description"        # is logged

If send is successful, a unique tracking code returned and you can track your message status with that.

Get message summery

message_id = "message-tracking-code"

message = sms.get_message(message_id)

print(message.state)       # get message status
print(message.cost)        # get message cost
print(message.return_cost) # get message payback

Get message delivery statuses

message_id = "message-tracking-code"

statuses, pagination_info = sms.fetch_statuses(message_id, 0, 10)

# you can loop in messages statuses list
for status in statuses {
    print("Recipient: %s, Status: %s" % (status.recipient, status.status))

print("Total: ",

Inbox fetch

fetch inbox messages

messages, pagination_info = sms.fetch_inbox(0, 10)

for message in messages {
    print("Received message %s from number %s in line %s" % (message.message, message.sender,

Pattern create

For sending messages with predefined pattern(e.g. verification codes, ...), you hav to create a pattern. a pattern at least have a parameter.

pattern_variables = {
    "name": "string",
    "code": "integer",
code = sms.create_pattern(r"%name% is awesome, your code is %code%", "description", pattern_variables, "%", False)


Send with pattern

pattern_values = {
    "name": "IPPANEL",

message_id = sms.send_pattern(
    "t2cfmnyo0c",    # pattern code
    "+9810001",      # originator
    "98912xxxxxxx",  # recipient
    pattern_values,  # pattern values

Error checking

from ippanel import HTTPError, Error, ResponseCode

    message_id = sms.send("9810001", ["98912xxxxx"], "ippanel is awesome")
except Error as e: # ippanel sms error
    print(f"Error handled => code: {e.code}, message: {e.message}")
    if e.code == ResponseCode.ErrUnprocessableEntity.value:
        for field in e.message:
            print(f"Field: {field} , Errors: {e.message[field]}")
except HTTPError as e: # http error like network error, not found, ...
    print(f"Error handled => code: {e}")

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ippanel-2.0.7.tar.gz (7.8 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page