Back to Context7

Search Library

docs/sdks/ts/commands/search-library.mdx

1.0.303.6 KB
Original Source

Search Library

Search across available libraries. Returns an array of matching libraries with metadata useful for selection.

Arguments

<ParamField path="query" type="string" required> The user's question or task (used for relevance ranking) </ParamField> <ParamField path="libraryName" type="string" required> The library name to search for </ParamField>

Response

Returns Library[] - an array of library objects.

<ResponseField name="Library" type="object"> <Expandable title="properties"> <ResponseField name="id" type="string" required> Unique identifier for the library (e.g., `/facebook/react`) </ResponseField> <ResponseField name="name" type="string" required> Display name of the library </ResponseField> <ResponseField name="description" type="string" required> Brief description of the library </ResponseField> <ResponseField name="totalSnippets" type="number" required> Total number of documentation snippets available </ResponseField> <ResponseField name="trustScore" type="number" required> Trust score of the library </ResponseField> <ResponseField name="benchmarkScore" type="number" required> Benchmark score indicating documentation quality </ResponseField> <ResponseField name="versions" type="string[]"> Available versions </ResponseField> </Expandable> </ResponseField>

Examples

<RequestExample> ```typescript Basic Search import { Context7 } from "@upstash/context7-sdk";

const client = new Context7();

const libraries = await client.searchLibrary( "I need to build a UI", "react" );

console.log(Found ${libraries.length} libraries); libraries.forEach((library) => { console.log(${library.name}: ${library.description}); });


```typescript Selecting Best Library
import { Context7 } from "@upstash/context7-sdk";

const client = new Context7();

const libraries = await client.searchLibrary(
  "I want to build a web app",
  "next"
);

const sorted = libraries.sort((a, b) => b.benchmarkScore - a.benchmarkScore);
const best = sorted[0];

console.log(`Best match: ${best.name} (score: ${best.benchmarkScore})`);
console.log(`Available snippets: ${best.totalSnippets}`);
typescript
import { Context7, Context7Error } from "@upstash/context7-sdk";

const client = new Context7();

try {
  const libraries = await client.searchLibrary("query", "express");

  if (libraries.length === 0) {
    console.log("No libraries found");
  } else {
    console.log(`Found ${libraries.length} libraries`);
  }
} catch (error) {
  if (error instanceof Context7Error) {
    console.error("API Error:", error.message);
  } else {
    throw error;
  }
}
</RequestExample>

Use Cases

Finding Libraries by Score

typescript
const libraries = await client.searchLibrary("state management", "redux");

const trusted = libraries.sort((a, b) => b.trustScore - a.trustScore);
console.log("Most trusted:", trusted[0].name);

Checking Available Versions

typescript
const libraries = await client.searchLibrary("I want to use lodash", "lodash");

const library = libraries[0];
if (library.versions) {
  console.log(`Available versions: ${library.versions.join(", ")}`);
}

Full Workflow

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

const client = new Context7();

const libraries = await client.searchLibrary(
  "I want to build a React app",
  "react"
);

const library = libraries[0];
console.log(`Using: ${library.name} (${library.id})`);

const context = await client.getContext(
  "How do I create a component?",
  library.id
);

console.log(context);