/python-redpocket

A Python API Interface for RedPocket Mobile

Primary LanguagePythonMIT LicenseMIT

python-redpocket

python38|39 Code style: black codecov pypi downloads

A simple, fully tested, Pythonic wrapper around RedPocket Mobile's API.

Example Usage

from getpass import getpass
from redpocket import RedPocket

username = input("RedPocket Username: ")
password = getpass("Password:")

rp = RedPocket(username=username, password=password)

lines = rp.get_lines()
print(lines)
# [
#     RedPocketLine(
#         account_id='12345',
#         number=1234567890,
#         plan='Annual- Unlimited Everything + 8GB high speeds',
#         expiration=datetime.date(2022, 1, 2),
#         family=False
#     )
# ]

line_details = lines[0].get_details()
print(line_details)
# RedPocketLineDetails(
#     number=1234567890, 
#     product_code='GSMA', 
#     status='Active', 
#     plan_id='355', 
#     plan_code='E240GSMA', 
#     expiration=datetime.date(2021, 5, 12), 
#     last_autorenew=datetime.date(2021, 12, 3), 
#     last_expiration=datetime.date(2022, 1, 2), 
#     main_balance=-1, 
#     voice_balance=-1, 
#     messaging_balance=-1, 
#     data_balance=7657, 
#     phone=RedPocketPhone(model='Apple iPhone 12 A2172', imei='', sim='', esn='')

print(line_details.remaining_days_in_cycle)
# 11

print(line_details.remaining_months_purchased)
# 8

There is also a helper function to get all the lines and line details in one call:

from redpocket import RedPocket

rp = RedPocket(username="", password="")
lines = rp.get_all_line_details()

print(lines)
# [
#     (
#         RedPocketLine(
#             account_id='12345', 
#             number=1234567890, 
#             plan='Annual- Unlimited Everything + 8GB high speeds', 
#             expiration=datetime.date(2022, 1, 2), 
#             family=False), 
#         RedPocketLineDetails(
#             number=1234567890, 
#             product_code='GSMA', 
#             status='Active', 
#             plan_id='355', 
#             plan_code='E240GSMA', 
#             expiration=datetime.date(2021, 5, 12), 
#             last_autorenew=datetime.date(2021, 12, 3), 
#             last_expiration=datetime.date(2022, 1, 2), 
#             main_balance=-1, 
#             voice_balance=-1, 
#             messaging_balance=-1, 
#             data_balance=7657, 
#             phone=RedPocketPhone(model='Apple iPhone 12 A2172', imei='', sim='', esn='')
#         )
#     )
# ]

If you know the hash or account number of the specific account you want to retrieve, you can do that as well:

from redpocket import RedPocket

rp = RedPocket(username="", password="")

my_line_hash = rp.get_lines()[0].account_hash
print(my_line_hash)
# 'MTIzNDU2'

details = rp.get_line_details(account_hash=my_line_hash)
print(details)
# RedPocketLineDetails(
#     ...
# )