# SDK Quickstart (/docs/sdk/quickstart)



Pick the package that matches your stack. Every SDK posts to the same
`https://in.layers.com/events` ingest endpoint.

## Get your app ID [#get-your-app-id]

Project → Layers → **Layers SDK** → copy `app_id` (prefixed `app_`).
Use this as `appId` everywhere below.

## Web / JavaScript [#web--javascript]

```bash
npm i @layers/client
```

```ts
import { LayersClient } from '@layers/client';

const layers = new LayersClient({
  apiKey: 'unused-but-required-by-type',
  appId: 'app_xxx',
  environment: 'production',
});
await layers.init();

await layers.track('purchase_success', { revenue: 9.99, currency: 'USD' });
```

[Full web guide →](/docs/sdk/web)

## React Native [#react-native]

```bash
npm i @layers/react-native
cd ios && pod install
```

```ts
import Layers from '@layers/react-native';

await Layers.init({
  apiKey: 'unused-but-required-by-type',
  appId: 'app_xxx',
  environment: __DEV__ ? 'development' : 'production',
});

await Layers.track('purchase_success', { revenue: 9.99, currency: 'USD' });
```

[Full RN guide →](/docs/sdk/react-native)

## Expo [#expo]

```bash
npx expo install @layers/expo
```

Wire the config plugin in `app.json`, then use the same API as React
Native. [Full Expo guide →](/docs/sdk/expo)

## Node / server-side [#node--server-side]

```bash
npm i @layers/node
```

Same API as `@layers/client`, runs on Node. Good for post-purchase
webhooks, CRM pipelines, and server-side backfills.

## Platforms not yet available [#platforms-not-yet-available]

Native iOS, Android, Flutter, Unity, and Cordova / Capacitor SDKs are
**not yet published**. See the per-platform pages for the current
status and interim workarounds (mostly: use the web or RN SDK, or POST
directly to `https://in.layers.com/events`).

## Validate [#validate]

After firing your first event:

1. Open the [Events page](/docs/events/feed) in your project and look
   for it.
2. If you have a Meta or TikTok ads layer with CAPI enabled, open Meta
   Events Manager → **Test Events** or TikTok's Events Debugger to
   confirm downstream forwarding. (Note: only events in the
   [event map](/docs/sdk/architecture#event-name-mapping) are forwarded;
   arbitrary event names are stored but not relayed.)

If nothing appears, see [Debugging](/docs/sdk/debugging).

## Next [#next]

* [Standard events](/docs/sdk/standard-events) — event names that map
  cleanly to Meta / TikTok standard events.
* [User identity](/docs/sdk/user-identity) — `setAppUserId`,
  `setUserProperties`.
* [Initialization options](/docs/sdk/initialization).
* [Production checklist](/docs/sdk/production).
