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

> Interact with Modrinth Projects

# ProjectManager

```ts theme={"theme":"github-dark-high-contrast"}
export class ProjectManager
```

# Table of Contents

### Methods

* [searchProjects()](#searchProjects)
* [getProject()](#getProject)
* [getMultipleProjects()](#getMultipleProjects)
* [getRandomProjects()](#getRandomProjects)
* [validateProject()](#validateProject)
* [getProjectDependencies()](#getProjectDependencies)
* [getProjectTeamMembers()](#getProjectTeamMembers)

## Methods

<AccordionGroup>
  <Accordion title="searchProjects()">
    <div id="searchProjects" />

    <ResponseField name="searchProjects(query, facets?, limit?, index?, offset?)" pre={["async"]}>
      Search projects on Modrinth

      <ResponseField name="query" type="string" required />

      <ResponseField name="facets" type="string" default=" " />

      <ResponseField name="limit" type="number" default={10} />

      <ResponseField name="index" type="ProjectSearchIndices" default="ProjectSearchIndices.DOWNLOADS">
        Defines the sorting order of the results.

        Enum: [ProjectSearchIndices](/reference/enum/ProjectSearchIndices)
      </ResponseField>

      <ResponseField name="offset" type="number" default={0} />

      *Returns [Response](/reference/type/Response)\<[Project](/reference/type/Project)\[]>*
    </ResponseField>
  </Accordion>

  <Accordion title="getProject()">
    <div id="getProject" />

    <ResponseField name="getProject(id_or_slug)" pre={["async"]}>
      Get a specific Modrinth project by ID or slug

      <ResponseField name="id_or_slug" type="string" required />

      *Returns [Response](/reference/type/Response)\<[Project](/reference/type/Project) | [null](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null)>*
    </ResponseField>
  </Accordion>

  <Accordion title="getMultipleProjects()">
    <div id="getMultipleProjects" />

    <ResponseField name="getMultipleProjects(...ids_or_slugs)" pre={["async"]}>
      Get multiple Modrinth projects at once by their ID or slug

      <ResponseField name="ids_or_slugs" type="string[]" required />

      *Returns [Response](/reference/type/Response)\<[Project](/reference/type/Project)\[]>*
    </ResponseField>
  </Accordion>

  <Accordion title="getRandomProjects()">
    <div id="getRandomProjects" />

    <ResponseField name="getRandomProjects(count)" pre={["async"]}>
      Get random projects from Modrinth

      <ResponseField name="count" type="number" default={10} />

      *Returns [Response](/reference/type/Response)\<[Project](/reference/type/Project)\[]>*
    </ResponseField>
  </Accordion>

  <Accordion title="validateProject()">
    <div id="validateProject" />

    <ResponseField name="validateProject(id_or_slug)" pre={["async"]}>
      Validate a Modrinth project

      <ResponseField name="id_or_slug" type="string" required />

      *Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)***
    </ResponseField>
  </Accordion>

  <Accordion title="getProjectDependencies()">
    <div id="getProjectDependencies" />

    <ResponseField name="getProjectDependencies(id_or_slug)" pre={["async"]}>
      Get a list of dependencies for a Modrinth project

      <ResponseField name="id_or_slug" type="string" required />

      *Returns [Response](/reference/type/Response)\<[ProjectDependencySearchResponse](/reference/type/ProjectDependencySearchResponse)>*
    </ResponseField>
  </Accordion>

  <Accordion title="getProjectTeamMembers()">
    <div id="getProjectTeamMembers" />

    <ResponseField name="getProjectTeamMembers(id_or_slug)" pre={["async"]}>
      Get a list team members associated with a Modrinth project

      <ResponseField name="id_or_slug" type="string" required />

      *Returns [Response](/reference/type/Response)\<[TeamMember](/reference/type/TeamMember)\[]>*
    </ResponseField>
  </Accordion>
</AccordionGroup>
