# What is Whisperr?

> What Whisperr is, and how to install it in your app with a coding agent, an SDK for web, mobile or server, or the ingestion API.

# What is Whisperr?

Whisperr is an autonomous retention engine for apps, games and online stores. It scores each user's churn risk, decides who gets a message and who gets nothing, writes it in your voice, sends it through your own channels, learns from every send, and proves the lift against a holdout.

These docs show how to give Whisperr what it needs from your app: who each user is, with `identify`, and what they do, with `track`. Whisperr does the rest.

## How do I install Whisperr with my coding agent?

Connect your agent to the Whisperr MCP server. It does the install in your repository and proves it with real events. You review the change. An agent without MCP follows the [setup guide](/setup/). You can also [get a pull request from the Whisperr GitHub App](/guides/pull-request-agent/) or [run the CLI wizard](/guides/wizard/).

MCP server

```text
https://mcp.whisperr.net/install
```

Add the server to your coding agent, sign in when the browser opens, then ask: "Install Whisperr in this app and verify that events arrive." The agent installs the SDK, wires your events, builds the app and waits until real events reach Whisperr.

Claude Code

```bash
claude plugin marketplace add WhisperrAI/whisperr-agent-kit
claude plugin install whisperr@whisperr
```

[Cursor, VS Code, Codex, Windsurf and others](/agents/)[Agent kit on GitHub](https://github.com/WhisperrAI/whisperr-agent-kit)

## Which SDK do I use?

Use a client SDK in your web or mobile app with the publishable key (`wpk_…`). Use a server SDK in your backend with the server key (`wrk_…`) for facts only your server knows, such as payments and cancellations. Send the same user id from both, and the events land on one timeline.

[Web@whisperr/web for any browser app.](/sdks/web/)[ReactA provider and the useWhisperr() hook.](/sdks/react/)[Next.jsA provider for the App Router root layout.](/sdks/next/)[Node.jsServer key, with Express middleware.](/sdks/node/)[PythonServer key, with Django middleware.](/sdks/python/)[PHP / LaravelLaravel service provider and facade.](/sdks/php/)[.NETServer key, with ASP.NET Core support.](/sdks/dotnet/)[FlutteriOS and Android, with Firebase Messaging push.](/sdks/flutter/)[React NativeNo native code. Works in Expo Go and bare apps.](/sdks/react-native/)[ExpoConfig plugin and push helpers for Expo apps.](/sdks/expo/)[SwiftiOS, macOS, tvOS and watchOS.](/sdks/swift/)

## Can I call the API directly?

Yes. Events and users go in through three ingestion endpoints at `https://api.whisperr.net`. The [API overview](/api/overview/) lists the server-only consent and data endpoints too. If you write your own client, read [delivery, retries and idempotency](/api/delivery/) first: a stable `$message_id` on each event makes retries safe.

[POST`/v1/events/batch`1 to 500 events](/api/events/)[POST`/v1/events/track`one event](/api/events/)[POST`/v1/identify`traits and channels](/api/identify/)

## What do I connect in the dashboard?

Whisperr sends through your own providers and reads subscription state from your billing tool.

[**Push providers**Firebase Cloud Messaging, Apple Push Notification service, Expo Push or OneSignal.](/integrations/push-providers/)[**Email providers**Resend, Postmark or SendGrid, with your own verified sender.](/integrations/email-providers/)

**Billing**[RevenueCat](/integrations/revenuecat/), [Superwall](/integrations/superwall/) or [Adapty](/integrations/adapty/). One billing source per app.

## What should I read before I ship?

[**Event design**What to track, how to name events, one user id everywhere.](/concepts/events/)[**Keys and limits**Which key goes where, size limits, rate limits and errors.](/api/overview/)[**Contact consent**When your app can opt a user in to email, and when your server must.](/concepts/consent/)

## Common questions

### Which channels does Whisperr send through?

Push and email, through your own providers: Firebase Cloud Messaging, Apple Push Notification service, Expo Push or OneSignal for push, and Resend, Postmark or SendGrid for email. In-app messaging is coming. SMS and voice are not available.

### Which API key goes in my app?

The publishable key (wpk_…), shown as an App key in Settings → API keys. The server key (wrk_…) stays on your servers.

### What does Whisperr need from my code?

Two calls: identify, which says who the user is, and track, which records what the user does. Billing events can also come from RevenueCat, Superwall or Adapty.

Source: https://docs.whisperr.net/
