> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trypillow.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps and API keys

> Create an application and generate publishable API keys for the Pillow SDK

Before you can use the Pillow SDK, you need to create an application and generate a publishable API key in the **Developer** section of your [dashboard](https://app.trypillow.ai).

## Create an application

An application represents a project that uses the Pillow SDK. Each application has its own set of API keys and tracks installations and sessions independently across web, iOS, and Android.

For web, the current browser SDK package is `@trypillow/web`.

<Steps>
  <Step title="Open the Developer section">
    In the sidebar, click **Developer**.
  </Step>

  <Step title="Create a new application">
    Click **New application**, enter a name, and optionally upload an icon. Then click **Create**.
  </Step>
</Steps>

### How to organize your apps

Applications are **platform-agnostic**. A single app works across web, iOS, and Android. Instead of splitting by platform, create one app per environment:

| Recommended       | Not recommended |
| ----------------- | --------------- |
| Acme Prod         | Acme iOS        |
| Acme Staging      | Acme Android    |
| Acme Web + Mobile | Acme Web        |

This keeps your keys, installations, and session data grouped by environment rather than fragmented across platforms.

## Generate an API key

Each application can have multiple API keys. You need at least one to initialize the SDK.

<Steps>
  <Step title="Open your application">
    In the **Developer** section, find your application card.
  </Step>

  <Step title="Create a key">
    Click **New key**, give it a name (e.g. "Production key"), and click **Create**.
  </Step>

  <Step title="Copy your key">
    The full publishable key is displayed once. Copy it and store it securely.
  </Step>
</Steps>

<Warning>
  You won't be able to see the full key again after closing the dialog. If you lose it, revoke the key and create a new one.
</Warning>

## Manage keys

* **Revoke** an active key to permanently disable it. Any SDK installations using that key will stop working.
* **Delete** a revoked key to remove it from the list.

You can create multiple keys per application, for example one per team member or one per release channel.

## What's next

<CardGroup cols={3}>
  <Card title="Web" icon="globe" href="/sdk/web/getting-started">
    Install `@trypillow/web` and present your first study on the web.
  </Card>

  <Card title="iOS" icon="smartphone" href="/sdk/ios/getting-started">
    Install and present your first study on iOS.
  </Card>

  <Card title="Android" icon="smartphone" href="/sdk/android/getting-started">
    Install and present your first study on Android.
  </Card>
</CardGroup>
