Skip to main content

HTTP client for Rafiki SMS vendor API (X-API-Key)

Project description

Rafikisms Python SDK

HTTP client for the Rafiki SMS vendor API (X-API-Key), aligned with sdk/js and sdk/php.

Developer docs: https://developers.rafikisms.com/

OpenAPI JSON: https://developers.rafikisms.com/v1/docs/openapi.json

Requirements

Install (local path)

From another project:

pip install -e ../path/to/rafikisms/sdk/python

Or add to pyproject.toml:

dependencies = [
  "rafikisms-sdk @ file:///${PROJECT_ROOT}/sdk/python",
]

Usage

import os
from rafikisms import Client

with Client("https://api.rafikisms.com", os.environ["RAFIKISMS_API_KEY"]) as c:
    r = c.get_balance()
    if r.success:
        print(r.data["credit_balance"])

OTP

otp = c.generate_otp({"phone_number": "255712345678", "sender_id": "MYBRAND"})
verified = c.verify_otp({
    "phone_number": "255712345678",
    "otp_code": "482916",
    "reference_id": otp.data["reference_id"],
})

Strict errors

from rafikisms import ApiError, Client

c = Client(base_url, api_key, throw_on_error=True)
try:
    c.send_sms({"phone": "255712345678", "message": "Hi"})
except ApiError as e:
    print(e.result.error_code, e.result.errors)

API

Method HTTP
send_sms POST /v1/vendor/send-sms
send_bulk_sms POST /v1/vendor/send-bulk-sms
generate_otp POST /v1/otp/generate
verify_otp POST /v1/otp/verify
get_balance GET /v1/vendor/balance
get_sms_logs GET /v1/vendor/sms-logs
get_delivery_report GET /v1/vendor/delivery-reports
get_sender_names GET /v1/vendor/sender-names
request_sender_name POST /v1/sender-names/request
update_delivery_webhook PUT /v1/vendors/delivery-webhook

Tests

cd sdk/python && pip install -e ".[dev]" && pytest -q

License

MIT.

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

rafikisms_sdk-1.0.0.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rafikisms_sdk-1.0.0-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file rafikisms_sdk-1.0.0.tar.gz.

File metadata

  • Download URL: rafikisms_sdk-1.0.0.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for rafikisms_sdk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d2b787e21123789cba4bb2ffd7dc897e38ac2580a072e18a636347f5a5dcd1a3
MD5 28e230767ca1c4e3a1acf448a0bef978
BLAKE2b-256 2e6a365dcb6538c0ce66d7be007b22af0f118d36f3250f253acae9e79afb0f28

See more details on using hashes here.

File details

Details for the file rafikisms_sdk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: rafikisms_sdk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for rafikisms_sdk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 91da83af7dd3beabd5dff079652227a04d1af3bd78f78cdaccd23bdfde4bc0cd
MD5 6de85ff224c43d70a8d013e78bea0567
BLAKE2b-256 c678ccf259b96cc6bf8cd2a9ba5c82372472257398a54614470d36139a8495da

See more details on using hashes here.

Supported by

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