# Aptabase Documentation

Aptabase is an open-source, privacy-first analytics platform for mobile, desktop and web apps — an alternative to Google Firebase Analytics that collects no personal data, uses no cookies or device identifiers, and needs no consent banner.

## Getting started

1. Create a free account in the [European Union](https://eu.aptabase.com/auth/register) or [United States](https://us.aptabase.com/auth/register) region (no credit card required).
2. Create an app in the dashboard and copy its App Key from the **Instructions** menu. Keys look like `A-EU-*` or `A-US-*`.
3. Install the SDK for your platform (list below), initialize it with the App Key, and call the track function for the events you care about.
4. Open the dashboard — events show up in real time.

## How the SDKs behave

- Nothing is tracked automatically — you call the track function for each event.
- Every event is enriched automatically with OS name/version, app version and locale.
- Custom property values must be strings or numbers.
- Tracking calls are non-blocking and run in the background.
- Events are separated into Debug and Release build modes automatically (see https://aptabase.com/docs/build-modes).

## SDKs (17 platforms)

### Mobile

- [Swift (iOS, macOS, watchOS, tvOS)](https://github.com/aptabase/aptabase-swift): `Aptabase (Swift Package Manager)` — `Add https://github.com/aptabase/aptabase-swift.git via SPM or Xcode` ([guide](https://aptabase.com/for-swift))
- [Kotlin (Android)](https://github.com/aptabase/aptabase-kotlin): `com.github.aptabase:aptabase-kotlin (JitPack)` — `implementation("com.github.aptabase:aptabase-kotlin:0.0.8")` ([guide](https://aptabase.com/for-android))
- [Flutter](https://github.com/aptabase/aptabase_flutter): `aptabase_flutter (pub.dev)` — `flutter pub add aptabase_flutter` ([guide](https://aptabase.com/for-flutter))
- [React Native](https://github.com/aptabase/aptabase-react-native): `@aptabase/react-native` — `npm add @aptabase/react-native` ([guide](https://aptabase.com/for-react-native))
- [NativeScript](https://github.com/nstudio/nativescript-plugins/tree/main/packages/nativescript-aptabase): `@nicogaldo/nativescript-aptabase` — `npm add @nicogaldo/nativescript-aptabase` ([guide](https://aptabase.com/for-nativescript)) (community-maintained)

### Desktop

- [Electron](https://github.com/aptabase/aptabase-electron): `@aptabase/electron` — `npm add @aptabase/electron` ([guide](https://aptabase.com/for-electron))
- [Tauri](https://github.com/aptabase/tauri-plugin-aptabase): `tauri-plugin-aptabase (Rust) + @aptabase/tauri (JavaScript)` — `cargo add tauri-plugin-aptabase && npm add @aptabase/tauri` ([guide](https://aptabase.com/for-tauri))
- [.NET MAUI](https://github.com/aptabase/aptabase-maui): `Aptabase.Maui (NuGet)` — `dotnet add package Aptabase.Maui` ([guide](https://aptabase.com/for-maui))

### Web

- [Web apps (SPA)](https://github.com/aptabase/aptabase-js): `@aptabase/web (~1 kB)` — `npm add @aptabase/web` ([guide](https://aptabase.com/for-webapps))
- [React / Next.js](https://github.com/aptabase/aptabase-js): `@aptabase/react (~1 kB)` — `npm add @aptabase/react` ([guide](https://aptabase.com/for-nextjs))
- [Angular](https://github.com/aptabase/aptabase-js/blob/main/packages/angular/README.md): `@aptabase/angular` — `npm add @aptabase/angular` ([guide](https://aptabase.com/for-angular))
- [Browser extensions](https://github.com/aptabase/aptabase-js): `@aptabase/browser (~1 kB)` — `npm add @aptabase/browser` ([guide](https://aptabase.com/for-browser-extensions))

### Games

- [Unity](https://github.com/aptabase/aptabase-unity): `Unity Package Manager (git URL)` — `Package Manager → Add package from git URL: https://github.com/aptabase/aptabase-unity.git` ([guide](https://aptabase.com/for-unity))
- [Unreal Engine](https://github.com/aptabase/aptabase-unreal): `Plugin (C++ project)` — `Clone https://github.com/aptabase/aptabase-unreal into your project's Plugins/ folder` ([guide](https://aptabase.com/for-unreal))
- [Godot](https://github.com/aptabase/aptabase-godot): `addons/aptabase (autoload singleton)` — `Copy addons/aptabase into your project and enable the plugin` ([guide](https://aptabase.com/for-godot))

### Other

- [Python](https://github.com/aptabase/aptabase-python): `aptabase (PyPI)` — `pip install aptabase` ([guide](https://aptabase.com/for-python))
- [C++](https://github.com/aptabase/aptabase-cpp): `CMake subdirectory` — `add_subdirectory(path/to/aptabase-cpp)` ([guide](https://aptabase.com/for-cpp))

Don't see your platform? [Build your own SDK](https://github.com/aptabase/aptabase/wiki/How-to-build-your-own-SDK).

## Guides

- [Build Modes](https://aptabase.com/docs/build-modes): Debug vs Release mode behavior
- [Apple App Privacy](https://aptabase.com/docs/apple-app-privacy): How to fill out Apple's App Store privacy declaration when using Aptabase

## Data & privacy

### Data collected

- The event name and the custom properties you attach to it (strings and numbers only)
- App version and build number
- Operating system name and version
- Device model
- Locale / language
- Country and region, derived on the server from the IP address (the IP address itself is not stored)
- A random, short-lived session id generated by the SDK, plus timestamps

### Data never collected

- Device IDs, advertising IDs or hardware identifiers
- Cookies, fingerprints or any persistent user identifier
- IP addresses (used transiently to derive the country and a daily-rotated anonymous hash, never stored)
- Names, emails or any other personal data

SDKs send no identifiers. On the server, Aptabase derives a temporary anonymous hash from the client IP, user agent and a salt that rotates every 24 hours, which makes it impossible to correlate sessions across days or apps. Analytics data is retained for up to 5 years.

## Hosting regions

- European Union (Germany): https://eu.aptabase.com — app keys start with `A-EU-`
- United States (Virginia): https://us.aptabase.com — app keys start with `A-US-`

## Limits & pricing

Free up to 20,000 events/month. Paid plans from $10/month for 200,000 events up to $450/month for 50,000,000 events. No overage fees. There are no overage fees. We email you when you're close to your plan's monthly limit; if you exceed it, analytics are temporarily paused until the start of the next month. Details: https://aptabase.com/pricing

## Tools

- [MCP server](https://github.com/aptabase/aptabase-mcp): lets AI agents (Cursor, Claude Desktop, …) query your Aptabase analytics. Aptabase has no public query API; the MCP server wraps the dashboard endpoints.
- CSV export from the dashboard.

## Help

- Discord: https://discord.gg/d9d97unCUk
- GitHub issues: https://github.com/aptabase/aptabase/issues/new
- Email: hi@aptabase.com

## For AI agents

- [llms.txt](https://aptabase.com/llms.txt) — index of everything an agent needs, with links.
- [llms-full.txt](https://aptabase.com/llms-full.txt) — install, initialization and tracking code for every SDK.
- Every key page has a Markdown version: append `.md` to the path (for example `/pricing.md`, `/about.md`, `/docs.md`, `/docs/build-modes.md`, `/for-swift.md`) or send `Accept: text/markdown`.
