Official Python client for the A3 Age Assurance API
Project description
a3api
Official Python client for the A3 Age Assurance API.
Typed, async-ready, with built-in retries — supports Python 3.9+.
Installation
pip install a3api
Quick Start
from a3api import A3Client, AssessAgeRequest, OsSignal
client = A3Client(api_key="your-api-key")
response = client.assess_age(AssessAgeRequest(
os_signal=OsSignal.AGE_18_PLUS,
user_country_code="US",
))
print(response.verdict) # CONSISTENT
print(response.confidence_score) # 0.95
print(response.verification_token)
Async
from a3api import AsyncA3Client, AssessAgeRequest, OsSignal
async with AsyncA3Client(api_key="your-api-key") as client:
response = await client.assess_age(AssessAgeRequest(
os_signal=OsSignal.AGE_18_PLUS,
user_country_code="US",
))
With Behavioral Signals
from a3api import (
A3Client, AssessAgeRequest, OsSignal,
BehavioralMetrics, DeviceContext,
)
client = A3Client(api_key="your-api-key")
response = client.assess_age(AssessAgeRequest(
os_signal=OsSignal.AGE_13_15,
user_country_code="US",
behavioral_metrics=BehavioralMetrics(
avg_touch_precision=0.82,
scroll_velocity=340.0,
form_completion_time_ms=12000.0,
),
device_context=DeviceContext(
os_version="iOS 17.2",
device_model="iPhone 15",
is_high_contrast_enabled=False,
screen_scale_factor=3.0,
),
))
Error Handling
from a3api import (
A3Client, A3AuthenticationError,
A3RateLimitError, A3ValidationError, A3ConnectionError,
)
try:
response = client.assess_age(request)
except A3AuthenticationError:
# Invalid or missing API key (401)
pass
except A3RateLimitError as e:
# Too many requests (429) — e.retry_after has the wait time
pass
except A3ValidationError as e:
# Bad request (400) — e.validation_errors has details
pass
except A3ConnectionError:
# Network or timeout error
pass
Configuration
client = A3Client(
api_key="your-api-key",
base_url="https://api.a3api.io", # default
timeout=30.0, # seconds, default
max_retries=2, # default
)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
a3api-0.1.0.tar.gz
(10.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
a3api-0.1.0-py3-none-any.whl
(8.7 kB
view details)
File details
Details for the file a3api-0.1.0.tar.gz.
File metadata
- Download URL: a3api-0.1.0.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75dfb5275fefd8d6541f6f162bbb63c87f164f5cdbe08af5c336f5b3d1b4e09a
|
|
| MD5 |
282a47cecdf8efc34b5ced61a5851d29
|
|
| BLAKE2b-256 |
fb55e236506f9839ce7a08499c897c6c5db2e58a7236a695a45b5c4d51983b82
|
File details
Details for the file a3api-0.1.0-py3-none-any.whl.
File metadata
- Download URL: a3api-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d787f0cfcd8ea4506a1b44dd6088319e80faf78136127ce5353d42d1fd57d39e
|
|
| MD5 |
0bd135c19319aa8a41c1dd046e1ba5d5
|
|
| BLAKE2b-256 |
eace27c6a6e1f8ac25ee0fe45058f51baafe331b13a60a50ed48cd7abab78bc9
|