diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html
index f64ab297f0..92a678c7a7 100644
--- a/Document-Processing-toc.html
+++ b/Document-Processing-toc.html
@@ -5624,6 +5624,13 @@
Getting Started
Agentic UI Builder
Data Binding
+
+ AI Assist
+
+
Environment Integrations
- Using with NextJS
diff --git a/Document-Processing/Excel/Spreadsheet/React/ai-assist/ai-assist.md b/Document-Processing/Excel/Spreadsheet/React/ai-assist/ai-assist.md
new file mode 100644
index 0000000000..cc22ccf166
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/React/ai-assist/ai-assist.md
@@ -0,0 +1,326 @@
+---
+layout: post
+title: AI Assist in React Spreadsheet control | Syncfusion
+description: Learn about the AI Assist feature in the Syncfusion React Spreadsheet control and how to configure it.
+platform: document-processing
+control: AI Assist
+documentation: ug
+---
+
+# AI Assist in React Spreadsheet control
+
+**AI Assist** brings AI-powered capabilities directly into the spreadsheet. Instead of manually applying formatting, writing formulas, or organizing data, you can describe what you want in plain English — and the AI Assist performs the action for you.
+
+
+
+---
+
+## Server Connection
+
+To configure the backend service, refer - [Web API Server](./server-configuration/using-web-api.md)/[Node.js Server](./server-configuration/using-web-api.md)
+
+---
+
+## Integration
+
+AI Assist integrates seamlessly into your React Spreadsheet application, enabling AI-powered capabilities with minimal configuration. This section covers the required setup.
+
+### Prerequisites
+
+Ensure the following before integrating AI Assist:
+
+* Backend Server: A running backend AI service (Node.js or Web API) with Azure OpenAI credentials configured on the server. For setup instructions, see [Web API Server](./server-configuration/using-web-api.md)/[Node.js Server](./server-configuration/using-web-api.md) for setup instructions.
+
+### Inject the AI Assist Module
+
+Inject the `AIAssist` module into the React Spreadsheet. This registers the AI Assist feature and makes it available in your application.
+
+```tsx
+import * as React from 'react';
+import { Spreadsheet, AIAssist } from '@syncfusion/ej2-react-spreadsheet';
+
+Spreadsheet.Inject(AIAssist);
+```
+
+### Enable AI Assist
+
+To enable `AIAssist` in the Spreadsheet component, set the [`enableAIAssist`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#enableaiassist) property to `true`.
+
+```tsx
+import * as React from 'react';
+import { Spreadsheet, SpreadsheetComponent, AIAssist } from '@syncfusion/ej2-react-spreadsheet';
+
+Spreadsheet.Inject(AIAssist);
+
+function App() {
+ return ( );
+}
+```
+
+This enables the AI Assist into the spreadsheet.
+
+---
+
+### Configure AI Assist Settings
+
+Use the [`aiAssistSettings`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#aiassistsettings) property to connect spreadsheet to the backend server and customize the AI Assist.
+
+```tsx
+import * as React from 'react';
+import { Spreadsheet, SpreadsheetComponent, AIAssist, AIAssistSettingsModel } from '@syncfusion/ej2-react-spreadsheet';
+
+Spreadsheet.Inject(AIAssist);
+
+function App() {
+ const spreadsheetRef = React.useRef(null);
+ const aiAssistSettings: AIAssistSettingsModel = {
+ requestUrl: 'https://localhost:{port}/api/AIAssist/Chat',
+ placeholder: 'Ask the AI about this sheet...',
+ promptSuggestions: [ 'Your suggestions',... ]
+ };
+
+ return (
+
+ );
+}
+```
+
+Your Spreadsheet is now integrated with AI Assist and ready to use.
+
+---
+
+## How-To Guides
+
+### Open and Close the AI Panel
+
+* **Open**: Click the **AI Assist** button in the ribbon toolbar.
+* **Close**: Click the **✕** button inside the panel header, or click the **AI Assist** ribbon button again.
+* **Start new conversation.**: Click the **↺ (Refresh)** button in the panel header.
+* **Resize the panel**: Drag the left edge of the panel to make it wider or narrower.
+
+### Undo an AI Action
+
+All actions performed by AI Assist are recorded in the spreadsheet's undo/redo history. Press Ctrl+Z to revert any change made by the AI, just like a manual edit.
+
+---
+
+### How to Attach Extra Data Before a Request is Sent
+
+Use the [`promptRequest`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#promptrequest) event to add custom data — such as a user ID or session token — to the request before it reaches your server.
+
+```tsx
+import * as React from 'react';
+import { Spreadsheet, SpreadsheetComponent, AIAssist, AIAssistSettingsModel, PromptRequestEventArgs } from '@syncfusion/ej2-react-spreadsheet';
+
+Spreadsheet.Inject(AIAssist);
+
+function App() {
+ const aiAssistSettings = { requestUrl: 'https://localhost:{port}/api/AIAssist/Chat' };
+
+ function onPromptRequest(args: PromptRequestEventArgs): void {
+ if (args.requestData) {
+ (args.requestData as any).body.userId = 'your-user-id';
+ }
+ }
+
+ return (
+
+
+ );
+}
+```
+
+You can also prevent the request entirely by setting `args.cancel = true`.
+
+---
+
+### How to Handle AI Responses
+
+Use the [`promptResponse`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#promptresponse) event to run custom logic after the AI completes its task — for example, logging results or showing a notification.
+
+```tsx
+import * as React from 'react';
+import { Spreadsheet, SpreadsheetComponent, AIAssist, AIAssistSettingsModel, PromptResponseEventArgs } from '@syncfusion/ej2-react-spreadsheet';
+
+Spreadsheet.Inject(AIAssist);
+
+function App() {
+ const aiAssistSettings = { requestUrl: 'https://localhost:{port}/api/AIAssist/Chat' };
+
+ function onPromptResponse(args: PromptResponseEventArgs): void {
+ console.log('AI Response received:', args.response);
+ }
+
+ return (
+
+
+ );
+}
+```
+
+---
+
+### Troubleshoot server connection issues
+
+If the AI panel displays an error message:
+
+1. Verify the server is running
+ * Confirm your Node.js or Web API server is active
+ * Check the console for startup messages
+2. Check the requestUrl
+ * Ensure the URL matches your server's exact address and port
+ * For local development:
+ * Node.js: http://localhost:3000/api/AIAssist/Chat
+ * Web API (.NET): https://localhost:5001/api/AIAssist/Chat
+3. Verify CORS is enabled
+ * Your React app origin must be allowed in the server's CORS policy
+ * Default React dev server: http://localhost:5173 (Vite) or http://localhost:3000 (Create React App)
+4. Use browser DevTools
+ * Open the Network tab to inspect failed requests
+ * Check for 404, 500, or CORS errors
+ * Look at the response body for error details
+5. Check server logs
+ * Review the terminal/console where your server is running
+ * Look for connection or authentication errors
+
+---
+
+## API Refernces
+
+### AI Assist Settings
+
+| Property | Type | Description |
+|---|---|---|
+| `requestUrl` | `string` | The URL of your AI server endpoint. All prompts are sent here. |
+| `placeholder` | `string` | The hint text shown inside the prompt input box. |
+| `promptSuggestions` | `string[]` | A list of quick-start prompts shown to the user as clickable suggestions. |
+
+---
+
+### Events
+
+| Event | When it fires | Common use |
+|---|---|---|
+| [`promptRequest`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#promptrequest) | Before the prompt is sent to the server | Attach extra data or cancel the request |
+| [`promptResponse`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#promptresponse) | After the AI completes and responds | Log results or trigger custom UI updates |
+
+---
+
+### What Can You Ask the AI?
+
+Type your request in plain English — no formulas or technical knowledge needed.
+
+#### Data Analysis
+
+| What to say | What it does |
+|---|---|
+| *"Can you give me a summary of this sheet?"* | Reviews your data and highlights key trends and totals |
+| *"What are the top 5 rows by sales?"* | Picks out the highest-performing records from your data |
+| *"Generate a full report for this sheet"* | Creates a structured report with KPIs, top records, and chart suggestions |
+
+#### Data Operations
+
+| What to say | What it does |
+|---|---|
+| *"Change the value in A1 to 500"* | Updates cell A1 with the new value |
+| *"Fill in the dates for the rest of the column"* | Continues a date or number pattern using AutoFill |
+| *"Swap 'Shoes' with 'Footwear' everywhere in this sheet"* | Finds and replaces the text throughout the entire sheet |
+
+#### Formatting
+
+| What to say | What it does |
+|---|---|
+| *"Make the header row bold with a blue background"* | Applies bold text and blue fill to your header cells |
+| *"Show the prices in currency format"* | Formats the selected cells to display as currency |
+| *"Make the text italic and red in column C"* | Applies italic style and red font color to the column |
+| *"Make the text fit inside the cells in column D"* | Turns on text wrapping so long text does not overflow |
+
+#### Rules & Validation
+
+| What to say | What it does |
+|---|---|
+| *"Highlight any values above 1000 in green"* | Applies a conditional formatting rule to flag high values |
+| *"Mark duplicate values in column A with a red background"* | Colors cells that appear more than once |
+| *"Only allow values between 1 and 100 in column B"* | Adds a data validation rule to restrict input |
+| *"Add a dropdown list with Yes and No options to column C"* | Creates a dropdown for easy, consistent data entry |
+
+#### Structure Management
+
+| What to say | What it does |
+|---|---|
+| *"Add two blank rows above row 5"* | Inserts two new rows at that position |
+| *"Remove column C"* | Deletes the entire column from the sheet |
+| *"Combine cells A1 to C1 into one"* | Merges the range into a single cell |
+| *"Keep the first two rows visible when I scroll down"* | Freezes the top rows so they stay in place |
+
+#### Navigation
+
+| What to say | What it does |
+|---|---|
+| *"Sort the data by sales from highest to lowest"* | Reorders rows based on the sales column, descending |
+| *"Show me only the rows where the region is India"* | Applies a filter so only matching rows are visible |
+| *"Find all cells that say 'Pending' and change them to 'Done'"* | Runs a find and replace across the sheet |
+
+#### Clipboard Actions
+
+| What to say | What it does |
+|---|---|
+| *"Copy the data from A1 to B5 and put it at D1"* | Copies the range and pastes it at the new location |
+| *"Move the content from A1:B3 to E1"* | Cuts the range and pastes it to the destination |
+
+#### Visualization
+
+| What to say | What it does |
+|---|---|
+| *"Create a bar chart from my sales data"* | Inserts a bar chart based on the selected data range |
+| *"Add a line chart showing the monthly trend"* | Creates a line chart to visualize changes over time |
+| *"Insert a pie chart with a title called 'Revenue Split'"* | Creates a pie chart with a custom title |
+
+---
+
+## How AI Assist Works in spreadsheet
+
+Understanding how AI Assist processes your request helps you write better prompts and get more reliable results.
+
+### The Three-Step Process
+
+When you submit a prompt in the AI Assist panel, the following happens behind the scenes:
+
+**1. Intent Recognition**
+Your prompt is sent to the AI server, which reads it and determines what type of action you want — for example, formatting, editing, generating a report, or creating a chart. This step figures out the *what*.
+
+**2. Command Generation**
+Once the intent is known, the spreadsheet's current data and the identified action are sent back to the AI. The AI then generates a precise set of instructions — such as which cells to update, what styles to apply, or what chart data to use. This step figures out the *how*.
+
+**3. Execution**
+The generated instructions are applied directly to the spreadsheet. The result appears instantly in the grid, and a confirmation message is shown in the AI panel. Every change is also added to the undo history, so nothing is permanent.
+
+### Writing Effective Prompts
+
+AI responses are only as good as the prompt you provide. Vague requests like *"fix this"* give the AI very little context. More specific prompts like *"highlight all values in column B that are greater than 500 in red"* produce reliable, accurate results.
+
+### Scope
+
+AI Assist only operates on the **currently active sheet**. It cannot read from or apply changes across multiple sheets in a single prompt.
+
+---
+
+## Limitations
+
+Understanding the current limitations of AI Assist helps you plan your integration and set accurate expectations for end users.
+
+* **Backend server is required**: AI Assist relies on a running backend service to process prompts. You must configure a valid `requestUrl` that points to an active Node.js or ASP.NET Web API server. The feature will not work in offline environments or when the server is unreachable.
+
+* **Operates on the active sheet only**: AI actions are scoped to the sheet that is currently open and selected. If you need the same change applied to multiple sheets, you must submit a separate prompt for each sheet individually.
+
+* **Prompt clarity affects result quality**: The AI interprets your request as written, so the quality of the output depends on how clearly the prompt is phrased. Broad or ambiguous prompts such as *"fix this"* may not produce the intended result. For consistent and accurate outcomes, use specific instructions — for example, *"bold the header row and apply a blue background to cells A1 through E1"*.
+
+* **Single-file scope**: AI Assist works exclusively within the currently loaded spreadsheet. It cannot read data from or apply changes to other Excel or CSV files that are not open in the same session.
+
+---
+
+## See Also
+* [Charts](../charts-and-visualizations.md)
+* [Data Binding](../data-binding)
\ No newline at end of file
diff --git a/Document-Processing/Excel/Spreadsheet/React/ai-assist/server-configuration/using-node-js.md b/Document-Processing/Excel/Spreadsheet/React/ai-assist/server-configuration/using-node-js.md
new file mode 100644
index 0000000000..f6c5c1170c
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/React/ai-assist/server-configuration/using-node-js.md
@@ -0,0 +1,263 @@
+---
+layout: post
+title: AI Assist Node.js Server Setup in React Spreadsheet | Syncfusion
+description: Learn how to set up and connect a Node.js + Express server for the AI Assist feature in the Syncfusion React Spreadsheet component.
+platform: document-processing
+control: AI Assist Node.js Server Setup
+documentation: ug
+---
+
+# AI Assist — Node.js Server Setup
+
+AI Assist requires a backend service to process prompts and return AI-generated responses. This topic explains how to create a **Node.js** server with **Azure OpenAI** credentials.
+
+---
+
+## Prerequisites
+
+Ensure the following are available before you begin.
+
+### Azure OpenAI credentials
+
+You must have an Azure OpenAI resource. Collect these values from the [Azure Portal](https://portal.azure.com):
+
+| Credential | Description |
+|---|---|
+| **API Key** | Azure OpenAI service key |
+| **Endpoint** | Base URL of your Azure OpenAI resource (e.g., `https://your-resource.openai.azure.com/`) |
+| **API Version** | REST API version (e.g., `2024-02-01`) |
+| **Deployment Name** | Model deployment name (e.g., `gpt-4o`) |
+
+These values correspond to the configuration used in the application:
+
+```
+const azureOpenAIApiKey = 'Your_Azure_OpenAI_API_Key';
+const azureOpenAIEndpoint = 'Your_Azure_OpenAI_Endpoint';
+const azureOpenAIApiVersion = 'Your_Azure_OpenAI_API_Version';
+const azureDeploymentName = 'Your_Deployment_Name';
+```
+
+### Runtime environment
+
+* Node.js v18 or later
+* npm v9 or later
+
+---
+
+## Install dependencies
+
+Run the following command in your server project:
+
+```
+npm install express cors dotenv openai date-fns
+```
+
+| Package | Purpose |
+|---|---|
+| `express` | HTTP server framework |
+| `cors` | Cross-Origin Resource Sharing middleware |
+| `dotenv` | Loads credentials from a `.env` file |
+| `openai` | Official Azure OpenAI client SDK |
+| `date-fns` | Date formatting for token-reset messages |
+
+Ensure your `package.json` includes `"type": "module"` to support ES module imports:
+
+```json
+{
+ "name": "service",
+ "version": "1.0.0",
+ "type": "module",
+ "scripts": {
+ "start": "node server.js"
+ },
+ "dependencies": {
+ "cors": "^2.8.5",
+ "date-fns": "^4.1.0",
+ "dotenv": "^16.4.5",
+ "express": "^4.21.0",
+ "openai": "4.50.0"
+ }
+}
+```
+
+---
+
+## Configure credentials
+
+Create a `.env` file in the project root and add your Azure OpenAI credentials:
+
+```dotenv
+apiKey = Your_Azure_OpenAI_API_Key
+endpoint = https://your-resource.openai.azure.com/
+deployment = Your_Deployment_Name
+apiVersion = Your_Azure_OpenAI_API_Version
+```
+
+> **Important:** Add `.env` to `.gitignore` to prevent exposing secrets.
+
+---
+
+## Configure required modules
+
+Create `ai-model.js` to initialize the Azure OpenAI client using the credentials from `.env`:
+
+```javascript
+import { AzureOpenAI } from "openai";
+import dotenv from 'dotenv';
+
+dotenv.config();
+
+const endpoint = process.env.endpoint;
+const apiKey = process.env.apiKey;
+const deployment = process.env.deployment;
+const apiVersion = process.env.apiVersion;
+
+const client = new AzureOpenAI({
+ endpoint,
+ apiKey,
+ apiVersion,
+ deployment
+});
+
+export async function getAzureChatAIRequest(options) {
+ const result = await client.chat.completions.create({
+ messages: options.messages,
+ model: "",
+ top_p: options.topP,
+ temperature: options.temperature,
+ max_tokens: options.maxTokens,
+ frequency_penalty: options.frequencyPenalty,
+ presence_penalty: options.presencePenalty,
+ stop: options.stopSequences
+ });
+ return result;
+}
+```
+
+Create `server.js` to expose the AI Assist API:
+
+```javascript
+import express from 'express';
+import cors from 'cors';
+import { getAzureChatAIRequest } from './ai-model.js';
+
+const app = express();
+const PORT = process.env.PORT || 3000;
+
+app.use(cors());
+app.use(express.json());
+
+app.post('/api/AIAssist/Chat', async (req, res) => {
+ const { visitorId, ...chatData } = req.body;
+ const responseText = await getAzureChatAIRequest(chatData);
+ if (responseText) {
+ return res.status(200).json({
+ response: responseText.choices[0].message.content
+ });
+ }
+ return res.status(500).json({ error: 'Failed to generate response' });
+});
+
+app.listen(PORT, () => {
+ console.log(`Server is running on http://localhost:${PORT}`);
+});
+```
+
+---
+
+## Run the server
+
+Run the following command to start the server:
+
+```
+npm start
+```
+
+The server runs on `http://localhost:3000`. Update the AI Assist endpoint like below:
+
+```
+http://localhost:3000/api/AIAssist/Chat
+```
+
+---
+
+## Connect to the React Spreadsheet
+
+Once the server is listening, Configure the `requestUrl` inside [`aiAssistSettings`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#aiassistsettings) to point to the server endpoint:
+
+{% raw %}
+
+```jsx
+import { SpreadsheetComponent, Spreadsheet, AIAssist } from '@syncfusion/ej2-react-spreadsheet';
+
+Spreadsheet.Inject(AIAssist);
+
+export default function App() {
+ return (
+
+ );
+}
+```
+
+{% endraw %}
+
+---
+
+## Reference
+
+### Environment variables (`.env`)
+
+| Variable | Description |
+|---|---|
+| `apiKey` | Your Azure OpenAI API key |
+| `endpoint` | Your Azure OpenAI resource URL |
+| `deployment` | Your model deployment name |
+| `apiVersion` | Azure OpenAI REST API version |
+
+### Chat endpoint contract
+
+The server accepts a `POST` request with the following JSON body:
+
+```json
+{
+ "messages": [
+ { "role": "system", "content": "You are a spreadsheet assistant." },
+ { "role": "user", "content": "Make the header row bold." }
+ ]
+}
+```
+
+And returns:
+
+```json
+{
+ "ok": true,
+ "response": "..."
+}
+```
+
+---
+
+## Sample
+
+A Node.js server sample project is available for quick setup. Extract the archive, update the Azure OpenAI credentials in the `.env` file, and start the server using the following command
+
+```
+npm start
+```
+
+[Download Node.js Server](https://drive.google.com/file/d/1V3TlO_6GS3dV986I7sDizmE9kwojkOrx/view?usp=drive_link)
+
+---
+
+## See also
+
+* [AI Assist overview](../ai-assist)
+* [Web API (.NET) server setup](./using-web-api)
diff --git a/Document-Processing/Excel/Spreadsheet/React/ai-assist/server-configuration/using-web-api.md b/Document-Processing/Excel/Spreadsheet/React/ai-assist/server-configuration/using-web-api.md
new file mode 100644
index 0000000000..8e3df76ed6
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/React/ai-assist/server-configuration/using-web-api.md
@@ -0,0 +1,291 @@
+---
+layout: post
+title: AI Assist Web API Server Setup in React Spreadsheet | Syncfusion
+description: Learn how to set up and connect an ASP.NET Core Web API server for the AI Assist feature in the Syncfusion React Spreadsheet component.
+platform: document-processing
+control: AI Assist Web API Server Setup
+documentation: ug
+---
+
+# AI Assist — Web API (.NET) Server Setup
+
+AI Assist requires a backend service to process prompts and return AI-generated responses. This topic explains how to create an **ASP.NET Core Web API** using **Azure OpenAI** credentials.
+
+---
+
+## Prerequisites
+
+Ensure the following are available before you begin.
+
+### Azure OpenAI credentials
+
+You must have an Azure OpenAI resource. Collect the following values from the [Azure Portal](https://portal.azure.com):
+
+| Credential | Description |
+|---|---|
+| **API Key** | Azure OpenAI service key |
+| **Endpoint** | Base URL of your Azure OpenAI resource (e.g., `https://your-resource.openai.azure.com/`) |
+| **API Version** | REST API version (e.g., `2024-02-01`) |
+| **Deployment Name** | Model deployment name (e.g., `gpt-4o`) |
+
+These values correspond to the configuration used in the application:
+
+```
+const azureOpenAIApiKey = 'Your_Azure_OpenAI_API_Key';
+const azureOpenAIEndpoint = 'Your_Azure_OpenAI_Endpoint';
+const azureOpenAIApiVersion = 'Your_Azure_OpenAI_API_Version';
+const azureDeploymentName = 'Your_Deployment_Name';
+```
+
+### Runtime environment
+
+* .NET 8 SDK or later
+* Visual Studio 2022 or the .NET CLI
+
+---
+
+## Install dependencies
+
+Run the following commands in your Web API project to install the required NuGet packages:
+
+```
+dotnet add package Azure.AI.OpenAI
+dotnet add package Microsoft.Extensions.AI
+dotnet add package Microsoft.Extensions.AI.OpenAI
+```
+
+| Package | Purpose |
+|---|---|
+| `Azure.AI.OpenAI` | Azure OpenAI client library |
+| `Microsoft.Extensions.AI` | Abstractions for AI services in .NET |
+| `Microsoft.Extensions.AI.OpenAI` | Bridges `IChatClient` with the Azure OpenAI client |
+
+---
+
+## Configure credentials
+
+Add the Azure OpenAI credentials in `appsettings.json` under `AI` section:
+
+```json
+{
+ "AI": {
+ "Endpoint": "https://your-resource.openai.azure.com/",
+ "Key": "Your_Azure_OpenAI_API_Key",
+ "DeploymentName": "Your_Deployment_Name"
+ }
+}
+```
+
+---
+
+## Configure required modules
+
+Update `Program.cs` to register the Azure OpenAI client and required services:
+
+```csharp
+using Azure.AI.OpenAI;
+using Microsoft.Extensions.AI;
+using System.ClientModel;
+using WebService.Services;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Load configuration
+builder.Configuration
+ .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
+ .AddEnvironmentVariables();
+
+// Configure CORS
+builder.Services.AddCors(options =>
+{
+ options.AddPolicy("AllowSpecificOrigins", policy =>
+ policy.WithOrigins("http://localhost:5173") // your React dev origin
+ .AllowAnyMethod()
+ .AllowAnyHeader());
+});
+
+// Register Azure OpenAI client
+string key = builder.Configuration["AI:Key"] ?? throw new InvalidOperationException("AI Key missing");
+string endpoint = builder.Configuration["AI:Endpoint"] ?? throw new InvalidOperationException("AI Endpoint missing");
+string deploymentName = builder.Configuration["AI:DeploymentName"] ?? throw new InvalidOperationException("AI DeploymentName missing");
+
+AzureOpenAIClient azureClient = new AzureOpenAIClient(
+ new Uri(endpoint),
+ new ApiKeyCredential(key)
+);
+IChatClient chatClient = azureClient.GetChatClient(deploymentName).AsIChatClient();
+
+builder.Services.AddSingleton(chatClient);
+builder.Services.AddControllers();
+
+var app = builder.Build();
+
+app.UseHttpsRedirection();
+app.UseCors("AllowSpecificOrigins");
+app.UseAuthorization();
+app.MapControllers();
+app.Run();
+```
+
+## Create the AI Assist controller
+
+Add `AIAssistController.cs` under the `Controllers` folder to handle the `/api/AIAssist/Chat` route:
+
+```csharp
+using Microsoft.AspNetCore.Cors;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.AI;
+using System.Text.Json;
+
+namespace WebService.Controllers
+{
+ [Route("api/[controller]")]
+ [ApiController]
+ public class AIAssistController : ControllerBase
+ {
+ private readonly IChatClient _chatClient;
+
+ public AIAssistController(IChatClient chatClient)
+ {
+ _chatClient = chatClient;
+ }
+
+ [HttpPost("Chat")]
+ [EnableCors("AllowSpecificOrigins")]
+ public async Task Chat()
+ {
+ var root = await Request.ReadFromJsonAsync();
+ if (root == null || root.Value.ValueKind == JsonValueKind.Undefined)
+ return BadRequest("Invalid or empty JSON payload.");
+
+ if (!root.Value.TryGetProperty("messages", out var messagesProperty))
+ return BadRequest("Invalid messages format.");
+
+ var messagesArray = messagesProperty.ValueKind == JsonValueKind.Array
+ ? messagesProperty
+ : messagesProperty.TryGetProperty("messages", out var nested)
+ ? nested
+ : default;
+
+ var chatMessages = new List();
+ foreach (var m in messagesArray.EnumerateArray())
+ {
+ var content = m.TryGetProperty("content", out var c) ? c.GetString() : null;
+ if (string.IsNullOrWhiteSpace(content)) continue;
+
+ var role = m.TryGetProperty("role", out var r) ? r.GetString() : "user";
+ ChatRole chatRole = role?.ToLower() switch
+ {
+ "system" => ChatRole.System,
+ "assistant" => ChatRole.Assistant,
+ _ => ChatRole.User
+ };
+ chatMessages.Add(new ChatMessage(chatRole, content));
+ }
+
+ if (chatMessages.Count == 0)
+ return BadRequest("No valid messages to send.");
+
+ var result = await _chatClient.GetResponseAsync(chatMessages);
+ return Ok(new { ok = true, response = result?.Text });
+ }
+ }
+}
+```
+
+---
+
+## Run the application
+
+Run the following command to start the Web API server:
+
+```
+dotnet run
+```
+
+The server runs on `https://localhost:{port}` (as defined in `launchSettings.json`). Update the AI Assist endpoint like below:
+
+```
+https://localhost:{port}/api/AIAssist/Chat
+```
+
+---
+
+## Connect to the React Spreadsheet
+
+Once the server is listening, Configure the `requestUrl` inside [`aiAssistSettings`](https://ej2.syncfusion.com/react/documentation/api/spreadsheet/index-default#aiassistsettings) to point to the server endpoint:
+
+{% raw %}
+
+```jsx
+import { SpreadsheetComponent } from '@syncfusion/ej2-react-spreadsheet';
+
+export default function App() {
+ return (
+
+ );
+}
+```
+
+{% endraw %}
+
+---
+
+## Reference
+
+### Configuration keys (`appsettings.json`)
+
+| Key | Description |
+|---|---|
+| `AI:Key` | Your Azure OpenAI API key |
+| `AI:Endpoint` | Your Azure OpenAI resource URL |
+| `AI:DeploymentName` | Your model deployment name |
+
+### Chat endpoint contract
+
+The server accepts a `POST` request with the following JSON body:
+
+```json
+{
+ "messages": [
+ { "role": "system", "content": "You are a spreadsheet assistant." },
+ { "role": "user", "content": "Make the header row bold." }
+ ]
+}
+```
+
+And returns:
+
+```json
+{
+ "ok": true,
+ "response": "..."
+}
+```
+
+---
+
+## Sample
+
+A Web API server sample project is available for quick setup. Extract the archive, update the Azure OpenAI credentials in `appsettings.json`, and start the server using the following command:
+
+```
+dotnet run
+```
+
+* [Web API Server](https://drive.google.com/file/d/13K7a89Vk4Xt7dgd4wt49q272bSVSVuz3/view?usp=drive_link)
+* [Live Demo](https://document.syncfusion.com/demos/spreadsheet-editor/react/#/tailwind3/spreadsheet/ai-smart-spreadsheets)
+
+---
+
+## See also
+
+* [AI Assist overview](../ai-assist)
+* [Node.js server setup](./using-node-js)
diff --git a/Document-Processing/Excel/Spreadsheet/React/feature-list.md b/Document-Processing/Excel/Spreadsheet/React/feature-list.md
index 3ca8b3eea0..a4f6f2ee82 100644
--- a/Document-Processing/Excel/Spreadsheet/React/feature-list.md
+++ b/Document-Processing/Excel/Spreadsheet/React/feature-list.md
@@ -23,6 +23,7 @@ The following table shows the features available in our Syncfusion EJ2 Spreadshe
| Formulae | Partially | EJ2 supports limited number of [`most used formulas`](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/formulas#supported-formulas) |
| Named range | Yes | - |
| Data Binding | Yes | - |
+| AI Assist | Yes | - |
| Cell Formatting | Yes | - |
| Number Formatting | Yes | - |
| Context menu | Yes | - |
diff --git a/Document-Processing/Excel/Spreadsheet/React/images/spreadsheet_ai_assist.gif b/Document-Processing/Excel/Spreadsheet/React/images/spreadsheet_ai_assist.gif
new file mode 100644
index 0000000000..22c4d77d0b
Binary files /dev/null and b/Document-Processing/Excel/Spreadsheet/React/images/spreadsheet_ai_assist.gif differ