Skip to main content

Python library for Termii API

Project description

Termii Python Library.

Introduction

The python library provides easy access to Termii API for Python users. Accelerate development with our Python library by abstracting Termii API complexities and providing easy-to-use functions.

Please see the docs for the most up-to-date documentation of Termii API.

Available features include:

  • Campaigns: send, list and history
  • Contacts: list, create(single/bulk) and delete
  • Insights: balance, history, search and status
  • Messaging: sms(single/bulk), template api, number api
  • Phonebooks: list, create, update and delete
  • SenderID: list, request
  • Token: voice_call, voice_token, email_token, send, in_app, verify

Table of Contents

  1. Requirements
  2. Installation
  3. Initialization
  4. Usage
  5. Debugging
  6. Support
  7. Contribution Guidelines
  8. License

Requirements

  1. Termii API Keys
  2. Supported Python versions: >3.8

Installation

To install this library (preferably in an active virtual environment) simply run

pip3 install termii_client

Initialization

Import entry class for this package from termii_client.

from termii_client import Termii

With this you have access to all the features this library has to offer. To initialize the library simply create a Termii object, while supplying the api key, you can find one in your Termii dashboard.

termii = Termii("Your API Key")

Usage

This is a documentation for all components on termii_client

Note: For convenience, this library will automatically populate the field api_key using the value specified during initialization. for every payload where it is required, but not provided.

termii.campaigns

This is used for handling all campaign related resources on termii.

Functions included are:

  • .send
  • .list
  • .history

.send(payload):

Send a campaign. The payload is a dictionary containing campaign information, optionally excluding api_key.

  • payload
    • api_key (optional)
    • country_code
    • sender_id
    • message
    • channel
    • message_type
    • phonebook_id
    • campaign_type
    • schedule_sms_status
    • schedule_time

.list(pagination_url)

Retrieve list of all campaigns.

  • pagination_url (optional): In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

.history(campaign_id, pagination_url)

Retrieve history for specified campaign.

  • campaign_id: campaign id to retrieve it's history
  • pagination_url (optional): In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

termii.contacts

This is used for handling contacts in termii phonebooks.

Functions included are:

  • .list
  • .create
  • .create_bulk
  • .delete

.list(phonebook_id, pagination_url):

Retrieve list of all contacts in the specified phonebook.

  • phonebook_id: phone book id to retrieve it's contacts
  • pagination_url (optional): In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

.create(phonebook_id, payload):

Create new contact in the specified phonebook

  • phonebook_id: phone book id to create contact on.
  • payload
    • api_key (optional)
    • phone_number
    • country_code
    • email_address
    • first_name
    • last_name
    • company

.create_bulk(phonebook_id, payload):

Create bulk of new contacts in the specified phonebook

  • phonebook_id: phone book id to create contact on.
  • payload
    • api_key (optional)
    • contact_file
    • country_code

.delete(contact_id):

Delete a specified contact

  • contact_id: id of contact to delete

termii.insights

This is used for handling resources related to insights

Functions included are:

  • .balance
  • .history
  • .search
  • .status

.balance():

Retrieve termii account balance

.history(pagination_url):

Retrieve reports for messages sent across the sms, voice & whatsapp channels.

  • pagination_url (optional): In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

.search(phone_number):

Verify phone numbers and automatically detect their status as well as current network.

  • phone_number: phone number to detect status and current network

.status(phone_number, country_code):

Verify if a number is fake or has ported to a new network.

  • phone_number: phone number to fake and ported status
  • country_code: phone number country code

termii.messaging

This is used for handling resources related to Messaging/SMS

Functions included are:

  • .send
  • .send_bulk
  • .send_auto_message
  • .send_template_message

.send_single(payload):

Send single sms on termii api

  • payload
    • api_key (0ptional)
    • to
    • from
    • sms
    • type
    • channel
    • media (Optional Dict)
      • url
      • caption

.send_bulk(payload):

Send bulk sms on termii api

  • payload
    • api_key (0ptional)
    • to
    • from
    • sms
    • type
    • channel

.send_auto_message(payload):

Send single sms on termii api with auto generated numbers

  • payload
    • api_key (0ptional)
    • to
    • from

.send_template_message(payload):

Set a template for the one-time-passwords (pins) sent to their customers via whatsapp or sms.

  • payload
    • api_key (0ptional)
    • phone_number
    • device_id
    • template_id
    • data

termii.phonebooks

This is used for handling all phonebook related resources on termii.

Functions included are:

  • .list
  • .create
  • .update
  • .delete

.list(pagination_url)

Retrieve list of all phonebooks

  • pagination_url (optional): In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

.create(phonebook_name, description)

Retrieve list of all phonebooks

  • phonebook_name
  • description (optional)

.update(phonebook_id, phonebook_name)

Update existing phonebook

  • phonebook_id: Phonebook ID to update
  • phonebook_name: New phonebook name

.delete(phonebook_id)

Delete existing phonebook

  • phonebook_id: Phonebook ID to delete

termii.sender_id

This is used for handling all phonebook related resources on termii.

Functions included are:

  • .list
  • .request

.list(pagination_url)

Retrieve list of all sender ID's

  • pagination_url (optional): In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

.request(sender_id, usecase, company)

Request for a sender id

  • sender_id: sender id being requested eg: CompanyName
  • usecase: a sample of the type of message to be sent.
  • company: name of the company with the sender ID

termii.token

This is used for handling all phonebook related resources on termii.

Functions included are:

  • .voice_call
  • .email_token
  • .in_app
  • .send
  • .verify
  • .voice_token

.voice_call(payload)

Send messages from your application through our voice channel to a phone number.

  • payload
    • api_key (Optional)
    • phone_number
    • code

.email_token(payload)

Send one-time-passwords from your application through our email channel to an email address.

  • payload
    • api_key (Optional)
    • email_address
    • code
    • email_configuration_id

.in_app(payload)

Returns OTP codes in JSON format which can be used within any web or mobile app.

  • payload
    • api_key (Optional)
    • phone_number
    • pin_attempts
    • pin_time_to_live
    • pin_length

.send(payload)

Send one-time-passwords (OTP) across any available messaging channel on Termii

  • payload
    • api_key (Optional)
    • message_type
    • to
    • from
    • channel
    • pin_attempts
    • pin_time_to_live
    • pin_length
    • pin_placeholder
    • message_text

.verify(payload)

Check status of tokens sent to customers.

  • payload
    • api_key (Optional)
    • pin_id
    • pin

.voice_token(payload)

Generate and trigger one-time passwords (OTP) through the voice channel to a phone number.

  • payload
    • api_key (Optional)
    • phone_number
    • pin_attempts
    • pin_time_to_live
    • pin_length

Debugging Errors

I understand that you may run into some errors while integrating this library. Please open discussion on any problems you may have about this library

For authorization and validation error responses, double-check your API keys and request. If you get a server error, kindly engage the Termii for support @+234-8137751523.

Support

For additional assistance using this library, feel free to reach out, i'll be looking forward to it.

You can also follow me on twitter and github and linkedin. 😊.

License

By contributing to this library, you agree that your contributions will be licensed under its MIT license.

Contribution guidelines

Read more about our community contribution guidelines here

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

termii_client-1.0.0.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

termii_client-1.0.0-py3-none-any.whl (12.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page