Библиотека предоставляет удобный интерфейс для взаимодействия с Altel B2B API
Project description
Altel B2B API Client (Python)
Разработчик: @litemat
Версия: 0.1
IMPORTANT DISCLAIMER! (ENGLISH):
⚠️ This project is an unofficial tool for educational or internal use.
⚠️ Use at your own risk. The author is not affiliated with Altel.kz or its partners.
⚠️ This code interacts with web services that may be protected by terms of service.
ВАЖНЫЙ ДИСКЛЕЙМЕР! (РУССКИЙ):
⚠️ Этот проект является неофициальным инструментом, предназначенным для образовательных или внутренних целей.
⚠️ Используйте на свой страх и риск. Автор не имеет отношения к Altel.kz или его партнёрам.
⚠️ Этот код взаимодействует с веб-сервисами, которые могут быть защищены условиями использования.
МАҢЫЗДЫ ЕСКЕРТУ! (ҚАЗАҚША):
⚠️ Бұл жоба — оқу немесе ішкі мақсаттарға арналған ресми емес құрал.
⚠️ Пайдалану — сіздің тәуекеліңізде. Автор Altel.kz немесе оның серіктестерімен байланысы жоқ.
⚠️ Бұл код пайдалану шарттарымен қорғалған веб-сервистермен әрекеттесуі мүмкін.
Возможности (v0.1)
Библиотека предоставляет удобный интерфейс для взаимодействия с Altel B2B API — системой управления абонентами и услугами сотового оператора Altel (Казахстан). Основной акцент сделан на простоту авторизации, отправку POST/GET-запросов и работу с абонентскими данными.
- 🔐 Авторизация через API (автоматическое получение токена)
- 🔍 Поиск абонентов по номеру телефона
- 📄 Получение детальной информации об абоненте (ID, тариф, статус, баланс, квота и т.д.)
- 🔒 Блокировка и разблокировка абонентов
⚠️ Функционал библиотеки будет активно расширяться: добавление статистики трафика, массовых операций и прочего.
Установка
pip install altel_b2b_api
Пример использования
from altel_b2b_api import AltelB2B
client = AltelB2B(username="747XXXXXXX", password="ваш_пароль")
if client.login():
subs = client.search_subscriber(number="7001234567")
if subs:
print(subs)
Интерфейс API
Авторизация
client.login() -> str
Авторизуется через https://altel.kz/b2b/main/api/auth/login и сохраняет access_token для дальнейших запросов.
Поиск абонентов
client.search_subscriber(number: str) -> str
Ищет абонента по номеру телефона. Возвращает список словарей с полями:
subscriberIdemployeeiccmsisdnfeeactivationDatestatustariffIdtariffNamebalancenextWriteOffclientTypeIdaccountbalanceLevelcontractNumberquotaquotaUnusedresources
Блокировка / Разблокировка
client.block(msisdn: str) -> str
client.unblock(msisdn: str) -> str
Изменяет статус абонента через соответствующие API-эндпоинты.
Архитектура
- Используется
cloudscraperдля обхода защиты Cloudflare - Все сессии повторно используют полученные cookie и токен
- Конфигурация разделена по URL API-эндпоинтов (логин, блокировка, поиск и т.д.)
Планы на развитие
- Работа с детализацией по услугам
- История операций
- Массовая обработка абонентов (batch requests)
- Мониторинг и отчёты
- Telegram / Webhook интеграции
Полная документация
Класс: AltelB2B
client = AltelB2B(username="700XXXXXXX", password="ваш_пароль")
login() -> str
Авторизация через Cloudflare и API. Сохраняет токены, если успешно.
all_subscribers(limit: int = 0) -> str
Получает всех абонентов.
limit=0— получить всехlimit=N— получить N первых
search_subscriber(number: str) -> str
Поиск абонента по номеру.
number: формат 700XXXXXXX
change_status(number: str, status_code: int) -> str
Изменяет статус абонента (Не рекомендован к использованию напрямую):
status_code=2— блокировкаstatus_code=1— разблокировка
Возвращает:
{
"success": true,
"subscriberId": 12345678,
"msisdn": "7001234567",
"response": []
}
block(number: str) -> str
Блокирует абонента. Аналогично change_status(number, 2).
unblock(number: str) -> str
Разблокирует абонента. Аналогично change_status(number, 1).
get_details(msisdn: str) -> str
Возвращает подробную информацию об абоненте (IMEI, UIN, статус и т.д.)
register_imei(number: str, uin: str) -> str
Привязка IMEI к абоненту по ИИН/БИН (Успешно активировано):
{
"success": true,
"subscriberId": 12345678,
"msisdn": "7001234567",
"response": true
}
ИЛИ (IMEI - связка уже существует):
{
"success": false,
"subscriberId": 12345678,
"msisdn": "7001234567",
"response": "IMEI - Bundle already exists"
}
company_info() -> dict
Информация о компании (название, BIN и т.д.)
admins() -> dict
Список администраторов и пользователей компании.
profiles() -> dict
Список лицевых счетов компании.
Статусы абонентов
| Код | Статус |
|---|---|
| 1 | Активен |
| 2 | Заблокирован |
| n > 2 | Неизвестно |
Примеры ответов API
Поиск абонента
[
{
"subscriberId": 12345678,
"employee": null,
"icc": "89990000000000000000",
"msisdn": "7001234567",
"fee": 0,
"activationDate": "2020-01-01T10:10:20",
"status": 1,
"tariffId": 123,
"tariffName": "Tariff Name",
"balance": 0,
"nextWriteOff": null,
"clientTypeId": 12,
"account": "123456789",
"balanceLevel": 0,
"contractNumber": "01234567890 ",
"quota": 123,
"quotaUnused": 0,
"resources": []
}
]
Ошибка авторизации
ERROR:altel_api.api: Login failed: 401
{
"error": "bad_credentials",
"error_description": "Invalid phone number or password. Try again.",
"message": "Invalid phone number or password. Try again."
}
Лицензия
IMPORTANT DISCLAIMER! (ENGLISH):
⚠️ This project is an unofficial tool for educational or internal use.
⚠️ Use at your own risk. The author is not affiliated with Altel.kz or its partners.
⚠️ This code interacts with web services that may be protected by terms of service.
ВАЖНЫЙ ДИСКЛЕЙМЕР! (РУССКИЙ):
⚠️ Этот проект является неофициальным инструментом, предназначенным для образовательных или внутренних целей.
⚠️ Используйте на свой страх и риск. Автор не имеет отношения к Altel.kz или его партнёрам.
⚠️ Этот код взаимодействует с веб-сервисами, которые могут быть защищены условиями использования.
МАҢЫЗДЫ ЕСКЕРТУ! (ҚАЗАҚША):
⚠️ Бұл жоба — оқу немесе ішкі мақсаттарға арналған ресми емес құрал.
⚠️ Пайдалану — сіздің тәуекеліңізде. Автор Altel.kz немесе оның серіктестерімен байланысы жоқ.
⚠️ Бұл код пайдалану шарттарымен қорғалған веб-сервистермен әрекеттесуі мүмкін.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file altel_b2b_api-0.2.tar.gz.
File metadata
- Download URL: altel_b2b_api-0.2.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fca3c7958f6ee8cb7506dbcf4b9ffdb6e4c2a4507439762b425e04a4dd93c759
|
|
| MD5 |
079035858af7588bb3796a5dca56464f
|
|
| BLAKE2b-256 |
ec9330c57330ea4798cef01d4bfb1262199efbcd55dacf215933fa1cdf7e97d8
|
File details
Details for the file altel_b2b_api-0.2-py3-none-any.whl.
File metadata
- Download URL: altel_b2b_api-0.2-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dae15d0d71fc465e18568ad716bbe1963274dcdad3a3eac1ad45d03224bbd43
|
|
| MD5 |
ca9db41aba73ad1c1b5bbfb8d673a0f1
|
|
| BLAKE2b-256 |
04e63e43fbb28eb21b0864c52b793a34a7bd5db1eaf4a264c500c081f279f39c
|