> ## Documentation Index
> Fetch the complete documentation index at: https://context7.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Claim Your Library

> Verify ownership and manage your library's configuration via the admin panel

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](/howto/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>
      <img src="https://mintcdn.com/context7/OllxQOl-xdXnoIXF/images/dashboard/admin/library-manage-button.png?fit=max&auto=format&n=OllxQOl-xdXnoIXF&q=85&s=34373cf954e476c347464e59cc27eacc" alt="Manage button on library card" width="2220" height="820" data-path="images/dashboard/admin/library-manage-button.png" />
    </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>
      <img src="https://mintcdn.com/context7/Ch5Dp-PgzVPF90qc/images/dashboard/admin/claim-library-button.png?fit=max&auto=format&n=Ch5Dp-PgzVPF90qc&q=85&s=1d770e457aa8e2f4deadaa89286828eb" alt="Claim Library button" width="1045" height="745" data-path="images/dashboard/admin/claim-library-button.png" />
    </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>
      <img src="https://mintcdn.com/context7/Ch5Dp-PgzVPF90qc/images/dashboard/admin/claim-modal.png?fit=max&auto=format&n=Ch5Dp-PgzVPF90qc&q=85&s=9ab4f1a78b30e873d00ff65c6d03382e" alt="Claim library modal" width="863" height="794" data-path="images/dashboard/admin/claim-modal.png" />
    </Frame>

    The modal provides a JSON snippet like this:

    ```json theme={null}
    {
      "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 theme={null}
        {
          "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 theme={null}
        {
          "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.

| Field             | Description                                                                                               | Limits             |
| ----------------- | --------------------------------------------------------------------------------------------------------- | ------------------ |
| **Project Title** | Display name for your library in Context7. Used when the LLM cannot generate a name with high confidence. | Max 100 characters |
| **Description**   | Brief 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

| Field            | Description                                                                     | Limits                       |
| ---------------- | ------------------------------------------------------------------------------- | ---------------------------- |
| **Custom Rules** | Best 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.

| Field                                | Description                                                                                                                                    | Limits             |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| **Skip Automatic Version Detection** | By default, outdated library versions are automatically detected and excluded from indexing. Enable to include all versions regardless of age. | Boolean            |
| **Redirect URL**                     | Redirect users to a different library. Leave empty to disable.                                                                                 | Max 500 characters |
| **Disallow Indexing**                | Opt-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>
  <img src="https://mintcdn.com/context7/Ch5Dp-PgzVPF90qc/images/dashboard/admin/managing-versions.png?fit=max&auto=format&n=Ch5Dp-PgzVPF90qc&q=85&s=2b05dc21dc5f23107e60a99479be3810" alt="Versions tab" width="994" height="832" data-path="images/dashboard/admin/managing-versions.png" />
</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`)

| Limit            | Value             |
| ---------------- | ----------------- |
| Maximum versions | 20                |
| Tag/branch name  | Max 50 characters |

## Library Metrics

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

<Frame>
  <img src="https://mintcdn.com/context7/Ch5Dp-PgzVPF90qc/images/dashboard/admin/library-metrics.png?fit=max&auto=format&n=Ch5Dp-PgzVPF90qc&q=85&s=638e6c4471d51cd183d7455bb713fcd4" alt="Metrics tab" width="978" height="1072" data-path="images/dashboard/admin/library-metrics.png" />
</Frame>

### Usage Statistics

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

| Metric                 | Description                                                           |
| ---------------------- | --------------------------------------------------------------------- |
| **Page Views**         | Number of times your library page was viewed on Context7              |
| **API Requests (TXT)** | Documentation requests via the REST API                               |
| **MCP Requests**       | Documentation 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 library settings; owners and admins can edit them. See [Teamspace Management](/howto/teamspace) 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/{owner}/{repo}/admin`.
  </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
