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_…
    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

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.3.0.tar.gz (10.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.3.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file reachflow-0.3.0.tar.gz.

File metadata

  • Download URL: reachflow-0.3.0.tar.gz
  • Upload date:
  • Size: 10.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.3.0.tar.gz
Algorithm Hash digest
SHA256 13d0b59f103f50b9089001e68ce7f6693b98ae4e12dc340f60fefd99fa1c3772
MD5 f4db49d4656004897e317c255cf16c05
BLAKE2b-256 d4b6fe229136f551ce3cdb1f5790fbcead88a6aa0cd05bcfaf65c81b4f795f11

See more details on using hashes here.

File details

Details for the file reachflow-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: reachflow-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5b521ca5f5f215464398d3abac15aec5dd165d0778144b077d98ff64077d31e
MD5 d917efe0a5c759192c483def61881ccb
BLAKE2b-256 377faaaf2d243787764ea532d02d3bbe2433df3c8d795a4444ccf69b7ac00764

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