---
title: "List Projects"
method: GET
path: "/api/v1/admin/projects/"
tags: ["admin-projects"]
---

# List Projects

`GET /api/v1/admin/projects/`

List all projects with pagination, status filtering, and search.

## Query parameters

- `status` string, nullable — Filter by project status
- `internal_status` string, nullable — Filter by admin-only internal project status. Use 'unset' for no status.
- `search` string, nullable — Search by project name or user email
- `sort_by` 'created_at' | 'updated_at' | 'name' | 'status' | 'internal_status' | 'priority' | 'target_delivery_date' — Sort field
- `sort_order` 'asc' | 'desc' — Sort order
- `offset` integer
- `limit` integer

## Response `200`

Successful Response

- PaginatedResponseAdminProjectListItem
  - `items` AdminProjectListItem[], required
    - `id` string, uuid, required
    - `name` string, required
    - `description` string, nullable
    - `status` string, required
    - `internal_status` string, nullable
    - `internal_notes` string, nullable
    - `priority` string, required
    - `target_delivery_date` string, date, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `user` UserSummary, required — Minimal user info for denormalized list views.
      - `id` string, uuid, required
      - `email` string, required
      - `first_name` string, required
      - `last_name` string, required
      - `company` string, nullable
    - `part_count` integer
    - `quote_count` integer
    - `latest_quote_intent` string, nullable
    - `quote_needs_resend` boolean
    - `total_amount_cents` integer, nullable
    - `latest_quote_customer_name_override` string, nullable
    - `latest_quote_customer_email_override` string, nullable
    - `po_number` string, nullable
    - `tracking_number` string, nullable
    - `tracking_url` string, nullable
    - `request_for_order_date` string, date-time, nullable
    - `order_placed_at` string, date-time, nullable
    - `payment_method_label` string, nullable
    - `estimated_ship_date` string, date-time, nullable
    - `selected_delivery_option_label` string, nullable
    - `selected_delivery_option_lead_days` integer, nullable
    - `price_cents` integer, nullable
    - `payment_state` string, nullable
    - `invoice_issued_at` string, date-time, nullable
    - `blocked_on` string, nullable
    - `manufacturer` ManufacturerSummary — ADMIN-ONLY buy-side (manufacturer) summary on the projects overview. Surfaces who is making the parts + the buy-side schedule/AP state for the WINNING supplier. Two shapes (plan Decision 3 — never null-that-looks-empty): * **Sourced** (a supplier won + a SupplierOrder exists): ``sourced=True``, ``name`` = the won supplier's :attr:`SupplierContact.name`, plus the buy-side mfg status / ETA / tracking / payment state. * **In-house / unsourced** (no won SupplierOrder): ``sourced=False`` with ``status="in_house"`` and every other field ``None``. This is the EXPLICIT empty state — the FE renders "In-house" rather than a blank. CRITICAL: this object lives ONLY on admin schemas. It must NEVER be added to the customer-facing ``ProjectResponse`` — the customer never sees who manufactures their parts or what we pay the supplier.
      - `sourced` boolean
      - `name` string, nullable
      - `their_price_cents` integer, nullable
      - `their_lead_time_days` integer, nullable
      - `mfg_status` string, nullable
      - `mfg_eta` string, date, nullable
      - `mfg_actual_shipped_at` string, date, nullable
      - `mfg_tracking_number` string, nullable
      - `buy_side_payment_state` string, nullable
      - `we_paid_at` string, date-time, nullable
    - `at_risk` boolean
  - `total` integer, required
  - `offset` integer, required
  - `limit` integer, required
  - `has_more` boolean, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/prototyping/apis/prototyping-io-api.md) · [All operations](https://skmtc.dev/prototyping/apis/prototyping-io-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/prototyping/prototyping-io-api/revisions/f4a0079fbb57/schema)
