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

# Projects

> Manage research projects that group experiments, papers, and tasks.

# Projects API

Projects group related experiments, papers, and tasks into a named research initiative. A lab typically has 2-8 active projects covering distinct research threads (e.g., "Galaxy Chirality Survey", "Non-Gaussianity Forecast", "PTA Background").

## List Projects

<ParamField query="labId" type="string" required>
  Convex ID of the lab.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl "https://www.hubify.com/api/v1/projects?labId=$LAB_ID" \
    -H "Authorization: Bearer $HUBIFY_TOKEN"
  ```

  ```typescript TypeScript theme={null}
  const { projects, total } = await hubify.projects.list({ labId });
  ```
</CodeGroup>

<ResponseField name="projects" type="object[]" required>
  All projects for the lab.

  <Expandable title="Project">
    <ResponseField name="_id" type="string" required>Convex document ID.</ResponseField>
    <ResponseField name="name" type="string" required>Project name.</ResponseField>
    <ResponseField name="description" type="string">Project description.</ResponseField>
    <ResponseField name="status" type="string" required>One of `active`, `paused`, `complete`, `archived`.</ResponseField>
    <ResponseField name="goal" type="string">Primary research goal or hypothesis.</ResponseField>
    <ResponseField name="experimentCount" type="number">Number of linked experiments.</ResponseField>
    <ResponseField name="dueDate" type="number">Target completion date (Unix ms), if set.</ResponseField>
    <ResponseField name="createdAt" type="number">Unix ms.</ResponseField>
  </Expandable>
</ResponseField>

## Create Project

<ParamField body="labId" type="string" required>Convex lab ID.</ParamField>
<ParamField body="name" type="string" required>Project name.</ParamField>
<ParamField body="description" type="string">Project description.</ParamField>
<ParamField body="goal" type="string">Primary research goal or hypothesis.</ParamField>
<ParamField body="status" type="string" default="active">Initial status. One of `active`, `paused`.</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://www.hubify.com/api/v1/projects \
    -H "Authorization: Bearer $HUBIFY_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "labId": "$LAB_ID",
      "name": "Galaxy Chirality Survey",
      "goal": "Measure left-right handedness asymmetry to 5-sigma across three redshift bins",
      "status": "active"
    }'
  ```
</CodeGroup>

<ResponseField name="id" type="string" required>New project Convex ID.</ResponseField>
<ResponseField name="status" type="string" required>Initial status.</ResponseField>
