---
title: "Get projects"
method: GET
path: "/v1/projects"
tags: ["v1 projects"]
---

# Get projects

`GET /v1/projects`

Get projects accessible to the caller.

    This endpoint:
    - **No user_id param** (or user_id == root user): root user → returns **all** projects across the org
    - **user_id param** (sub-user): returns only that sub-user's projects
    - Includes project metadata (name, description, creation date)

    **Authentication**: Requires valid API key or JWT token

## Query parameters

- `user_id` string, nullable

## Response `200`

Successful Response

- GetUserProjectsResponse — Response model for getting user projects
  - `projects` ProjectResponse[], required — List of projects
    - `project_id` string, required
    - `user_id` string, required
    - `name` string, required
    - `description` string, nullable, required
    - `project_type` string, nullable — Project type override: 'creative_design' or 'general'. When set, skips LLM classification.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, nullable, required
    - `user_name` string, nullable, required
    - `user_email` string, nullable, required
  - `total_count` integer, required — Total number of projects
  - `user_id` string, nullable — User ID (set when filtering by user)
  - `org_id` string, nullable — Organization ID (set when returning org-wide projects)

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/elicitlabs/apis/elicit-labs-api.md) · [All operations](https://skmtc.net/elicitlabs/apis/elicit-labs-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elicitlabs/elicit-labs-api/revisions/27701839a070/schema)
