Skip to main content

Official Python SDK for the Verixo OTP-as-a-Service API

Project description

verixo

Official Python SDK for the Verixo OTP-as-a-Service API.

Install

pip install verixo

Quickstart

import os
import verixo

client = verixo.Client(os.environ["VC_API_KEY"])

result = client.numbers.search(
    service_slug="whatsapp",
    country_code="NG",
    min_score=80,
    limit=5,
)

session = client.numbers.purchase(
    service_slug="whatsapp",
    country_code="NG",
)

def handle(push):
    print(f"OTP: {push.otp} in {push.latency_ms}ms")

client.subscribe(session.session_token, handle)

Note: purchase() takes service_slug + country_code, not a specific number_id -- the server picks the best available number by Health Score at purchase time, since a candidate returned by search() may already be gone by the time you'd reference it back.

Polling instead of real-time push

subscribe() runs a background thread holding a persistent WebSocket connection, which isn't always practical (e.g. one-shot scripts, serverless functions). Use sessions.wait_for_otp() instead:

result = client.sessions.wait_for_otp(session.session_token)
if result.status == "DELIVERED":
    print(result.otp_code)

Errors

All non-2xx responses raise verixo.VerixoError with .status, and usually .code/.detail from the API's error body:

from verixo import VerixoError

try:
    client.numbers.purchase(service_slug="whatsapp", country_code="NG")
except VerixoError as err:
    if err.status == 402:
        print("Insufficient wallet balance")

Requirements

Python 3.8+.

Development

python -m venv .venv
.venv/Scripts/activate   # or `source .venv/bin/activate` on macOS/Linux
pip install -e .
python examples/quickstart.py   # requires VC_API_KEY env var, see file header

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

verixo-0.2.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

verixo-0.2.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file verixo-0.2.0.tar.gz.

File metadata

  • Download URL: verixo-0.2.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for verixo-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ac1a60a80a8e178772c3505f5c805fca6a21bf2f5e36e1937dbef88916b583e4
MD5 20a3a9012e575e15c0b133a3e9e9f238
BLAKE2b-256 6ad5835e62b09ed85a911b795cdca51f491c0374ee108b280087220ad071e143

See more details on using hashes here.

File details

Details for the file verixo-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: verixo-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for verixo-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d657b1d6c4502b4fbbb74d86279974ef6a9752cb6779f2f1fc6bed0cedc81e8
MD5 05ebf0a26e1a84b704453e2e061ecff5
BLAKE2b-256 533879c3850089c3061fb70250bbc582ed0035a008f815ad84ce060588e833eb

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