> ## 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.

# Add a Docs7 site

> Connect a GitHub repository. Docs7 checks that both the Docs7 GitHub App and the caller's own GitHub account can read the repository. The caller must have connected GitHub in the Context7 dashboard once (the dashboard stores the GitHub authorization); without it the answer is 400 `github_access_missing`. `hosting` chooses whether Docs7 publishes the docs (`"on"`, first build starts) or the site is added for the agents only (`"off"`); without it, a `docsPath` with `docs.json` or `mint.json` is published and any other is added for the agents only. Developers can set only `repoUrl`, `branch`, `docsPath`, `context7Index` and `hosting`. Docs7 Free includes 3 sites and public repositories only.



## OpenAPI

````yaml https://context7.com/openapi.json post /v2/teamspaces/{teamspaceId}/sites
openapi: 3.0.0
info:
  title: Context7 Public API
  description: >-
    The Context7 Public API provides programmatic access to library
    documentation and search functionality. Get up-to-date documentation and
    code examples for any library.
  version: 2.0.0
  contact:
    name: Context7 Support
    url: https://context7.com
    email: support@context7.com
servers:
  - url: https://context7.com/api
    description: Production server
security: []
tags:
  - name: Search
    description: Search for libraries in the Context7 database
  - name: Context
    description: Retrieve documentation context for queries
  - name: Ask
    description: Answer questions from a website registered with Context7 Ask
  - name: Refresh
    description: Refresh existing libraries to fetch latest documentation
  - name: Policies
    description: Manage teamspace access policies and filters
  - name: Add Library
    description: Submit new libraries for documentation processing
  - name: Metrics
    description: Retrieve usage metrics for libraries
  - name: Usage
    description: See member and teamspace API usage
  - name: Teamspaces
    description: >-
      Teamspaces the caller is a member of. The management API
      (`/v2/teamspaces/*`) accepts a Context7 API key, which reaches only its
      own teamspace and can make changes or read personal data only when it was
      created with write access (other keys can only read and get 403
      `write_access_required` on writes and on personal data), or an OAuth token
      issued for the Context7 Admin MCP server
      (`https://admin.mcp.context7.com/mcp`), which reaches every teamspace of
      the user. A browser session is not accepted.
  - name: Teamspace Admin
    description: >-
      Members, invitations, rules, library policies and requests, usage and the
      spending limit of a teamspace. Every API key can read rules, policies,
      usage and the spending limit. Changes, and reading members, invitations,
      the invite link and library requests (they name people), need an API key
      created with **Write access** ticked (other keys get 403
      `write_access_required`), or the Context7 Admin MCP sign-in.
  - name: Teamspace Libraries
    description: >-
      A teamspace's libraries: its private sources and the libraries it has
      claimed. Add, refresh, configure, version, claim and remove them, and read
      their parse state and usage. A library id `/owner/repo` is two path
      segments. Every API key can read. Changes need an API key created with
      **Write access** ticked (other keys get 403 `write_access_required`), or
      the Context7 Admin MCP sign-in.
  - name: Docs7 Sites
    description: >-
      Docs7 documentation sites of a teamspace: settings, custom domains,
      deployments, previews and the Docs7 agents. Any member can read; owners
      and admins can change; developers can add a site, publish one added for
      the agents only, and rebuild. Sites deployed with the `docs7 deploy` CLI
      have `source: "local"`; operations marked GitHub-only answer 404 for them.
      Every API key can read, except feature requests and the GitHub account
      behind a build (personal data). Changes, and those reads, need an API key
      created with **Write access** ticked (other keys get 403
      `write_access_required`), or the Context7 Admin MCP sign-in.
  - name: Docs7 Analytics
    description: >-
      Traffic of one Docs7 site: visitors, AI crawlers, searches, assistant
      questions and page feedback. Docs7 Free reads the last 7 days, Docs7 Pro
      the last 90. Every API key can read the visitor, crawler and path reports.
      Searches, questions, conversations, feedback and the raw records
      (`explore`) are personal data and need an API key created with **Write
      access** ticked, or the Context7 Admin MCP sign-in.
  - name: Ask Sites
    description: >-
      Manage a teamspace's Context7 Ask sites: add, verify, remove, and read
      their analytics and question log. Every API key can read the sites.
      Changes, and reading the analytics and question log (visitor questions),
      need an API key created with **Write access** ticked (other keys get 403
      `write_access_required`), or the Context7 Admin MCP sign-in.
