---
title: React Embed SDK
description: React Embed SDK is currently in public preview. The API may change in future releases.
---

<Info>
  React Embed SDK is currently in **public preview**. The API may change in future releases.
</Info>

The React Embed SDK provides React components for embedding Cube analytics directly into your React applications. It offers tighter integration with React's component model, giving you more control over styling, theming, and user interactions compared to iframe embedding.

## Installation

```bash
npm install @cube-dev/embed-sdk
# or
yarn add @cube-dev/embed-sdk
```

## Quick Start

The SDK requires [TanStack Query](https://tanstack.com/query) as a peer dependency. Wrap your application with `QueryClientProvider`, then add `CubeEmbedProvider` inside it:

```jsx
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { CubeEmbedProvider } from "@cube-dev/embed-sdk";

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <CubeEmbedProvider
        apiUrl="https://your-account.cubecloud.dev"
        sessionId="YOUR_SESSION_ID"
      >
        {/* Your embedded analytics components go here */}
      </CubeEmbedProvider>
    </QueryClientProvider>
  );
}
```

## Authentication

The React Embed SDK uses the same session-based authentication as [signed embedding](/embedding/iframe/auth/signed). Generate a session using the [Generate Session API](/reference/embed-apis/generate-session) and pass the `sessionId` to the provider.

A session expires after about 23 hours. SDK embedding talks to Cube's APIs directly rather than through an iframe, so the `postMessage` renewal contract in [Keeping a signed session alive](/embedding/iframe/events#keeping-a-signed-session-alive) — including the `autoRenewSession` helper — applies to iframe embedding only. With the React Embed SDK, mint a new `sessionId` before the current one expires and re-render the provider with it.

## Example

For a complete working implementation, see the [antd-cube-embed-sdk example](https://github.com/cubedevinc/cube-agent-examples/tree/main/examples/antd-cube-embed-sdk) on GitHub.
