Skip to main content

Aptabase Python SDK

PyPI downloads PyPI - Version Python versions

Python SDK for Aptabase - privacy-first analytics for mobile, desktop and web applications.

Features

  • 🚀 Fully async - Built with httpx and asyncio
  • 🔒 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 servers
  • A-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

MIT 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)

Source distribution for aptabase 0.1.0
File Size Uploaded
aptabase-0.1.0.tar.gz 144.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aptabase 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page