Aptabase Python SDK
Python SDK for Aptabase - privacy-first analytics for mobile, desktop and web applications.
Features
- 🚀 Fully async - Built with
httpxandasyncio - 🔒 Privacy-first - No personal data collection
- 🏃 Modern Python - Requires Python 3.11+
- 🔄 Auto-batching - Efficient event batching and flushing
- ⚡ Lightweight - Minimal dependencies
Installation
uv add aptabase
# or
pip install aptabase
Quick Start
import asyncio
from aptabase import Aptabase
async def main():
async with Aptabase("A-EU-1234567890") as client:
# Track a simple event
await client.track("app_started")
# Track an event with properties
await client.track("user_action", {
"action": "button_click",
"button_id": "login",
"screen": "home"
})
# Events are automatically flushed, but you can force it
await client.flush()
asyncio.run(main())
Samples
Configuration
client = Aptabase(
app_key="A-EU-1234567890", # Your Aptabase app key
app_version="1.2.3", # Your app version
is_debug=False, # Enable debug mode
max_batch_size=25, # Max events per batch (max 25)
flush_interval=10.0, # Auto-flush interval in seconds
timeout=30.0 # HTTP timeout in seconds
)
App Key Format
Your app key determines the server region:
A-EU-*- European serversA-US-*- US servers
Get your app key from the Aptabase dashboard.
Event Tracking
Simple Events
await client.track("page_view")
Events with Properties
await client.track("purchase", {
"product_id": "abc123",
"price": 29.99,
"currency": "USD"
})
Lifecycle
Context Manager
async with Aptabase("A-EU-1234567890") as client:
await client.track("event")
# Automatically handles start/stop and flushing
Manual
client = Aptabase("A-EU-1234567890")
await client.start()
try:
await client.track("event")
finally:
await client.stop() # Ensures all events are flushed
Error Handling
from aptabase import Aptabase, AptabaseError, NetworkError
try:
async with Aptabase("A-EU-1234567890") as client:
await client.track("event")
except NetworkError as e:
print(f"Network error: {e}, status: {e.status_code}")
except AptabaseError as e:
print(f"Aptabase error: {e}")
Development
Install development dependencies:
uv sync --dev
Run tests:
uv run pytest
Code formatting:
uv run ruff check .
Type checking:
uv run mypy .
License
Metadata
Release files for aptabase 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aptabase-0.1.0.tar.gz | 144.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aptabase-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 152.1 kB
Release files / aptabase-0.1.0.tar.gz
| Download URL | aptabase-0.1.0.tar.gz |
|---|---|
| Size | 144.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5831fff24e6a889873d15f9687869228f9a87d3b7cd52a0a2b4fb8506de1da4f
|
|
BLAKE2b-256 checksum How to use checksums |
b03aad490f13f9d6378d357411c498a96e513e76fdfa49e963ffafed52d37405
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 12, 2025.
Transparency logRelease files / aptabase-0.1.0-py3-none-any.whl
| Download URL | aptabase-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9417178497f1d217ed0e41f1d2b95b759b7e5fa3583b0cbc302228ccd91e281
|
|
BLAKE2b-256 checksum How to use checksums |
d55339484a36ac4bd5e0fa3d8f5ddebd12fc7d0247a58d30582e0a5dde394739
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 12, 2025.
Transparency log