paths:
  /v2/teamspaces/{teamspaceId}/sites:
    post:
      tags:
        - Docs7 Sites
      summary: Add a Docs7 site
      description: >-
        Connect a GitHub repository. Docs7 checks that both the Docs7 GitHub App
        and the caller's own GitHub account can read the repository. The caller
        must have connected GitHub in the Context7 dashboard once (the dashboard
        stores the GitHub authorization); without it the answer is 400
        `github_access_missing`. `hosting` chooses whether Docs7 publishes the
        docs (`"on"`, first build starts) or the site is added for the agents
        only (`"off"`); without it, a `docsPath` with `docs.json` or `mint.json`
        is published and any other is added for the agents only. Developers can
        set only `repoUrl`, `branch`, `docsPath`, `context7Index` and `hosting`.
        Docs7 Free includes 3 sites and public repositories only.
      operationId: createDocsSite
      parameters:
        - name: teamspaceId
          in: path
          required: true
          description: Teamspace id.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Docs7CreateSiteRequest'
      responses:
        '201':
          description: The new site
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Docs7Site'
                  deploymentId:
                    type: string
                    format: uuid
                    nullable: true
                    description: The first build, when one started.
        '400':
          description: >-
            Invalid body (`invalid_payload`, with `details`), docs folder
            missing (`docs_path_missing`), a custom domain on a repository
            without docs config (`docs_config_missing`), or no GitHub access
            (`github_access_missing`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Docs7Error'
              example:
                error: github_access_missing
                message: >-
                  Give your GitHub account and the Docs7 GitHub App access to
                  this repository, then try again
        '401':
          description: Missing or invalid bearer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Docs7Error'
              example:
                error: unauthorized
                message: Authentication required.
        '403':
          description: >-
            Role not allowed (`forbidden`), or the plan does not allow it
            (`docs7_pro_required`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Docs7Error'
              example:
                error: docs7_pro_required
                message: >-
                  Docs7 Free includes 3 sites. Upgrade to Docs7 Pro to add
                  another.
        '404':
          description: No such site in this teamspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Docs7Error'
              example:
                error: not_found
                message: Site not found.
        '409':
          description: >-
            The repository, slug or domain is taken (`site_conflict`), or the
            teamspace is changing (`project_busy`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Docs7Error'
              example:
                error: site_conflict
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Docs7Error'
              example:
                error: internal_error
                message: Internal server error.
        '502':
          description: GitHub could not be read
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Docs7Error'
              example:
                error: source_check_failed
      security:
        - bearerAuth: []
components:
  schemas:
    Docs7CreateSiteRequest:
      type: object
      required:
        - repoUrl
        - docsPath
      properties:
        repoUrl:
          type: string
          format: uri
          example: https://github.com/acme/docs
        branch:
          type: string
          minLength: 1
          maxLength: 255
          description: 'Production branch. Default: the repository''s default branch.'
        docsPath:
          type: string
          description: Docs folder; `.` for the root.
          example: .
        context7Index:
          type: boolean
          description: Also index the repository in Context7.
        hosting:
          type: string
          enum:
            - 'on'
            - 'off'
          description: >-
            `on` publishes the docs and needs `docs.json` or `mint.json` in
            `docsPath`; without one the answer is 400 `docs_config_missing`, and
            its message names the folders that have one. `off` adds the
            repository for the agents only. Default: `on` when `docsPath` has a
            config, else `off`.
        slug:
          type: string
          minLength: 3
          maxLength: 40
          pattern: ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$
          description: >-
            First label of the platform hostname. Default: `owner-repo`. Owner
            or admin.
        customDomain:
          type: string
          description: Owner or admin.
        customDomainPath:
          type: string
          description: Required with `proxy` routing. Owner or admin.
        customDomainRouting:
          type: string
          enum:
            - dns
            - proxy
          description: Required with `customDomain`. Owner or admin.
        setupId:
          type: string
          pattern: ^[a-z0-9]{8,32}$
          description: >-
            The setup ID from the Docs7 Add page's agent prompt. The Add page
            uses it to follow this site and its first build.
      additionalProperties: false
    Docs7Site:
      type: object
      required:
        - id
        - projectId
        - repoUrl
        - docsPath
        - hosting
        - platformHostname
        - customDomainStatus
        - context7Index
        - improveSchedule
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
          format: uuid
        projectId:
          type: string
          format: uuid
          description: Teamspace id.
        createdBy:
          type: string
          nullable: true
        repoUrl:
          type: string
          format: uri
        repositoryId:
          type: string
          description: GitHub repository id.
        installationId:
          type: integer
          description: GitHub App installation id.
        branch:
          type: string
          description: Pinned production branch. Null follows the default branch.
          nullable: true
        defaultBranch:
          type: string
          nullable: true
        docsPath:
          type: string
          description: Docs folder in the repository; `.` is the root.
        hosting:
          type: string
          enum:
            - 'off'
            - 'on'
          description: '`off`: added for the agents only, nothing is published.'
        analyticsUrl:
          type: string
          format: uri
          description: >-
            External docs URL for browser analytics of a site that Docs7 does
            not host.
          nullable: true
        workerName:
          type: string
        platformHostname:
          type: string
          example: acme-docs.docs7.io
        customDomain:
          type: string
          nullable: true
        customDomainPath:
          type: string
          description: Path prefix the docs are served under on the custom domain.
          nullable: true
        customDomainRouting:
          type: string
          enum:
            - dns
            - proxy
          nullable: true
        customHostnameId:
          type: string
          nullable: true
        customDomainStatus:
          type: string
          enum:
            - none
            - pending_ownership
            - pending_dns
            - pending_validation
            - pending_certificate
            - pending_proxy
            - active
            - failed
        customDomainError:
          type: string
          nullable: true
        customDomainRecords:
          type: array
          items:
            $ref: '#/components/schemas/Docs7DnsRecord'
        context7Index:
          type: boolean
          description: Whether the repository is indexed in Context7.
        context7LibraryName:
          type: string
          example: /acme/docs
        improveSchedule:
          type: string
          enum:
            - 'off'
            - daily
            - weekly
          description: How often the Context7 Agent runs on its own.
        pullRequestReview:
          $ref: '#/components/schemas/Docs7PullRequestReview'
        codeWatch:
          type: object
          required:
            - enabled
            - repositories
          properties:
            enabled:
              type: boolean
            repositories:
              type: array
              items:
                type: object
                required:
                  - repositoryId
                  - repoUrl
                properties:
                  repositoryId:
                    type: string
                  repoUrl:
                    type: string
                    format: uri
          description: >-
            Code Watch Agent settings: code repositories whose merged pull
            requests can change the docs.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        buildFixSchedule:
          type: string
          enum:
            - 'off'
            - after_build
            - daily
            - weekly
          description: >-
            When the Build Fix Agent fixes the issues of the latest production
            build (hosted sites).
        snippetSchedule:
          type: string
          enum:
            - 'off'
            - monthly
          description: >-
            Whether the Example Check Agent runs every code example of the docs
            once a month (Docs7 Pro).
      description: A Docs7 site built from a GitHub repository.
    Docs7Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error code (snake_case).
        message:
          type: string
          description: Human-readable message. Most errors have one.
        details:
          type: object
          description: Validation details on `invalid_payload`.
      description: Docs7 error response
    Docs7DnsRecord:
      type: object
      required:
        - purpose
        - type
        - name
        - value
      properties:
        purpose:
          type: string
          enum:
            - domain_ownership
            - tls_certificate
        type:
          type: string
          enum:
            - CNAME
            - TXT
        name:
          type: string
        value:
          type: string
      description: A DNS record to add for the custom domain.
    Docs7PullRequestReview:
      type: object
      required:
        - enabled
        - response
      properties:
        enabled:
          type: boolean
        response:
          type: string
          enum:
            - comment
            - pull_request
            - commit
          description: >-
            What the agent does with its fixes. The findings comment is always
            posted, and every check always runs.
      description: PR Review Agent settings.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Get your API key at
        [context7.com/dashboard](https://context7.com/dashboard). Treat your API
        key like a password and store it securely. Every key can read the
        management API (`/v2/teamspaces/*`), except personal data: member and
        invitation emails, library requesters, visitor questions, Docs7 reader
        searches, conversations, feedback and feature requests, and the GitHub
        account behind a build. To read those or make changes there, the key
        must be created with **Write access** ticked; other keys get 403
        `write_access_required`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.