Skip to main content

Python SDK for Aptabase analytics

Project description

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

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

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

aptabase-0.0.2.tar.gz (58.8 kB view details)

Uploaded Source

Built Distribution

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

aptabase-0.0.2-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file aptabase-0.0.2.tar.gz.

File metadata

  • Download URL: aptabase-0.0.2.tar.gz
  • Upload date:
  • Size: 58.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aptabase-0.0.2.tar.gz
Algorithm Hash digest
SHA256 9c1a9cfae29efd41604d39ff038e615d9c23407a0ea1daada1d25fe2f4d18d31
MD5 b6aaa27259f4b67fa723bda48cf6e22c
BLAKE2b-256 1170ea89c8b329ed0260837bee5b45595bf016e3b5b5ca6f3d19b1623c669a42

See more details on using hashes here.

Provenance

The following attestation bundles were made for aptabase-0.0.2.tar.gz:

Publisher: cd.yml on aptabase/aptabase-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aptabase-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: aptabase-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aptabase-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5142cc44d9a7009d9a740cf00e31bef4ae3197b5292114998737b91493a1bdfd
MD5 a871c2eb56925caba09c4a289bdb175f
BLAKE2b-256 96a86c74223286cb22e43dfd2fe18e415fbb554c89041cb648612c41e5238934

See more details on using hashes here.

Provenance

The following attestation bundles were made for aptabase-0.0.2-py3-none-any.whl:

Publisher: cd.yml on aptabase/aptabase-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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