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 | Provenance | |
|---|---|---|---|---|
| reachflow-0.3.1.tar.gz | 10.5 kB | Without provenance | 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
|
Security for reachflow 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.