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

# Configuration reference

> Every option on PushConfiguration.

```swift theme={null}
PushConfiguration(
    apiKey: "pna_...",
    baseURL: URL(string: "https://api.pushnotif.ai")!,
    appVersion: "2.4.0",
    immediateEvents: ["drill_completed"]
)
```

**apiKey** `String` *required*

The app's ingest key, from the **SDK Keys** page. Write-only, safe to ship.

**baseURL** `URL` *required*

The ingest API: `https://api.pushnotif.ai`.

**appVersion** `String?` (default: nil)

Your app's version. Needed for `$app_updated`, and attached to every request.

**osVersion** `String?` (default: nil)

The OS version to report with every request.

**immediateEvents** `Set\<String\>` (default: \[])

Event names uploaded as soon as they are tracked instead of batched. Use for
events a flow must react to within seconds. See
[Track events](https://docs.pushnotif.ai/sdk/tracking-events.md#events-a-flow-triggers-on).

**flushAt** `Int` (default: 20)

Upload once this many events are queued.

**flushInterval** `TimeInterval` (default: 30)

Upload this often (in seconds), however many events are queued.

**maxBatchSize** `Int` (default: 500)

Most events in one upload. The API accepts up to 500.

**bufferCapacity** `Int` (default: 1000)

Most events kept on disk while offline. Past this, the oldest are dropped.

**appGroupId** `String?` (default: nil)

The app group shared with your Notification Service Extension. Leave it nil
to use `group.<bundle-id>.pushnotifai`. See
[Delivery telemetry](https://docs.pushnotif.ai/sdk/delivery-telemetry.md).

**swizzlingEnabled** `Bool` (default: true)

Hook token registration and notification responses automatically. See
[Push handling](https://docs.pushnotif.ai/sdk/push-handling.md#manual-integration) to wire them yourself.

**automaticallyRegistersNotificationCategory** `Bool` (default: true)

Add our notification category (needed to report dismissals) to your
registered categories at launch.

**capturesAppLifecycleEvents** `Bool` (default: true)

Report `$app_open`, `$app_backgrounded`, `$app_installed` and `$app_updated`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.