Разработчик: @litemat
Библиотека предоставляет удобный интерфейс для взаимодействия с Altel B2B API — системой управления абонентами и услугами сотового оператора Altel (Казахстан). Основной акцент сделан на простоту авторизации, отправку POST/GET-запросов и работу с абонентскими данными.
- 🔐 Авторизация через API (автоматическое получение токена)
- 🔍 Поиск абонентов по номеру телефона
- 📄 Получение детальной информации об абоненте (ID, тариф, статус, баланс, квота и т.д.)
- 🔒 Блокировка и разблокировка абонентов
⚠️ Функционал библиотеки будет активно расширяться: добавление статистики трафика, массовых операций и прочего.
pip install altel_b2b_apifrom altel_b2b_api import AltelB2B
client = AltelB2B(username="747XXXXXXX", password="ваш_пароль")
if client.login():
sub = client.search_subscriber(number="7001234567")
if sub:
print(sub)client.login() -> strАвторизуется через https://altel.kz/b2b/main/api/auth/login и сохраняет access_token для дальнейших запросов.
client.search_subscriber(number: str) -> strИщет абонента по номеру телефона. Возвращает список словарей с полями:
subscriberIdemployeeiccmsisdnfeeactivationDatestatustariffIdtariffNamebalancenextWriteOffclientTypeIdaccountbalanceLevelcontractNumberquotaquotaUnusedresources
client.block(number: str) -> str
client.unblock(number: str) -> strИзменяет статус абонента через соответствующие API-эндпоинты.
- Используется
cloudscraperдля обхода защиты Cloudflare - Все сессии повторно используют полученные cookie и токен
- Конфигурация разделена по URL API-эндпоинтов (логин, блокировка, поиск и т.д.)
- Работа с детализацией по услугам
- История операций
- Массовая обработка абонентов (batch requests)
- Мониторинг и отчёты
- Telegram / Webhook интеграции
client = AltelB2B(username="747XXXXXXX", password="ваш_пароль")Авторизация через Cloudflare и API. Сохраняет токены, если успешно.
Получает всех абонентов.
limit=0— получить всех (не рекомендуется, может вызвать зависания)limit=N— получить N первых
Поиск абонента по номеру.
number: формат 700XXXXXXX
Изменяет статус абонента (Не рекомендован к использованию напрямую):
status_code=2— блокировкаstatus_code=1— разблокировка
Возвращает:
{
"success": true,
"subscriberId": 12345678,
"msisdn": "7001234567",
"response": []
}Блокирует абонента. Аналогично change_status(number, 2).
Разблокирует абонента. Аналогично change_status(number, 1).
Возвращает подробную информацию об абоненте (IMEI, UIN, статус и т.д.)
Привязка IMEI к абоненту по ИИН/БИН (Успешно активировано):
{
"success": true,
"subscriberId": 12345678,
"msisdn": "7001234567",
"response": true
}
ИЛИ (IMEI - связка уже существует):
{
"success": false,
"subscriberId": 12345678,
"msisdn": "7001234567",
"response": "IMEI - Bundle already exists"
}
Информация о компании (название, BIN и т.д.)
Список администраторов и пользователей компании.
Список лицевых счетов компании.
| Код | Статус |
|---|---|
| 1 | Активен |
| 2 | Заблокирован |
| n > 2 | Неизвестно |
[
{
"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."
}