Back to Context7

Claim Your Library

docs/howto/claiming-libraries.mdx

1.0.3012.1 KB
Original Source

As a library owner, you can claim your library on Context7 to unlock advanced configuration options through a web-based admin panel. This gives you full control over how your documentation is parsed and presented to developers.

<Note>Library claiming is available for Git repositories, websites, and llms.txt sources.</Note>

Why Claim Your Library?

Claiming ownership provides several benefits:

  • Web-based configuration: Edit settings through a user-friendly interface instead of committing changes
  • Teamspace management: All project members can manage the library configuration
  • Version management: Add and manage multiple versions of your library documentation
  • Usage analytics: View metrics on how developers use your library's documentation
  • Higher refresh limits: Get higher rate limits for refresh operations to better manage your content
  • Apply for verification: Only owners can apply for the verified badge. Learn more about verification

Claiming Process

<Steps> <Step title="Navigate to the Admin Page"> You can access the admin page in two ways:
**From the Dashboard:**
Find your library in the dashboard and click the "Manage" button to open the admin configuration page.

<Frame>
  
</Frame>

**Via Direct URL:**
Go directly to your library's admin page at:

```
https://context7.com/{owner}/{repo}/admin
```

For example: `https://context7.com/vercel/next.js/admin`
</Step> <Step title="Open the Claim Modal"> If you haven't claimed the library yet, you'll see a "Claim Library" button in the header. Click it to open the claiming modal.
<Frame>
  
</Frame>
</Step> <Step title="Get Your Public Key"> In the claiming modal, you'll see a generated `context7.json` configuration with your unique public key:
<Frame>
  
</Frame>

The modal provides a JSON snippet like this:

```json
{
  "url": "https://context7.com/vercel/next.js",
  "public_key": "pk_abc123xyz..."
}
```

Click "Copy" to copy the configuration to your clipboard.
</Step> <Step title="Host the context7.json File"> <Tabs> <Tab title="Git Repository"> Create a `context7.json` file in the **root** of your repository with the copied content:
    ```json
    {
      "url": "https://context7.com/vercel/next.js",
      "public_key": "pk_abc123xyz..."
    }
    ```

    <Warning>
      The `url` must exactly match your library's URL on Context7, and the `public_key` must match the key shown in the modal.
    </Warning>

    Commit and push the file to your repository's default branch.
  </Tab>
  <Tab title="Website / llms.txt">
    Host the `context7.json` file anywhere under your library's base URL so it is publicly reachable. For example:

    ```
    https://docs.example.com/mylib/context7.json
    ```

    The file must contain the copied content:

    ```json
    {
      "url": "https://context7.com/websites/mylib",
      "public_key": "pk_abc123xyz..."
    }
    ```

    <Warning>
      The `url` must exactly match your library's URL on Context7, and the `public_key` must match the key shown in the modal.
    </Warning>

    Once the file is live, paste the full URL to your hosted `context7.json` into the input field shown in the modal.
  </Tab>
</Tabs>
</Step> <Step title="Verify Ownership"> Click "Claim Library". Context7 will fetch your `context7.json`, verify the URL and public key, and grant you access to the admin panel. </Step> </Steps>

Admin Panel Overview

After claiming your library, the admin page shows a full configuration editor with five main tabs:

  • Configuration: Edit all library settings
  • Chat: Embed an AI chat assistant on your documentation site
  • Benchmark: Evaluation of the quality of your library's documentation
  • Metrics: View usage statistics
  • Versions: Manage different versions and tags of your library

Configuration Fields

Basic Information

These fields are available for all library types.

FieldDescriptionLimits
Project TitleDisplay name for your library in Context7. Used when the LLM cannot generate a name with high confidence.Max 100 characters
DescriptionBrief description of your library's purpose.Max 500 characters

Source Settings

<Tabs> <Tab title="Git Repository"> | Field | Description | Limits | | ---------------------- | ----------------------------------------------------------------------------------------- | ------------------------------- | | **Branch** | Git branch to parse. Leave empty for default branch. | Max 100 characters | | **Folders to Include** | Specific folder paths to include when parsing. Leave empty to scan the entire repository. | Max 50 folders, 255 chars each | | **Folders to Exclude** | Folder paths or patterns to exclude from parsing. Supports glob patterns. | Max 50 patterns, 255 chars each | | **Files to Exclude** | Specific file names to exclude (filename only, not full path). | Max 100 files, 255 chars each |
#### Exclusion Pattern Examples

