---
title: "Integrations"
description: "How SDKs extend functionality through modular integrations — interface, lifecycle, configuration, and default integration guidelines."
url: https://develop.sentry.dev/sdk/foundations/client/integrations/
---

# Integrations

This document uses key words such as "MUST", "SHOULD", and "MAY" as defined in

<!-- -->

[RFC 2119](https://www.ietf.org/rfc/rfc2119.txt) to indicate requirement levels.

Statusstable

Version`1.0.0`[(changelog)](https://develop.sentry.dev/sdk/foundations/client/integrations.md#changelog)

## [Overview](https://develop.sentry.dev/sdk/foundations/client/integrations.md#overview)

Integrations extend SDK functionality in a modular way. The [Client](https://develop.sentry.dev/sdk/foundations/client.md) **MUST** own integration instances and call their lifecycle methods.

Users configure integrations via the `integrations` option in `Sentry.init()`.

Related specs:

* [Client](https://develop.sentry.dev/sdk/foundations/client.md) — client lifecycle and event pipeline
* [HTTP Client Integration](https://develop.sentry.dev/sdk/foundations/client/integrations/http-client.md) — HTTP client instrumentation guidelines
* [GraphQL Integration](https://develop.sentry.dev/sdk/foundations/client/integrations/graphql.md) — GraphQL client instrumentation guidelines
* [Feature Flags Integration](https://develop.sentry.dev/sdk/foundations/client/integrations/feature-flags.md) — feature flag tracking guidelines
* [Modules Integration](https://develop.sentry.dev/sdk/foundations/client/integrations/modules.md) — loaded library and version reporting

***

## [Behavior](https://develop.sentry.dev/sdk/foundations/client/integrations.md#behavior)

### [Integration Interface](https://develop.sentry.dev/sdk/foundations/client/integrations.md#integration-interface)

Stablespecified since

<!-- -->

1.0.0

The recommended integration interface (language-specific variations apply):

| Method                                 | When Called                         | Purpose                                                          |
| -------------------------------------- | ----------------------------------- | ---------------------------------------------------------------- |
| `setupOnce()`                          | Once globally, for the first Client | Global side effects (monkey-patching, global handlers).          |
| `setup(client)`                        | Per Client                          | Client-specific setup. Preferred over `setupOnce` for most work. |
| `afterAllSetup(client)`                | After all integrations' `setup`     | Work that depends on other integrations being set up.            |
| `preprocessEvent(event, hint, client)` | Before event processors             | Modify the event before other processing.                        |
| `processEvent(event, hint, client)`    | During event pipeline               | Process the event. Return `null` to discard.                     |

### [Integration Configuration](https://develop.sentry.dev/sdk/foundations/client/integrations.md#integration-configuration)

Stablespecified since

<!-- -->

1.0.0

Users configure integrations via the `integrations` option:

```javascript
Sentry.init({
  integrations: [Sentry.browserTracingIntegration()],
});
```

`Sentry.init()` **MUST** enable a set of default integrations that define baseline functionality. SDKs **MUST** expose a way to disable default integrations individually or entirely.

### [Default Integration Guidelines](https://develop.sentry.dev/sdk/foundations/client/integrations.md#default-integration-guidelines)

Stablespecified since

<!-- -->

1.0.0

New default integrations **SHOULD**:

* Be lightweight — not add significant overhead
* Be well-tested across all supported environments
* Not create a high volume of new data (spans, transactions) without user opt-in

Integrations that create high data volume or have potential compatibility issues **SHOULD** be opt-in and only made default in a major version.

***

## [Changelog](https://develop.sentry.dev/sdk/foundations/client/integrations.md#changelog)

| Version | Date       | Summary                                         |
| ------- | ---------- | ----------------------------------------------- |
| `1.0.0` | 2025-02-24 | Initial spec, extracted from client spec v2.1.0 |

## Pages in this section

- [HTTP Client](https://develop.sentry.dev/sdk/foundations/client/integrations/http-client.md)
- [GraphQL](https://develop.sentry.dev/sdk/foundations/client/integrations/graphql.md)
- [Feature Flags](https://develop.sentry.dev/sdk/foundations/client/integrations/feature-flags.md)
- [Modules](https://develop.sentry.dev/sdk/foundations/client/integrations/modules.md)
- [Spotlight](https://develop.sentry.dev/sdk/foundations/client/integrations/spotlight.md)
- [MCP](https://develop.sentry.dev/sdk/foundations/client/integrations/mcp.md)
