---
title: "List the projects of a workspace"
method: GET
path: "/support/workspaces/{workspace_id}/projects"
tags: ["Workspaces Support"]
---

# List the projects of a workspace

`GET /support/workspaces/{workspace_id}/projects`

## Request

- Base URL: `https://app.mammoth.io/api/v2`
- URL: `https://app.mammoth.io/api/v2/support/workspaces/{workspace_id}/projects`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-KEY` and API key in header `X-API-SECRET` and API key in header `X-WORKSPACE-ID`

The workspace's projects, plus the projects of an unfinished move to or from it, each with its unfinished move or null. Tech admin only.

## Path parameters

- `workspace_id` integer, required: Id of the workspace to work with

## Response `200`

Request fulfilled, document follows

- WorkspaceProjectsResponse
  - `projects` WorkspaceProjectSchema[], required
    - `id` integer, required
    - `name` string, required
    - `status` string, required
    - `active_move` MoveSchema
      - `id` integer, required
      - `project_id` integer, required
      - `source_workspace_id` integer, required
      - `target_workspace_id` integer, required
      - `status` 'queued' | 'copying' | 'switched' | 'done' | 'aborted', required: Where a project move stands: QUEUED, COPYING and SWITCHED are unfinished.
      - `error` string, nullable: Why the move stopped; null while it runs or when it finished
      - `stalled` boolean, required: True when the move is unfinished, has no error and no run carries it (its worker died); starting the move again resumes it
      - `progress` MoveProgressSchema, required
        - `tables_total` integer, required
        - `tables_copied` integer, required
      - `purge` MovePurgeSchema
        - `status` 'queued' | 'running' | 'done' | 'failed', required: Where the purge of a finished move's source copies stands.
        - `stalled` boolean, required: True when the purge is queued or running and no run carries it (its worker died or its task was lost); asking for the purge again resumes it
        - `removed_files` integer, required: Source files the purge deleted
        - `bytes_freed` integer, required: Size of the files it deleted
        - `skipped` string[], required: Files a check kept in place, one `name: reason` line each
        - `failed` string[], required: Files whose delete did not work, one `name: reason` line each
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `purgeable_move` MoveSchema
      - `id` integer, required
      - `project_id` integer, required
      - `source_workspace_id` integer, required
      - `target_workspace_id` integer, required
      - `status` 'queued' | 'copying' | 'switched' | 'done' | 'aborted', required: Where a project move stands: QUEUED, COPYING and SWITCHED are unfinished.
      - `error` string, nullable: Why the move stopped; null while it runs or when it finished
      - `stalled` boolean, required: True when the move is unfinished, has no error and no run carries it (its worker died); starting the move again resumes it
      - `progress` MoveProgressSchema, required
        - `tables_total` integer, required
        - `tables_copied` integer, required
      - `purge` MovePurgeSchema
        - `status` 'queued' | 'running' | 'done' | 'failed', required: Where the purge of a finished move's source copies stands.
        - `stalled` boolean, required: True when the purge is queued or running and no run carries it (its worker died or its task was lost); asking for the purge again resumes it
        - `removed_files` integer, required: Source files the purge deleted
        - `bytes_freed` integer, required: Size of the files it deleted
        - `skipped` string[], required: Files a check kept in place, one `name: reason` line each
        - `failed` string[], required: Files whose delete did not work, one `name: reason` line each
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required

## Other responses

- `400`: Bad request syntax or unsupported method
- `403`: Request forbidden -- authorization will not help

---

[API](https://skmtc.dev/mammoth/apis/mammoth-analytics.md) · [All operations](https://skmtc.dev/mammoth/apis/mammoth-analytics/llms.txt) · [OpenAPI document](https://skmtc.dev/mammoth/apis/mammoth-analytics/revisions/4b2c943a00dc?raw)
