reachflow
Official Python client for the ReachFlow public API (REST v1).
Source: github.com/Shadows97/reachflow-sdk
Installation
pip install reachflow
Requirements: Python ≥ 3.10.
Configuration
from reachflow import ReachFlow
client = ReachFlow(
api_key="rfl_live_…", # or rfl_test_…
environment="sandbox", # or "live" — default: "sandbox"
timeout_ms=30_000,
max_retries=2,
)
environment |
API host |
|---|---|
sandbox (default) |
sandbox-api.reachflow.me |
live |
api.reachflow.me |
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
Metadata
Release files for reachflow 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reachflow-0.3.1.tar.gz | 10.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reachflow-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / reachflow-0.3.1.tar.gz
| Download URL | reachflow-0.3.1.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b0dfa529d386ba27597e46a83dc8106449aa65d05d7b266c490d25e9ce17e5b
|
|
BLAKE2b-256 checksum How to use checksums |
ee60b8ac42ca92257e9cd5f8a56e558b4de6f9f950706515f070eeeabf40fd9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / reachflow-0.3.1-py3-none-any.whl
| Download URL | reachflow-0.3.1-py3-none-any.whl |
|---|---|
| Size | 13.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
325157bf9bc1368027fb60352e0084ff52a0bbf7dfeca3a78852c2f4e8d2a963
|
|
BLAKE2b-256 checksum How to use checksums |
e364fa17988ac5eea31bab8d8184b4a727562a0efff67b6dd367ab5e4a078e32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|