The exclusion fields support various pattern types:

```
node_modules     → Excludes any folder named "node_modules" anywhere
./build          → Excludes "build" only at repository root
**/dist          → Excludes any "dist" folder anywhere (globstar)
docs/**/internal → Excludes "internal" folders under docs
*.test           → Excludes folders ending with .test
```

<Note>
  `excludeFiles` only accepts filenames, not paths. Use `CHANGELOG.md` instead of
  `docs/CHANGELOG.md`.
</Note>
</Tab> <Tab title="Website"> | Field | Description | Limits | | ---------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------- | | **Base URL** | The root URL to crawl for documentation. | Max 100 characters | | **Display URL** | Optional URL shown to users instead of the base URL. | Max 500 characters | | **Keep Hash (URL Fragments)**| Whether to treat URLs with different hash fragments as distinct pages. Disabled by default. | Boolean | | **Keep Query Parameters** | Whether to treat URLs with different query strings as distinct pages. Enabled by default. | Boolean | | **Exclude URLs** | URL patterns to exclude from crawling. Supports wildcards. | Max 100 patterns | </Tab> </Tabs>

AI Instructions

FieldDescriptionLimits
Custom RulesBest practices and guidelines for AI coding assistants when using your library.Max 50 rules, 255 chars each

Example rules:

  • "Always use TypeScript for better type safety"
  • "Import components from the main package, not internal paths"
  • "Use environment variables for API keys, never hardcode them"

Advanced Settings

Available for Git repositories and websites.

FieldDescriptionLimits
Skip Automatic Version DetectionBy default, outdated library versions are automatically detected and excluded from indexing. Enable to include all versions regardless of age.Boolean
Redirect URLRedirect users to a different library. Leave empty to disable.Max 500 characters
Disallow IndexingOpt-out from Context7. When enabled, documentation content is removed and the library becomes inaccessible.Boolean

Managing Versions

The Versions tab lets you configure previous versions of your library that should be available in Context7.

<Frame> </Frame>

You can add versions using either:

  • Git tags: Reference a specific release tag (e.g., v1.2.0)
  • Git branches: Reference a branch for version-specific documentation (e.g., release-1.x)
LimitValue
Maximum versions20
Tag/branch nameMax 50 characters

Library Metrics

The Metrics tab provides insights into how developers are using your library through Context7.

<Frame> </Frame>

Usage Statistics

At the top of the metrics page, you'll see key usage numbers:

MetricDescription
Page ViewsNumber of times your library page was viewed on Context7
API Requests (TXT)Documentation requests via the REST API
MCP RequestsDocumentation requests via the MCP server (from AI coding assistants)

The metrics page also includes a usage chart showing trends over time, topic queries showing what developers ask about, and country distribution of requests.

<Note>All team members can view and edit library settings. See Teamspace Management for role details.</Note>

Removing Ownership

<Steps> <Step title="Go to the Admin Page"> Navigate to your library's admin page at `https://context7.com/admin/{owner}/{repo}`. </Step> <Step title="Open the Ownership Menu">Click the ownership menu in the header area.</Step> <Step title="Remove Ownership">Select "Remove Ownership" and confirm the action.</Step> </Steps> <Warning> Removing ownership keeps the admin configuration intact. Another user can claim the library and inherit the existing settings. </Warning>

Troubleshooting

"context7.json not found"

Ensure the file is:

  • Named exactly context7.json (lowercase)
  • Located in the repository root, not a subdirectory
  • Committed and pushed to the default branch

"URL mismatch"

The url field in your context7.json must exactly match:

https://context7.com/{owner}/{repo}

Check for typos, case sensitivity, and trailing slashes.

"Public key mismatch"

The public_key in your file must match the key shown in the claiming modal. Copy the entire key including the pk_ prefix.

Changes not appearing

After saving configuration changes, you may need to:

  • Manually trigger a refresh from the library page
  • Clear any cached documentation on your end