
[Stripe Projects](https://docs.stripe.com/projects) is a CLI tool that provisions third-party services (databases, auth, analytics, and more) under a single Stripe-managed billing relationship. Amplitude is an integrated provider, so you can create an Amplitude organization, project, and SDK API key without leaving your terminal.

```shell
stripe projects add amplitude/analytics
```

That one command creates your Amplitude org (or links you back to an existing one), provisions a default project, and writes an API key into your Stripe Projects vault. From there, run the [Amplitude Wizard CLI](/docs/get-started/setup-wizard-cli) with `npx @amplitude/wizard`, or [initialize the Amplitude Unified SDK](/docs/sdks/analytics/browser/browser-unified-sdk) directly, and you're sending events.

{% callout type="note" %}
Stripe Projects requires the Stripe CLI. Go to [Stripe's Projects documentation](https://docs.stripe.com/projects) for installation and authentication steps.
{% /callout %}

## Before you start

{% prerequisites %}
{% prerequisite %}
The Stripe CLI, authenticated against your Stripe account.
{% /prerequisite %}
{% prerequisite %}
A Stripe Projects directory — run `stripe projects init <name>` if you don't have one.
{% /prerequisite %}
{% prerequisite %}
For paid plans only: a billing method on your Stripe account, added with `stripe projects billing add`.
{% /prerequisite %}
{% /prerequisites %}

You don't need an existing Amplitude account. If the email on your Stripe profile already owns an Amplitude organization, Amplitude links the new project to it. Otherwise, Amplitude creates a fresh organization for you.

## Browse the catalog

Inspect what Amplitude exposes through Stripe Projects before you provision:

```shell
stripe projects catalog amplitude
stripe projects catalog amplitude --json
```

Two kinds of entries show up:

- `amplitude/analytics`: the deployable resource. Provisions an Amplitude project that includes product analytics, feature flags, session replay, and experimentation.
- Plan services: purchasable tiers that determine your monthly tracked user (MTU) quota and billing. Amplitude always offers the Free plan and one or more `plus-v3-*` paid plans.

## Provision Amplitude

### Free plan

Free is the default. It includes up to 10,000 monthly tracked users, core analytics, feature flags, and session replay. No billing method is required.

```shell
stripe projects add amplitude/analytics
```

### Paid plan

Pick a tier from the catalog and pass it as the `plan_tier` configuration field:

```shell
stripe projects add amplitude/analytics --config '{"plan_tier":"plus-v3-10k-mtu-monthly"}'
```

Stripe collects payment through a shared payment token at provision time. Your card details never reach Amplitude. Stripe Projects offers monthly billing only. To switch to annual billing, go to the Amplitude dashboard at _Settings > Billing_ after provisioning.

### Account configuration

The first time you provision Amplitude in a Stripe Project, the CLI prompts you for two fields:

- `region`: `us` or `eu`. Determines the data center where Amplitude stores and processes your data. This setting is immutable after Amplitude creates the account.
- `marketing`: optional boolean. Opts you in to product updates and marketing email from Amplitude.

## What you get back

A successful provision writes an `access_configuration` object into your Stripe Projects vault. Pull it into your local environment:

```shell
stripe projects env --pull
```

The vault stores:

- `api_key`: the API key for your default Amplitude project. Use it to initialize any Amplitude SDK.
- `dashboard_url`: an authenticated link to your organization's dashboard (paid plans only).

From here, you have two paths to events flowing:

- **Recommended: run the [Amplitude Wizard CLI](/docs/get-started/setup-wizard-cli).** It detects your framework, proposes tracking events tailored to your codebase, and instruments them for you. No manual SDK wiring is required.

  ```shell
  npx @amplitude/wizard
  ```

- **Initialize the SDK yourself.** Drop the [Amplitude Unified SDK](/docs/sdks/analytics/browser/browser-unified-sdk) (analytics, session replay, and experiment in one package) into your app:

  ```javascript
  import { Amplitude } from "@amplitude/unified";

  Amplitude.init(process.env.AMPLITUDE_API_KEY);
  Amplitude.track("Button Clicked", { button_name: "Sign Up" });
  ```

  For platform-specific SDKs, go to the [Amplitude Quickstart](/docs/get-started/amplitude-quickstart).

{% callout type="tip" %}
If you need an API key for a project other than the auto-created default, retrieve it from the Amplitude dashboard at _Settings > Projects_. Open an authenticated session with `stripe projects open amplitude`.
{% /callout %}

## Change plans

Use `stripe projects upgrade` to move between tiers. The command issues a non-destructive update against your `analytics` resource. Your project, API key, and existing event data carry over unchanged.

```shell
stripe projects upgrade amplitude/analytics --config '{"plan_tier":"plus-v3-100k-mtu-monthly"}'
```

| Change             | Effective                                                                |
| ------------------ | ------------------------------------------------------------------------ |
| Free → Plus        | Immediately. Stripe charges a prorated amount for the rest of the cycle. |
| Plus → higher Plus | Immediately. Stripe charges a prorated amount for the rest of the cycle. |
| Plus → lower Plus  | Scheduled for end of the current billing cycle. No refund or credit.     |
| Plus → cancel      | Scheduled for end of the current cycle. Reverts to Free.                 |
| Free               | No cancellation needed. Free plans don't bill and stay active forever.   |

Cancel a paid plan with:

```shell
stripe projects remove amplitude/analytics
```

You keep paid features until the billing cycle ends, then your account drops to Free automatically. Your project, events, and dashboards stay intact.

## Open the dashboard

Launch an authenticated dashboard session straight from the CLI:

```shell
stripe projects open amplitude
```

Deep link URLs are short-lived and single-use. Generate a fresh one each time. The link drops you into your organization's main analytics view, already signed in.

## Data residency

Amplitude operates separate US and EU data centers. The `region` you select at provision time pins your organization to one of them for its lifetime. Switching regions requires a manual migration through [Amplitude support](https://help.amplitude.com/).

The EU region routes through `eu.amplitude.com` and `api.eu.amplitude.com`. Make sure your SDK initialization sets the server zone to `EU` when you provisioned with `region: "eu"`:

```javascript
Amplitude.init(process.env.AMPLITUDE_API_KEY, { serverZone: "EU" });
```

## Returning users

If your Stripe profile email already matches an existing Amplitude login, Stripe Projects links the provisioning request to your existing account instead of creating a new one. When your email belongs to a single organization, the CLI receives credentials scoped to that org automatically. When it belongs to multiple, the CLI prompts you to pick one before completing the provision.

You can run `stripe projects add amplitude/analytics` from any Stripe Projects directory. Each provisioning creates a new Amplitude project inside the same organization, which is useful for separating dev, staging, and production environments.

## Troubleshooting

- **`requires_payment_method` error on a paid provision.** Add a billing method first with `stripe projects billing add`, then retry.
- **Wrong region.** Region is immutable. Run `stripe projects remove amplitude/analytics` to drop the resource, then re-provision with the correct region. This creates a new Amplitude organization. Your previous one stays in place but unlinked from Stripe.
- **Lost the API key.** Run `stripe projects env --pull` to refresh the vault, or grab the key from _Settings > Projects_ in the Amplitude dashboard.
