---
title: "List Versions"
method: GET
path: "/api/v1/parts/{part_id}/cad/"
tags: ["cad-uploads"]
---

# List Versions

`GET /api/v1/parts/{part_id}/cad/`

List all non-deleted CAD file versions for a part, newest first.

## Path parameters

- `part_id` string, uuid, required

## Response `200`

Successful Response

- CadFileVersionResponse[]
  - `id` string, uuid, required
  - `version_number` integer, required
  - `is_latest` boolean, required
  - `file_name` string, required
  - `original_file_name` string, required
  - `file_format` string, required
  - `file_size` integer, required
  - `status` string, required
  - `processing_step` string, nullable
  - `failure_reason` string, nullable
  - `latest_run_id` string, uuid, nullable
  - `analysis_milestone` string, nullable
  - `analysis_authority` string, nullable
  - `analysis_seq` integer, nullable
  - `preliminary_price` PreliminaryPriceResponse — Compact public projection of a run-only Lane A pricing result. Unknown fields are deliberately ignored so internal raw-midpoint and component-audit telemetry can never leak through REST or SSE serialization.
    - `status` 'ready' | 'abstained', required
    - `authority` 'preliminary'
    - `non_payable` true
    - `currency` 'USD'
    - `unit_price` PreliminaryPriceRange — Inclusive USD price interval calibrated for holdout coverage.
      - `low` number, required
      - `high` number, required
    - `total_price` PreliminaryPriceRange — Inclusive USD price interval calibrated for holdout coverage.
      - `low` number, required
      - `high` number, required
    - `quantity` integer, nullable
    - `cohort` string, nullable
    - `assumptions` string[]
    - `missing_inputs` string[]
    - `abstention_reason` 'missing_specs' | 'unsupported_process_material' | 'multi_body_or_assembly' | 'context_unavailable' | 'identity_unavailable' | 'stock_out_of_envelope' | 'implausible_fill' | 'machine_or_setup_ambiguous' | 'pending_drawing' | 'custom_spec' | 'low_primitive_confidence' | 'calibration_unavailable' | 'cohort_disabled' | 'inputs_changing', nullable
    - `model_version` string, required
    - `pricing_config_generation` string, required
    - `calibration_version` string, nullable
    - `calibration_hash` string, nullable
    - `pricing_input_hash` string, required
    - `generated_at` string, date-time, required
  - `glb_url` string, nullable
  - `thumbnail_url` string, nullable
  - `topology_url` string, nullable
  - `width` string, nullable
  - `height` string, nullable
  - `depth` string, nullable
  - `dimension_unit` string
  - `volume` string, nullable
  - `surface_area` string, nullable
  - `wall_thickness_min` string, nullable
  - `is_manifold` boolean, nullable
  - `mesh_quality_score` number, nullable
  - `dfm_issues` object, nullable
  - `geometry_metadata` object, nullable
  - `detected_features` object, nullable
  - `feature_projection_v2` object, nullable
  - `process_dfm_results` object, nullable
  - `dfm_score` string, nullable
  - `ai_dfm_synthesis` object, nullable
  - `analysis_status` 'not_started' | 'pending_cad' | 'computing' | 'complete' | 'failed' — Single source of truth for deterministic DFM/pricing readiness. Replaces the fragile inference from ``dfm_pending`` + ``process_dfm_results`` + ``ai_dfm_synthesis``. See ``.claude/plans/active/dfm-cost-stuck-state-elimination.md``. NOT_STARTED: No specs set yet. PENDING_CAD: Specs set, CAD pipeline still running — finalize will pick up. COMPUTING: DFM rule engine / pricing refresh in flight. COMPLETE: DFM and pricing written; AI/Ollie synthesis is optional. FAILED: See ``analysis_error_message`` + ``analysis_failed_step``.
  - `analysis_error_message` string, nullable
  - `analysis_failed_step` string, nullable
  - `error_message` string, nullable
  - `notes` string, nullable
  - `part_id` string, uuid, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, 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)
