---
title: "Get Step Analysis Status"
method: GET
path: "/designs/jobs/{job_id}"
tags: ["designs"]
---

# Get Step Analysis Status

`GET /designs/jobs/{job_id}`

## Request

- Base URL: `https://api.rmfg.com`
- URL: `https://api.rmfg.com/designs/jobs/{job_id}`
- Auth: one of:
  - API key in header `rmfg_key`
  - API key in header `supabase_key`
  - API key in header `supabase_refresh_key`
  - API key in header `x-session-token`

Return durable job state to the user/session that created the upload.

## Path parameters

- `job_id` string, required

## Response `200`

Successful Response

- StepAnalysisJobStatus: Owner-scoped status returned while a STEP analysis job progresses.
  - `job_id` string, required
  - `status` 'pending' | 'queued' | 'processing' | 'retrying' | 'ready' | 'failed', required
  - `file_name` string, required
  - `attempts` integer, required
  - `error` string, nullable
  - `preview_status` 'pending' | 'queued' | 'processing' | 'ready' | 'failed'
  - `preview_error` string, nullable
  - `artifact_status` 'queued' | 'processing' | 'retrying' | 'ready' | 'failed', nullable
  - `artifact_error` string, nullable
  - `result` AssemblyResponse: Response model for multi-part design processing
    - `assembly` Assembly, required
      - `id` string, nullable
      - `part_count` integer, required
      - `file_name` string, nullable
      - `bounding_dimensions` number[]
      - `part_locations` PartLocation[]
        - `part_id` string, required
        - `transformation_matrix` array[], required
          - number[]
        - `interior_point` Point3D
          - `x` number, required
          - `y` number, required
          - `z` number, required
      - `cad_status` 'pending' | 'processing' | 'ready' | 'failed', nullable
      - `cad_job_id` string, nullable
    - `designs` Design[], required
      - `id` string, required: The unique identifier for the design
      - `file_name` string, required: The original name of the file
      - `part_type` 'sheet' | 'tube'
      - `part_name` string, nullable
      - `user_id` string, nullable
      - `file_url` string, required
      - `file_size` integer, required
      - `gltf_url` string, required
      - `flat_pattern_gltf_url` string, required
      - `bends` Bend[], required
        - `id` integer, required
        - `angle` number, required
        - `radius` number, required
        - `location` BentLocation, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `direction` BentLocation, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `length` number, required
        - `line_start` BentLocation
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `line_end` BentLocation
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `distortion_zone_sides` BendDistortionZoneSide[]
          - `source_hole_id` integer, nullable
          - `edge_start` BentLocation, required
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `edge_end` BentLocation, required
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `outward_direction` BentLocation, required
            - `x` number, required
            - `y` number, required
            - `z` number, required
      - `thickness` number, required
      - `surface_area_cm2` number, required
      - `bounding_dimensions` number[], required
      - `flat_bounding_dimensions_mm` number[], required
      - `manufacturability` 'manufacturable' | 'not_within_shippable_dimensions' | 'not_within_manufacturable_dimensions', required
      - `manufacturability_details` string[], nullable, required
      - `cut_length_mm` number, nullable
      - `hole_count` integer, nullable
      - `flat_pattern_number_of_interior_boundaries` integer, required
      - `original_holes` Hole[], nullable
        - `id` integer, required
        - `area_mm2` number, required
        - `center` Point3D, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `diameter_mm` number, required
        - `perimeter_mm` number, required
        - `hole_center_dist_to_nearest_edge` number, required
        - `normal` Normal, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `nearest_bend` NearestBend
          - `bend_id` integer, nullable
          - `distance_to_flange` number, nullable
          - `is_inner_cylindrical_face` boolean, nullable
          - `outside_bend_path` boolean, nullable
          - `line_start` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `line_end` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `distortion_zone_side` BendDistortionZoneSide: Planner geometry for one sheet side adjacent to a bend line.
            - `source_hole_id` integer, nullable
            - `edge_start` BentLocation, required
              - …
            - `edge_end` BentLocation, required
              - …
            - `outward_direction` BentLocation, required
              - …
        - `nearby_bends` NearestBend[]
          - `bend_id` integer, nullable
          - `distance_to_flange` number, nullable
          - `is_inner_cylindrical_face` boolean, nullable
          - `outside_bend_path` boolean, nullable
          - `line_start` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `line_end` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `distortion_zone_side` BendDistortionZoneSide: Planner geometry for one sheet side adjacent to a bend line.
            - `source_hole_id` integer, nullable
            - `edge_start` BentLocation, required
              - …
            - `edge_end` BentLocation, required
              - …
            - `outward_direction` BentLocation, required
              - …
        - `outline` Point3D[], nullable
          - `x` number, required
          - `y` number, required
          - `z` number, required
      - `flange_lengths` union[], required
        - union
          - FlangeLength
            - `flange_length` number, required
            - `flange_bend_radius` number, required
            - `flange_bend_angle` number, required
          - number
      - `backgauge_flanges` object[], required
      - `u_channels` object[]
      - `transformed_holes` Hole[], nullable
        - `id` integer, required
        - `area_mm2` number, required
        - `center` Point3D, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `diameter_mm` number, required
        - `perimeter_mm` number, required
        - `hole_center_dist_to_nearest_edge` number, required
        - `normal` Normal, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `nearest_bend` NearestBend
          - `bend_id` integer, nullable
          - `distance_to_flange` number, nullable
          - `is_inner_cylindrical_face` boolean, nullable
          - `outside_bend_path` boolean, nullable
          - `line_start` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `line_end` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `distortion_zone_side` BendDistortionZoneSide: Planner geometry for one sheet side adjacent to a bend line.
            - `source_hole_id` integer, nullable
            - `edge_start` BentLocation, required
              - …
            - `edge_end` BentLocation, required
              - …
            - `outward_direction` BentLocation, required
              - …
        - `nearby_bends` NearestBend[]
          - `bend_id` integer, nullable
          - `distance_to_flange` number, nullable
          - `is_inner_cylindrical_face` boolean, nullable
          - `outside_bend_path` boolean, nullable
          - `line_start` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `line_end` Point3D
            - `x` number, required
            - `y` number, required
            - `z` number, required
          - `distortion_zone_side` BendDistortionZoneSide: Planner geometry for one sheet side adjacent to a bend line.
            - `source_hole_id` integer, nullable
            - `edge_start` BentLocation, required
              - …
            - `edge_end` BentLocation, required
              - …
            - `outward_direction` BentLocation, required
              - …
        - `outline` Point3D[], nullable
          - `x` number, required
          - `y` number, required
          - `z` number, required
      - `countersinks` AnalyzedCountersink[], nullable
        - `id` integer, required
        - `center` Point3D, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `normal` Normal, required
          - `x` number, required
          - `y` number, required
          - `z` number, required
        - `inverted` boolean, required
        - `counters_sink_inner_radius` number, required
        - `counters_sink_outer_radius` number, required
        - `counter_sink_angle` number, required
      - `design_tree` object, nullable
      - `detected_tube_profile_key` string, nullable
      - `tube_profile_id` string, nullable
      - `tube_length_mm` number, nullable
      - `tube_features` object[]
      - `tube_holes` object[]
      - `tube_metadata` object
      - `public` boolean, required
      - `issues` Issue[], required
        - `bend_id` integer, nullable
        - `issue` string, required
      - `assembly_id` string, nullable
      - `session_token` string, nullable
    - `metadata` AssemblyMetadata, required
      - `total_processing_time_ms` integer, required
      - `success_count` integer, required
      - `fail_count` integer, required
      - `total_parts` integer, required
      - `failed_part_ids` string[]
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `server_sent_at` string, date-time, nullable
  - `delivery_source` 'sse' | 'fallback' | 'single', nullable

## Other responses

- `404`: Not found
- `422`: Validation Error

## Changes

- **2026-09-11** `5810b934dd3b`: 2 breaking
  - the response property `result/anyOf[subschema #1: AssemblyResponse]/designs/items/issues/items/bend_id` became optional for the status `200`
  - response property `result/anyOf[subschema #1: AssemblyResponse]/designs/items/issues/items/bend_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`

[Operation history](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/changes/designs/jobs/:job_id/get.md)

---

[API](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api.md) - [All operations](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/revisions/078f984358b9?raw)
