Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reachflow-0.1.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

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

Hashes for reachflow-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a9f22b1ae4350a4ecc1c230704ea56a92da13dd031ef8cd5bef7d129d4f41e49
MD5 12e94c7ea57052e77160f5154c15c784
BLAKE2b-256 8517c82ee7ca7113663929ee942be4b4c9903b5ac0510f29cb818873e316d5d1

See more details on using hashes here.

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

Hashes for reachflow-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 31ba2e61969e7ca3685e23c9d1bfa02cb0b5c212e79b37358da93d186dd4e74c
MD5 031807b806a8c52ddd5977e4da0badba
BLAKE2b-256 761179f76370e4837f05e359dfcfed032dd2d883729f336ce84b7e0ff4b90a8f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page