--- name: deepgram-js-text-intelligence description: > Use when writing or reviewing JavaScript/TypeScript in this repo that calls Deepgram Text Intelligence / Read (`/v1/read`) for sentiment, summarization, topic detection, and intent recognition on text input. Covers `client.read.v1.text.analyze(...)` with `body: { text }` or `body: { url }`. Use `deepgram-js-audio-intelligence` when the source is audio instead of text. Triggers include "read API", "text intelligence", "analyze text", "sentiment", "summarize text", "topics", "intents", and "read.v1". --- # Using Deepgram Text Intelligence (JavaScript / TypeScript SDK) Analyze text or a hosted text URL for sentiment, summarization, topics, and intents via `/v1/read`. ## When to use this product - You already have **text** (transcript, document, email, chat log) and want analytics. - You want a single REST call; there is no streaming Read API in this SDK. **Use a different skill when:** - Your source is audio and you want the analytics applied during transcription → `deepgram-js-audio-intelligence`. ## Authentication ```js require("dotenv").config(); const { DeepgramClient } = require("@deepgram/sdk"); const deepgramClient = new DeepgramClient({ apiKey: process.env.DEEPGRAM_API_KEY, }); ``` ## Quick start From `examples/12-text-intelligence.ts`: ```js const data = await deepgramClient.read.v1.text.analyze({ body: { text: "Hello, world! This is a sample text for analysis.", }, language: "en", summarize: "v2", }); console.log("Analysis result:", JSON.stringify(data, null, 2)); ``` For broader coverage, `examples/28-text-intelligence-advanced.ts` also demonstrates `sentiment`, `topics`, `intents`, custom topics/intents, callbacks, and URL input. ## Key parameters / API surface | Param | Notes | |---|---| | `body` | Required. Use `{ text: "..." }` or `{ url: "https://..." }` | | `language` | Usually required for analytics features | | `sentiment` | Per-segment + aggregate sentiment | | `summarize` | SDK examples use both `"v2"` and `true`; see gotchas | | `topics`, `intents` | Model-detected topics and intents | | `custom_topic`, `custom_intent` | `string` or `string[]` | | `custom_topic_mode`, `custom_intent_mode` | Usually `"extended"` or `"strict"` | | `callback`, `callback_method`, `tag` | Async delivery and labeling | ## API reference (layered) 1. **In-repo reference**: `reference.md` → `Read V1 Text`; request typing also lives in `src/api/resources/read/resources/v1/resources/text/client/{Client,requests/TextAnalyzeRequest.ts}`. 2. **Canonical OpenAPI (REST)**: https://developers.deepgram.com/openapi.yaml 3. **Canonical AsyncAPI (WSS)**: https://developers.deepgram.com/asyncapi.yaml 4. **Context7**: library ID `/llmstxt/developers_deepgram_llms_txt` 5. **Product docs**: - https://developers.deepgram.com/reference/text-intelligence/analyze-text - https://developers.deepgram.com/docs/text-intelligence - https://developers.deepgram.com/docs/text-sentiment-analysis ## Gotchas 1. **Prefer `body: { text | url }` in typed code.** That matches `TextAnalyzeRequest`; some examples also use top-level `text`, which is less reliable for strict TS. 2. **`summarize` is inconsistent across examples and generated comments.** The request type points at `TextAnalyzeRequestSummarize` (`"v2"` today), while generated comments mention boolean for Read and examples use both forms. 3. **This API is REST-only here.** No `read.v1` WebSocket exists in the repo. 4. **Custom topics/intents need a mode for predictable behavior.** Use `extended` or `strict`. 5. **The body is JSON, not raw text bytes.** Send `{ body: { text: ... } }`, not a string payload. 6. **Language support is product-side, not SDK-side.** If analytics look sparse, verify the feature/model/language combination in docs. ## Example files in this repo - `examples/12-text-intelligence.ts` - `examples/28-text-intelligence-advanced.ts` ## Central product skills For cross-language Deepgram product knowledge — the consolidated API reference, documentation finder, focused runnable recipes, third-party integration examples, and MCP setup — install the central skills: ```bash npx skills add deepgram/skills ``` This SDK ships language-idiomatic code skills; `deepgram/skills` ships cross-language product knowledge (see `api`, `docs`, `recipes`, `examples`, `starters`, `setup-mcp`).