Official Python client for the ReachFlow public REST API (WhatsApp, OTP)
Project description
reachflow
Official Python client for the ReachFlow public API (REST v1).
Installation
pip install reachflow
Requirements: Python ≥ 3.10.
Configuration
from reachflow import ReachFlow
client = ReachFlow(
api_key="rfl_live_…", # or rfl_test_…
base_url="https://sandbox-api.reachflow.me", # optional
timeout_ms=30_000,
max_retries=2,
)
Use a context manager to close the HTTP connection:
with ReachFlow(api_key="rfl_live_…") as client:
...
Examples
Send a message
with ReachFlow(api_key="rfl_live_…") as client:
result = client.messages.send(
provider_id="your-provider-uuid",
to="22996123456",
message="Your order is confirmed.",
)
status = client.messages.wait_for_terminal(result["messageId"])
print(status["status"])
OTP
with ReachFlow(api_key="rfl_live_…") as client:
sent = client.otp.send(
provider_id="your-provider-uuid",
phone_number="22996123456",
brand_name="My App",
)
# Code is delivered on WhatsApp only — never in the JSON response.
verified = client.otp.verify(otp_id=sent["otpId"], code="482910")
print(verified["valid"])
Async client
from reachflow import AsyncReachFlow
async with AsyncReachFlow(api_key="rfl_live_…") as client:
providers = await client.providers.list()
Error handling
from reachflow import ReachFlow, ReachFlowError
try:
client.messages.send(...)
except ReachFlowError as err:
print(err.status_code, err.code, err.message)
if err.retryable:
...
Idempotency
client.messages.send(
provider_id=provider_id,
to=to,
message=message,
idempotency_key="order-12345",
)
Development
pip install -e ".[dev]"
pytest
License
MIT
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
reachflow-0.1.1.tar.gz
(8.4 kB
view details)
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
reachflow-0.1.1-py3-none-any.whl
(10.8 kB
view details)
File details
Details for the file reachflow-0.1.1.tar.gz.
File metadata
- Download URL: reachflow-0.1.1.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9f22b1ae4350a4ecc1c230704ea56a92da13dd031ef8cd5bef7d129d4f41e49
|
|
| MD5 |
12e94c7ea57052e77160f5154c15c784
|
|
| BLAKE2b-256 |
8517c82ee7ca7113663929ee942be4b4c9903b5ac0510f29cb818873e316d5d1
|
File details
Details for the file reachflow-0.1.1-py3-none-any.whl.
File metadata
- Download URL: reachflow-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31ba2e61969e7ca3685e23c9d1bfa02cb0b5c212e79b37358da93d186dd4e74c
|
|
| MD5 |
031807b806a8c52ddd5977e4da0badba
|
|
| BLAKE2b-256 |
761179f76370e4837f05e359dfcfed032dd2d883729f336ce84b7e0ff4b90a8f
|