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

# API Reference

> SDK method reference for the Zixflow JavaScript integration.

### Browser SDK

#### AnalyticsBrowser.load(settings)

Initialize the analytics instance.

**Parameters**:

* `settings` (object)
  * `apiKey` (string, required): Your Zixflow API key
  * `deliveryStrategy` (object, optional): Delivery strategy configuration
  * `disablePageView` (boolean, optional): Disable automatic page views
  * `plugins` (array, optional): Custom plugins to load

**Returns**: `Analytics` instance

***

#### analytics.identify(userId, traits, options, callback)

Identify a user.

**Parameters**:

* `userId` (string, required): User identifier
* `traits` (object, optional): User attributes
* `options` (object, optional): Additional options
* `callback` (function, optional): Callback function

**Returns**: `Promise<Context>`

***

#### analytics.track(event, properties, options, callback)

Track an event.

**Parameters**:

* `event` (string, required): Event name
* `properties` (object, optional): Event properties
* `options` (object, optional): Additional options
* `callback` (function, optional): Callback function

**Returns**: `Promise<Context>`

***

#### analytics.page(category, name, properties, options, callback)

Track a page view.

**Parameters**:

* `category` (string, optional): Page category
* `name` (string, optional): Page name
* `properties` (object, optional): Page properties
* `options` (object, optional): Additional options
* `callback` (function, optional): Callback function

**Returns**: `Promise<Context>`

***

#### analytics.screen(category, name, properties, options, callback)

Track a screen view.

**Parameters**: Same as `page()`

**Returns**: `Promise<Context>`

***

#### analytics.group(groupId, traits, options, callback)

Associate user with group.

**Parameters**:

* `groupId` (string, required): Group identifier
* `traits` (object, optional): Group attributes
* `options` (object, optional): Additional options
* `callback` (function, optional): Callback function

**Returns**: `Promise<Context>`

***

#### analytics.alias(userId, previousId, options, callback)

Merge user identities.

**Parameters**:

* `userId` (string, required): New user ID
* `previousId` (string, optional): Previous user ID
* `options` (object, optional): Additional options
* `callback` (function, optional): Callback function

**Returns**: `Promise<Context>`

***

#### analytics.reset()

Clear user identification.

**Returns**: `Promise<Context>`

***

#### analytics.ready(callback)

Execute callback when SDK is ready.

**Parameters**:

* `callback` (function, required): Callback function

**Returns**: `Promise<void>`

***

### Node.js SDK

#### new Analytics(settings)

Create analytics instance.

**Parameters**:

* `settings` (object)
  * `writeKey` (string, required): Your Zixflow API key
  * `host` (string, optional): API host URL
  * `path` (string, optional): API path
  * `maxEventsInBatch` (number, optional): Max events per batch (default: 15)
  * `flushInterval` (number, optional): Flush interval in ms (default: 10000)
  * `maxRetries` (number, optional): Max retry attempts (default: 3)
  * `httpRequestTimeout` (number, optional): Request timeout in ms

**Returns**: `Analytics` instance

***

#### analytics.identify(params, callback)

Identify a user.

**Parameters**:

* `params` (object)
  * `userId` (string, optional): User identifier
  * `anonymousId` (string, optional): Anonymous identifier
  * `traits` (object, optional): User attributes
  * `context` (object, optional): Context information
  * `timestamp` (Date, optional): Event timestamp
  * `integrations` (object, optional): Integration settings
  * `messageId` (string, optional): Message ID
* `callback` (function, optional): Callback function

**Returns**: `void`

***

#### analytics.track(params, callback)

Track an event.

**Parameters**:

* `params` (object)
  * `userId` (string, optional): User identifier
  * `anonymousId` (string, optional): Anonymous identifier
  * `event` (string, required): Event name
  * `properties` (object, optional): Event properties
  * `context` (object, optional): Context information
  * `timestamp` (Date, optional): Event timestamp
  * `integrations` (object, optional): Integration settings
  * `messageId` (string, optional): Message ID
* `callback` (function, optional): Callback function

**Returns**: `void`

***

#### analytics.page(params, callback)

Track a page view.

**Parameters**:

* `params` (object)
  * `userId` (string, optional): User identifier
  * `anonymousId` (string, optional): Anonymous identifier
  * `category` (string, optional): Page category
  * `name` (string, optional): Page name
  * `properties` (object, optional): Page properties
  * `context` (object, optional): Context information
  * `timestamp` (Date, optional): Event timestamp
* `callback` (function, optional): Callback function

**Returns**: `void`

***

#### analytics.screen(params, callback)

Track a screen view.

**Parameters**: Same as `page()`

**Returns**: `void`

***

#### analytics.group(params, callback)

Associate user with group.

**Parameters**:

* `params` (object)
  * `userId` (string, optional): User identifier
  * `anonymousId` (string, optional): Anonymous identifier
  * `groupId` (string, required): Group identifier
  * `traits` (object, optional): Group attributes
  * `context` (object, optional): Context information
  * `timestamp` (Date, optional): Event timestamp
* `callback` (function, optional): Callback function

**Returns**: `void`

***

#### analytics.alias(params, callback)

Merge user identities.

**Parameters**:

* `params` (object)
  * `userId` (string, required): New user ID
  * `previousId` (string, required): Previous user ID
  * `context` (object, optional): Context information
  * `timestamp` (Date, optional): Event timestamp
* `callback` (function, optional): Callback function

**Returns**: `void`

***

#### analytics.closeAndFlush(options)

Flush all events and close.

**Parameters**:

* `options` (object, optional)
  * `timeout` (number, optional): Maximum wait time in ms

**Returns**: `Promise<void>`
