Back to Context7

Get Context

docs/sdks/ts/commands/get-context.mdx

1.0.303.3 KB
Original Source

Get Context

Retrieve documentation context for a specific library. Returns documentation as a JSON array of documentation snippets (default) or as plain text.

Arguments

<ParamField path="query" type="string" required> The user's question or task (used for relevance ranking) </ParamField> <ParamField path="libraryId" type="string" required> The library identifier (e.g., `/facebook/react`) </ParamField> <ParamField path="options" type="GetContextOptions"> <Expandable title="properties"> <ParamField path="type" type="'json' | 'txt'"> Format of the response - `json`: Array of Documentation objects (default) - `txt`: Plain text format
  Default: `"json"`
</ParamField>
</Expandable> </ParamField>

Response

The response type depends on the type option.

JSON Format (type: "json" or default)

Returns Documentation[] - an array of documentation objects.

Text Format (type: "txt")

Returns a string containing the documentation context ready to use in LLM prompts.

<ResponseField name="Documentation" type="object"> <Expandable title="properties"> <ResponseField name="title" type="string" required> Title of the documentation snippet </ResponseField> <ResponseField name="content" type="string" required> The documentation content (includes code blocks in markdown format) </ResponseField> <ResponseField name="source" type="string" required> Source identifier for the snippet </ResponseField> </Expandable> </ResponseField>

Examples

<RequestExample> ```typescript JSON Format (Default) import { Context7 } from "@upstash/context7-sdk";

const client = new Context7();

const docs = await client.getContext( "How do I use hooks?", "/facebook/react" );

docs.forEach((doc) => { console.log(doc.title); console.log(doc.content); console.log(doc.source); });


```typescript Text Format
import { Context7 } from "@upstash/context7-sdk";

const client = new Context7();

const context = await client.getContext(
  "How do I use hooks?",
  "/facebook/react",
  { type: "txt" }
);

console.log(context);
typescript
import { Context7, Context7Error } from "@upstash/context7-sdk";

const client = new Context7();

try {
  const context = await client.getContext(
    "How to get started?",
    "/invalid/library"
  );
} catch (error) {
  if (error instanceof Context7Error) {
    console.error("API Error:", error.message);
  } else {
    throw error;
  }
}
</RequestExample>

Use Cases

Providing Context to LLMs

typescript
import { Context7 } from "@upstash/context7-sdk";

const client = new Context7();

async function getDocsForPrompt(library: string, question: string) {
  const context = await client.getContext(question, library);

  return `
Here is the relevant documentation:

${context}

User question: ${question}
`;
}

const prompt = await getDocsForPrompt("/facebook/react", "How do I use useEffect?");

Processing Individual Snippets

typescript
import { Context7 } from "@upstash/context7-sdk";

const client = new Context7();

const docs = await client.getContext(
  "How to create components?",
  "/facebook/react",
  { type: "json" }
);

docs.forEach((doc) => {
  console.log(`Title: ${doc.title}`);
  console.log(`Source: ${doc.source}`);
  console.log(`Content length: ${doc.content.length} chars`);
});