smsru-api


Namesmsru-api JSON
Version 1.2 PyPI version JSON
download
home_pagehttps://github.com/XpycTee/smsru_api
Summary[A]sync Python API для сервиса отправки сообщений sms.ru
upload_time2025-08-07 12:26:07
maintainerNone
docs_urlNone
authorXpycTee
requires_python>=3.8
licenseApache License 2.0
keywords async sync aio sms.ru sms ru smsru sms-verification verification sms-messages messages api api-client http
VCS
bugtrack_url
requirements httpx
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <h3 align="center">SMS.RU API</h3>
  <p align="center">
    [A]sync Python API для сервиса отправки сообщений sms.ru
  </p>
</p>

![PyPI - Downloads](https://img.shields.io/pypi/dm/smsru-api?label=PyPI%20Downloads) ![pypi](https://img.shields.io/pypi/v/smsru-api?label=PyPI%20Release)

Python Versions\
![pyversions](https://img.shields.io/pypi/pyversions/smsru-api?label=Python) 

License\
![License](https://img.shields.io/github/license/XpycTee/smsru_api?label=License) 



## Начало работы

### Установка

Для установки библиотеки используйте pip:

```sh
pip install smsru-api
```

### Использование

> Подробную документацию по пакету ищите на [GitHub Wiki](https://github.com/XpycTee/smsru_api/wiki)

Чтобы начать использовать библиотеку, импортируйте класс `Client`:

```python
from smsru_api import Client
```

Создайте экземпляр класса, передав ваш API ключ:

```python
smsru = Client('Your API KEY')
```

Теперь вы можете использовать методы класса для отправки сообщений и выполнения других операций с API `sms.ru`.

```python
from smsru_api import Client
```
Для асинхронной работы используйте класс `AsyncClient()`:
```python
from smsru_api import AsyncClient
```
> Все методы асинхронного класса являются корутинами и идентичны синхронным.

Классам `Client()` или `AsyncClient()` в параметры нужно передать ваш API ключ из личного кабинета:
```python
from smsru_api import Client
from smsru_api import AsyncClient

smsru = Client('Your API KEY')
async_smsru = AsyncClient('Your API KEY')
```

**Старая реализация так же работает:**
```python 
from smsru_api import SmsRu, AsyncSmsRu

smsru = SmsRu('api_key')
async_smsru = AsyncSmsRu('api_key')
```

## Отправка сообщений
Метод `send()` отправляет ваше сообщение на номер(а) через `sms.ru`

Отправить один текст на один или несколько номеров, указанных через запятую:
```python
from smsru_api import Client

smsru = Client('Your API KEY')

response = smsru.send('9XXXXXXXX0', '9XXXXXXXX1', message='Message to sms')
```
Отправить разный текст на разные номера:
```python
from smsru_api import Client

smsru = Client('Your API KEY')

multi_dict = {
    '9XXXXXXXX0': 'Message to sms', 
    '9XXXXXXXX1': 'Another message to sms'
}

response = smsru.send(multi=multi_dict)
```
**Ответ от сервера:**
```json
{
    "status": "OK",
    "status_code": 100,
    "sms": {
        "79XXXXXXXX0": {
            "status": "OK",
            "status_code": 100,
            "sms_id": "000000-10000000"
        },
        "79XXXXXXXX1": {
            "status": "ERROR",
            "status_code": 207,
            "status_text": "На этот номер (или один из номеров) нельзя отправлять сообщения, либо указано более 100 номеров в списке получателей"
        }
    } ,
    "balance": 0
}
```
Метод возвращает `JSON` ответ, полученный от `sms.ru`.
Также он имеет 10 параметров:

- `numbers`: Номер телефона получателя (либо несколько номеров до 100 штук за один запрос).
- `message`: Текст сообщения в кодировке UTF-8.
- `multi`: Отправка сообщения на несколько номеров с разными текстами. Если указан этот параметр, то параметры `numbers` и `message` игнорируются.
- `from_name`: Имя отправителя (должно быть согласовано с администрацией).
- `ip_address`: IP адрес вашего пользователя.
- `timestamp`: Время отложенной отправки.
- `ttl`: Срок жизни сообщения в минутах (от 1 до 1440).
- `day_time`: Учитывает часовой пояс получателя. Если указан этот параметр, то параметр `time` игнорируется.
- `test`: Имитирует отправку сообщения для тестирования. `True` или `False`.
- `translit`: Переводит все русские символы в латинские.
- `debug`: Включает режим отладки. Все сообщения отправляются с параметром `test: True`, если он не указан вручную.
- `partner_id`: ID партнера. По умолчанию указан код автора. Прошу, если вы будете использовать мой код, не меняйте его. Это то, что мотивирует меня поддерживать данное API, спасибо ツ.

## Лицензия

Распространяется по лицензии Apache-2.0. См. [LICENSE](https://github.com/XpycTee/smsru_api/blob/main/LICENSE.md) для получения дополнительной информации.

## Авторы

* **XpycTee** - *просто я* - [XpycTee](https://github.com/XpycTee) - *smsru_api*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/XpycTee/smsru_api",
    "name": "smsru-api",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "async, sync, aio, sms.ru, sms, ru, smsru, sms-verification, verification, sms-messages, messages, api, api-client, http",
    "author": "XpycTee",
    "author_email": "i@xpyctee.ru",
    "download_url": "https://files.pythonhosted.org/packages/03/2e/f0d3c46a39541f82f2a24bc6fc242df0a62123471cfee585b0f18a75c032/smsru_api-1.2.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <h3 align=\"center\">SMS.RU API</h3>\n  <p align=\"center\">\n    [A]sync Python API \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 sms.ru\n  </p>\n</p>\n\n![PyPI - Downloads](https://img.shields.io/pypi/dm/smsru-api?label=PyPI%20Downloads) ![pypi](https://img.shields.io/pypi/v/smsru-api?label=PyPI%20Release)\n\nPython Versions\\\n![pyversions](https://img.shields.io/pypi/pyversions/smsru-api?label=Python) \n\nLicense\\\n![License](https://img.shields.io/github/license/XpycTee/smsru_api?label=License) \n\n\n\n## \u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 pip:\n\n```sh\npip install smsru-api\n```\n\n### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n> \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0430\u043a\u0435\u0442\u0443 \u0438\u0449\u0438\u0442\u0435 \u043d\u0430 [GitHub Wiki](https://github.com/XpycTee/smsru_api/wiki)\n\n\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043a\u043b\u0430\u0441\u0441 `Client`:\n\n```python\nfrom smsru_api import Client\n```\n\n\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0432\u0430\u0448 API \u043a\u043b\u044e\u0447:\n\n```python\nsmsru = Client('Your API KEY')\n```\n\n\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 API `sms.ru`.\n\n```python\nfrom smsru_api import Client\n```\n\u0414\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043b\u0430\u0441\u0441 `AsyncClient()`:\n```python\nfrom smsru_api import AsyncClient\n```\n> \u0412\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u0440\u0443\u0442\u0438\u043d\u0430\u043c\u0438 \u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c.\n\n\u041a\u043b\u0430\u0441\u0441\u0430\u043c `Client()` \u0438\u043b\u0438 `AsyncClient()` \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u0430\u0448 API \u043a\u043b\u044e\u0447 \u0438\u0437 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0430:\n```python\nfrom smsru_api import Client\nfrom smsru_api import AsyncClient\n\nsmsru = Client('Your API KEY')\nasync_smsru = AsyncClient('Your API KEY')\n```\n\n**\u0421\u0442\u0430\u0440\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:**\n```python \nfrom smsru_api import SmsRu, AsyncSmsRu\n\nsmsru = SmsRu('api_key')\nasync_smsru = AsyncSmsRu('api_key')\n```\n\n## \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\n\u041c\u0435\u0442\u043e\u0434 `send()` \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440(\u0430) \u0447\u0435\u0440\u0435\u0437 `sms.ru`\n\n\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u043c\u0435\u0440\u043e\u0432, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e:\n```python\nfrom smsru_api import Client\n\nsmsru = Client('Your API KEY')\n\nresponse = smsru.send('9XXXXXXXX0', '9XXXXXXXX1', message='Message to sms')\n```\n\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430:\n```python\nfrom smsru_api import Client\n\nsmsru = Client('Your API KEY')\n\nmulti_dict = {\n    '9XXXXXXXX0': 'Message to sms', \n    '9XXXXXXXX1': 'Another message to sms'\n}\n\nresponse = smsru.send(multi=multi_dict)\n```\n**\u041e\u0442\u0432\u0435\u0442 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430:**\n```json\n{\n    \"status\": \"OK\",\n    \"status_code\": 100,\n    \"sms\": {\n        \"79XXXXXXXX0\": {\n            \"status\": \"OK\",\n            \"status_code\": 100,\n            \"sms_id\": \"000000-10000000\"\n        },\n        \"79XXXXXXXX1\": {\n            \"status\": \"ERROR\",\n            \"status_code\": 207,\n            \"status_text\": \"\u041d\u0430 \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 (\u0438\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u043e\u043c\u0435\u0440\u043e\u0432) \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043b\u0438\u0431\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439\"\n        }\n    } ,\n    \"balance\": 0\n}\n```\n\u041c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `JSON` \u043e\u0442\u0432\u0435\u0442, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 `sms.ru`.\n\u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u0438\u043c\u0435\u0435\u0442 10 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432:\n\n- `numbers`: \u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f (\u043b\u0438\u0431\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0434\u043e 100 \u0448\u0442\u0443\u043a \u0437\u0430 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441).\n- `message`: \u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 UTF-8.\n- `multi`: \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b `numbers` \u0438 `message` \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f.\n- `from_name`: \u0418\u043c\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f (\u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043e \u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0435\u0439).\n- `ip_address`: IP \u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.\n- `timestamp`: \u0412\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438.\n- `ttl`: \u0421\u0440\u043e\u043a \u0436\u0438\u0437\u043d\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u043c\u0438\u043d\u0443\u0442\u0430\u0445 (\u043e\u0442 1 \u0434\u043e 1440).\n- `day_time`: \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `time` \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f.\n- `test`: \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. `True` \u0438\u043b\u0438 `False`.\n- `translit`: \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0432\u0441\u0435 \u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0432 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435.\n- `debug`: \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u0412\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c `test: True`, \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u0432\u0440\u0443\u0447\u043d\u0443\u044e.\n- `partner_id`: ID \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u043a\u0430\u0437\u0430\u043d \u043a\u043e\u0434 \u0430\u0432\u0442\u043e\u0440\u0430. \u041f\u0440\u043e\u0448\u0443, \u0435\u0441\u043b\u0438 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0439 \u043a\u043e\u0434, \u043d\u0435 \u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0435\u0433\u043e. \u042d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u043c\u0435\u043d\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 API, \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u30c4.\n\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\n\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 Apache-2.0. \u0421\u043c. [LICENSE](https://github.com/XpycTee/smsru_api/blob/main/LICENSE.md) \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.\n\n## \u0410\u0432\u0442\u043e\u0440\u044b\n\n* **XpycTee** - *\u043f\u0440\u043e\u0441\u0442\u043e \u044f* - [XpycTee](https://github.com/XpycTee) - *smsru_api*\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "[A]sync Python API \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 sms.ru",
    "version": "1.2",
    "project_urls": {
        "Homepage": "https://github.com/XpycTee/smsru_api"
    },
    "split_keywords": [
        "async",
        " sync",
        " aio",
        " sms.ru",
        " sms",
        " ru",
        " smsru",
        " sms-verification",
        " verification",
        " sms-messages",
        " messages",
        " api",
        " api-client",
        " http"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4c07b158c8e64869b9dab53c4cf1d5d2658925e865bd0b6f636d9d2dfe244165",
                "md5": "086626afe2fc604f6443d09711efc863",
                "sha256": "06912d23fa3b1b9403d479d8cedb7601da2bef98a923a7034f7a507bea23e7f2"
            },
            "downloads": -1,
            "filename": "smsru_api-1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "086626afe2fc604f6443d09711efc863",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 13376,
            "upload_time": "2025-08-07T12:26:06",
            "upload_time_iso_8601": "2025-08-07T12:26:06.094580Z",
            "url": "https://files.pythonhosted.org/packages/4c/07/b158c8e64869b9dab53c4cf1d5d2658925e865bd0b6f636d9d2dfe244165/smsru_api-1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "032ef0d3c46a39541f82f2a24bc6fc242df0a62123471cfee585b0f18a75c032",
                "md5": "c11222b4032eaf041903674033c7de67",
                "sha256": "e5c03d0d6a5207e377e53fdceaefb5766e783ed8ba0a2ec84d88e237ca71a333"
            },
            "downloads": -1,
            "filename": "smsru_api-1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "c11222b4032eaf041903674033c7de67",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15305,
            "upload_time": "2025-08-07T12:26:07",
            "upload_time_iso_8601": "2025-08-07T12:26:07.074365Z",
            "url": "https://files.pythonhosted.org/packages/03/2e/f0d3c46a39541f82f2a24bc6fc242df0a62123471cfee585b0f18a75c032/smsru_api-1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-07 12:26:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "XpycTee",
    "github_project": "smsru_api",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "httpx",
            "specs": []
        }
    ],
    "tox": true,
    "lcname": "smsru-api"
}
        
Elapsed time: 1.34160s