Skip to main content
The Courier Android SDK gives you prebuilt UI components and Kotlin APIs. It handles authentication, token management, and real-time message delivery. This page is the Android reference: what to install, how to configure Gradle, and the Kotlin API surface. Each flow is written once and applies to every platform. Available on GitHub.

Installation

1

Add the Jitpack repository

In your settings.gradle or settings.gradle.kts:
2

Add the dependency

In your app’s build.gradle:
Replace LATEST_VERSION with the current version from GitHub Releases.
3

Initialize the SDK

Call Courier.initialize() in your Application class before using other SDK features. This gives Courier access to SharedPreferences to persist state across sessions.
4

Use a Material theme

The prebuilt inbox and preference center only render correctly when your app theme extends Theme.MaterialComponents. Set it in res/values/themes.xml.
If you only use CourierClient APIs directly, skip the initialize and theme steps.

Authentication

Courier authenticates with a JWT that your backend mints with your Courier API key, never in client code. covers the token flow, scope strings, reading auth state, signing out, token refresh, and EU-hosted workspaces. Credentials persist across app sessions, so you sign in once per user rather than on every launch.

Inbox

is the setup flow. These are the types it uses on Android. Every callback and action these expose is documented per platform in .
Inbox needs the enabled in your workspace.

Inbox theme

CourierInboxTheme is a constructor argument on the composable, and a property on the view. Light and dark themes are separate.
Default InboxStyled Inbox

Default and styled Inbox on Android

Branding from also applies. The SDK reads primary color and footer visibility from your brand settings.

Push notifications

is the setup flow, from connecting FCM to a device that receives push. It covers the FirebaseMessagingService and CourierActivity wiring, setToken, permission, and reading the payload on tap.
Firebase is a separate dependency. From Courier Android 6.x the SDK no longer bundles Firebase Messaging. Declare your own Firebase BoM and firebase-messaging artifact so you can subclass FirebaseMessagingService.
Push notifications require a physical device and a release build for reliable token registration and delivery. Emulators are best-effort.
Two entry points are Android-only, and neither has a counterpart on the other platforms.

Preferences

is the setup flow. These are the types it uses on Android.
The composable renders the default channels mode. Set mode on the XML view for topic mode.
Topics and sections are configured in the . See for how preference enforcement works at send time.

Preferences theme

Light and dark themes are separate, and applies automatically when you supply a brandId.

Default and styled Preferences on Android

CourierClient

For advanced use cases, CourierClient is a low-level wrapper around the Courier API. Each client holds its own credentials, so you can spin up as many as you need.

Initialization

Token management

Inbox

Inbox websocket

Receive real-time updates across devices:

Preferences

Branding

URL tracking

Pass any tracking URL found inside a push notification payload or inbox message:
See the full .