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

# API Overview

> Complete reference for DataGlue's JavaScript API methods and properties.

# API Reference

DataGlue provides a comprehensive JavaScript API for interacting with visitor data and customizing behavior.

## Global Object

DataGlue is available globally as `window.glue`:

```javascript theme={null}
// Check if DataGlue is loaded
if (window.glue) {
    console.log('DataGlue is ready');
}
```

## Core Methods

### `glue.storage`

Storage management methods:

```javascript theme={null}
// Set data
window.glue.storage.set('key', 'value');
window.glue.storage.set('key', 'value', 30); // With 30-day expiration

// Get data
const value = window.glue.storage.get('key');

// Remove data
window.glue.storage.remove('key');

// Clear all data
window.glue.storage.clear();
```

### `glue.getVisitorContext()`

Get complete visitor information:

```javascript theme={null}
const context = window.glue.getVisitorContext();
console.log(context);
// Returns: user agent, language, attribution data, etc.
```

### `glue.getAttribution()`

Get attribution data only:

```javascript theme={null}
const attribution = window.glue.getAttribution();
console.log(attribution);
// Returns: UTM parameters, click IDs, referrer data
```

### `glue.dynamicContent()`

Configure conditional content:

```javascript theme={null}
glue.dynamicContent({
    selector: '#premium-content',
    key: 'utm_source',
    value: 'email',
    access_granted: '<p>Welcome email subscriber!</p>',
    access_denied: '<p>Subscribe to see this content.</p>'
});
```

## Configuration

### Script Attributes

Configure DataGlue via script tag attributes:

```html theme={null}
<script
    src="https://api.dataglue.io/glue.min.js"
    modules="formSearch"
    endpoint="https://api.example.com/webhook">
</script>
```

### JavaScript Configuration

```javascript theme={null}
// Set attribution manually
window.glue.setAttribution({
    utm_source: 'newsletter',
    utm_campaign: 'summer_sale'
});
```

## Events

DataGlue emits custom events:

```javascript theme={null}
// Listen for initialization
window.addEventListener('dataglue:ready', function() {
    console.log('DataGlue initialized');
});

// Listen for data updates
window.addEventListener('dataglue:update', function(event) {
    console.log('Data updated:', event.detail);
});
```

## Error Handling

```javascript theme={null}
try {
    const data = window.glue.storage.get('key');
    if (!data) {
        console.warn('No data found for key');
    }
} catch (error) {
    console.error('DataGlue error:', error);
}
```
