Metadata-Version: 2.4
Name: arontel-messaging
Version: 0.1.0
Summary: Synchronous and asynchronous Python clients for Arontel Messaging
Author: Arontel
License-Expression: MIT
Project-URL: Source, https://github.com/arontel/arontel-messaging-python
Project-URL: Issues, https://github.com/arontel/arontel-messaging-python/issues
Project-URL: API schema, https://api.messaging.arontel.com/openapi.json
Keywords: arontel,messaging,sms,mms,async,sdk
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx<1,>=0.27
Requires-Dist: pydantic<3,>=2.7
Provides-Extra: aiohttp
Requires-Dist: aiohttp<4,>=3.12; extra == "aiohttp"
Provides-Extra: requests
Requires-Dist: requests<3,>=2.32.4; extra == "requests"
Provides-Extra: urllib3
Requires-Dist: urllib3<3,>=2.2; extra == "urllib3"
Provides-Extra: dev
Requires-Dist: pytest<9,>=8; extra == "dev"
Requires-Dist: build<2,>=1; extra == "dev"
Requires-Dist: twine<7,>=6; extra == "dev"
Dynamic: license-file

# Arontel Messaging Python SDK

Send SMS and MMS with synchronous or asynchronous Python clients. Requires
Python 3.9 or newer.

## Install

Once version 0.1.0 is published to PyPI:

```sh
pip install arontel-messaging
```

## Send an SMS

```python
from arontel_messaging import Client

with Client(api_key="api_key_your_key") as client:
    result = client.send_sms(
        from_="+19015551212",
        to="+19015551213",
        text="Hello from Arontel!",
    )
    print(result.message_id)
```

Use E.164 numbers with a leading `+`. `from_` maps to the API's `from` field.
API keys resolve in this order: **request → client instance → global setting →
`ARONTEL_API_KEY` environment variable**.

## HTTP backends

| Client | Backend | Install |
| --- | --- | --- |
| `Client` / `AsyncClient` | `httpx` (default) | `pip install arontel-messaging` |
| `Client` | `requests` | `pip install 'arontel-messaging[requests]'` |
| `Client` | `urllib3` | `pip install 'arontel-messaging[urllib3]'` |
| `AsyncClient` | `aiohttp` | `pip install 'arontel-messaging[aiohttp]'` |

Select a backend with `Client(backend="requests")`, `Client(backend="urllib3")`,
or `AsyncClient(backend="aiohttp")`. All backends reuse HTTP connections.

## Async example

```python
import asyncio
from arontel_messaging import AsyncClient

async def main():
    async with AsyncClient() as client:  # reads ARONTEL_API_KEY
        result = await client.send_sms(
            from_="+19015551212", to="+19015551213", text="Hello",
        )
        print(result.message_id)

asyncio.run(main())
```

## Usage documentation

See the [customer usage guide](https://github.com/arontel/arontel-messaging-python/blob/main/docs/usage.md)
for MMS, API-key settings, backend configuration, timeouts, errors, and webhooks.
Sends do not retry automatically; an accepted send is not proof of delivery.

## License

[MIT](https://github.com/arontel/arontel-messaging-python/blob/main/LICENSE).
Copyright (c) 2026 Arontel.
