---
title: "Get Component Analysis"
method: GET
path: "/v1/component_analyses/{job_id}"
tags: ["v1", "component_analyses"]
---

# Get Component Analysis

`GET /v1/component_analyses/{job_id}`

## Request

- Base URL: `https://thrustlab.com`
- URL: `https://thrustlab.com/v1/component_analyses/{job_id}`
- Auth: HTTP bearer

Read only the caller's analysis; expired and foreign IDs return the same 404.

## Path parameters

- `job_id` string, required

## Response `200`

Successful Response

- ComponentAnalysisResource
  - `error` object, nullable
  - `expires_at` string, required
  - `id` string, required
  - `object` 'component_analysis'
  - `progress` object
  - `request` ComponentAnalysisRequest, required
    - `candidate_ids` string[], nullable
    - `component_id` string, nullable
    - `component_type` 'propeller' | 'motor' | 'battery', required
    - `conditions` AnalysisCondition[]
      - `inputs` union, required
        - PropellerInputs
          - `a_sound_mps` number, nullable
          - `airspeed_mps` number, nullable
          - `altitude_m` number, nullable
          - `ambient_temp_c` number, nullable
          - `blade_angle_offset_deg` number, nullable
          - `density_kg_m3` number, nullable
          - `freestream_angle_deg` number, nullable
          - `freestream_speed_mps` number, nullable
          - `n_crit` number, nullable
          - `nu_air_m2_s` number, nullable
          - `rpm` number, nullable
          - `tilt_deg` number, nullable
          - `v_axial_mps` number, nullable
          - `v_edge_mps` number, nullable
          - `vertical_speed_mps` number, nullable
        - MotorInputs
          - `ambient_temp_c` number, nullable
          - `duration_s` number, nullable
          - `esc_pwm_frequency_khz` number, nullable
          - `esc_resistance_mohm` number, nullable
          - `esc_sync_rectification` boolean, nullable
          - `esc_timing` 'low' | 'medium' | 'high' | 'auto', nullable
          - `esc_type` 'six_step' | 'foc', nullable
          - `motor_cooling_velocity_mps` number, nullable
          - `motor_thermal_resistance_k_w` number, nullable
          - `rpm` number, nullable
          - `shaft_power_w` number, nullable
          - `shaft_torque_nm` number, nullable
          - `supply_voltage_v` number, nullable
          - `thermal_on` boolean, nullable
          - `throttle` number, nullable
        - BatteryInputs
          - `ambient_temp_c` number, nullable
          - `cell_voltage_cutoff_v` number, nullable
          - `cooling_regime` 'static_bench' | 'prop_wash_mild' | 'prop_wash_strong' | 'forced_air', nullable
          - `current_a` number, nullable
          - `duration_s` number, nullable
          - `entropic_on` boolean, nullable
          - `initial_soc_pct` number, nullable
          - `initial_temp_c` number, nullable
          - `load_profile` BatteryLoad[], nullable
            - `current_a` number, nullable
            - `load_resistance_ohm` number, nullable
            - `power_w` number, nullable
            - `time_s` number, required
          - `load_resistance_ohm` number, nullable
          - `power_w` number, nullable
          - `soc_cutoff_pct` number, nullable
          - `thermal_on` boolean, nullable
          - `thermal_resistance_k_w` number, nullable
          - `timestep_s` number, nullable
        - DynamicPropellerInputs
          - `a_sound_mps` number, nullable
          - `airspeed_mps` number, nullable
          - `altitude_m` number, nullable
          - `ambient_temp_c` number, nullable
          - `blade_angle_offset_deg` number, nullable
          - `density_kg_m3` number, nullable
          - `freestream_angle_deg` number, nullable
          - `freestream_speed_mps` number, nullable
          - `n_crit` number, nullable
          - `nu_air_m2_s` number, nullable
          - `rpm` number, nullable
          - `shaft_torque_nm` number, nullable
          - `tilt_deg` number, nullable
          - `v_axial_mps` number, nullable
          - `v_edge_mps` number, nullable
          - `vertical_speed_mps` number, nullable
        - DynamicMotorInputs
          - `ambient_temp_c` number, nullable
          - `duration_s` number, nullable
          - `esc_pwm_frequency_khz` number, nullable
          - `esc_resistance_mohm` number, nullable
          - `esc_sync_rectification` boolean, nullable
          - `esc_timing` 'low' | 'medium' | 'high' | 'auto', nullable
          - `esc_type` 'six_step' | 'foc', nullable
          - `motor_cooling_velocity_mps` number, nullable
          - `motor_thermal_resistance_k_w` number, nullable
          - `rpm` number, nullable
          - `shaft_power_w` number, nullable
          - `shaft_torque_nm` number, nullable
          - `supply_voltage_v` number, nullable
          - `thermal_on` boolean, nullable
          - `throttle` number, nullable
          - `vd_v` number, nullable
          - `vq_v` number, nullable
      - `label` string, required
      - `weight` number, required
    - `constraints` AnalysisConstraint[]
      - `metric` string, required
      - `operator` 'gte' | 'lte' | 'eq', required
      - `tolerance` number
      - `value` number, required
    - `custom_spec` object, nullable
    - `dynamics` union
      - PropellerDynamics
        - `control_mode` 'prescribed_rpm' | 'shaft_torque'
        - `duration_s` number, required
        - `inertia_kg_m2` number, nullable
        - `inertia_policy` 'fixed' | 'similarity', nullable
        - `initial_state` PropellerInitialState
          - `rpm` number
        - `initial_wake` 'zero' | 'equilibrium'
        - `max_internal_steps` integer
        - `max_internal_steps_total` integer
        - `max_step_s` number
        - `output_event` DynamicOutputEvent
          - `dwell_s` number
          - `metric` string, required
          - `operator` 'gte' | 'lte', required
          - `value` number, required
        - `output_interval_s` number
        - `profile` DynamicProfile
          - `interpolation` 'hold' | 'linear'
          - `rows` DynamicProfileRow[], required
            - `inputs` union, required
              - …
            - `time_s` number, required
        - `wake_on` boolean
        - `wake_tau1_s` number, nullable
      - MotorDynamics
        - `drive` 'throttle' | 'dq_voltage'
        - `duration_s` number, required
        - `external_inertia_kg_m2` number
        - `initial_state` MotorInitialState
          - `id_a` number
          - `iq_a` number
          - `magnet_temp_c` number, nullable
          - `rpm` number
          - `winding_temp_c` number, nullable
        - `max_internal_steps` integer
        - `max_internal_steps_total` integer
        - `max_step_s` number
        - `output_event` DynamicOutputEvent
          - `dwell_s` number
          - `metric` string, required
          - `operator` 'gte' | 'lte', required
          - `value` number, required
        - `output_interval_s` number
        - `profile` DynamicProfile
          - `interpolation` 'hold' | 'linear'
          - `rows` DynamicProfileRow[], required
            - `inputs` union, required
              - …
            - `time_s` number, required
      - BatteryDynamics
        - `duration_s` number, required
        - `initial_state` BatteryInitialState
          - `initial_soc_pct` number
          - `initial_temp_c` number, nullable
          - `polarization_voltages_v` number[], nullable
        - `max_internal_steps` integer
        - `max_internal_steps_total` integer
        - `max_step_s` number
        - `output_event` DynamicOutputEvent
          - `dwell_s` number
          - `metric` string, required
          - `operator` 'gte' | 'lte', required
          - `value` number, required
        - `output_interval_s` number
        - `profile` DynamicProfile
          - `interpolation` 'hold' | 'linear'
          - `rows` DynamicProfileRow[], required
            - `inputs` union, required
              - …
            - `time_s` number, required
    - `evaluation` 'steady' | 'dynamic'
    - `inputs` union, required
      - PropellerInputs
        - `a_sound_mps` number, nullable
        - `airspeed_mps` number, nullable
        - `altitude_m` number, nullable
        - `ambient_temp_c` number, nullable
        - `blade_angle_offset_deg` number, nullable
        - `density_kg_m3` number, nullable
        - `freestream_angle_deg` number, nullable
        - `freestream_speed_mps` number, nullable
        - `n_crit` number, nullable
        - `nu_air_m2_s` number, nullable
        - `rpm` number, nullable
        - `tilt_deg` number, nullable
        - `v_axial_mps` number, nullable
        - `v_edge_mps` number, nullable
        - `vertical_speed_mps` number, nullable
      - MotorInputs
        - `ambient_temp_c` number, nullable
        - `duration_s` number, nullable
        - `esc_pwm_frequency_khz` number, nullable
        - `esc_resistance_mohm` number, nullable
        - `esc_sync_rectification` boolean, nullable
        - `esc_timing` 'low' | 'medium' | 'high' | 'auto', nullable
        - `esc_type` 'six_step' | 'foc', nullable
        - `motor_cooling_velocity_mps` number, nullable
        - `motor_thermal_resistance_k_w` number, nullable
        - `rpm` number, nullable
        - `shaft_power_w` number, nullable
        - `shaft_torque_nm` number, nullable
        - `supply_voltage_v` number, nullable
        - `thermal_on` boolean, nullable
        - `throttle` number, nullable
      - BatteryInputs
        - `ambient_temp_c` number, nullable
        - `cell_voltage_cutoff_v` number, nullable
        - `cooling_regime` 'static_bench' | 'prop_wash_mild' | 'prop_wash_strong' | 'forced_air', nullable
        - `current_a` number, nullable
        - `duration_s` number, nullable
        - `entropic_on` boolean, nullable
        - `initial_soc_pct` number, nullable
        - `initial_temp_c` number, nullable
        - `load_profile` BatteryLoad[], nullable
          - `current_a` number, nullable
          - `load_resistance_ohm` number, nullable
          - `power_w` number, nullable
          - `time_s` number, required
        - `load_resistance_ohm` number, nullable
        - `power_w` number, nullable
        - `soc_cutoff_pct` number, nullable
        - `thermal_on` boolean, nullable
        - `thermal_resistance_k_w` number, nullable
        - `timestep_s` number, nullable
      - DynamicPropellerInputs
        - `a_sound_mps` number, nullable
        - `airspeed_mps` number, nullable
        - `altitude_m` number, nullable
        - `ambient_temp_c` number, nullable
        - `blade_angle_offset_deg` number, nullable
        - `density_kg_m3` number, nullable
        - `freestream_angle_deg` number, nullable
        - `freestream_speed_mps` number, nullable
        - `n_crit` number, nullable
        - `nu_air_m2_s` number, nullable
        - `rpm` number, nullable
        - `shaft_torque_nm` number, nullable
        - `tilt_deg` number, nullable
        - `v_axial_mps` number, nullable
        - `v_edge_mps` number, nullable
        - `vertical_speed_mps` number, nullable
      - DynamicMotorInputs
        - `ambient_temp_c` number, nullable
        - `duration_s` number, nullable
        - `esc_pwm_frequency_khz` number, nullable
        - `esc_resistance_mohm` number, nullable
        - `esc_sync_rectification` boolean, nullable
        - `esc_timing` 'low' | 'medium' | 'high' | 'auto', nullable
        - `esc_type` 'six_step' | 'foc', nullable
        - `motor_cooling_velocity_mps` number, nullable
        - `motor_thermal_resistance_k_w` number, nullable
        - `rpm` number, nullable
        - `shaft_power_w` number, nullable
        - `shaft_torque_nm` number, nullable
        - `supply_voltage_v` number, nullable
        - `thermal_on` boolean, nullable
        - `throttle` number, nullable
        - `vd_v` number, nullable
        - `vq_v` number, nullable
    - `max_evaluations` integer
    - `mode` 'point' | 'sweep' | 'solve_target' | 'optimize' | 'sensitivity' | 'compare_models'
    - `model` 'fast' | 'full', nullable
    - `objective` AnalysisObjective
      - `aggregation` 'mean' | 'worst', required
      - `direction` 'minimize' | 'maximize' | 'target', required
      - `metric` string, required
      - `target` number, nullable
    - `seed` integer
    - `target` AnalysisTarget
      - `metric` string, required
      - `tolerance` number, required
      - `value` number, required
    - `variables` AnalysisVariable[]
      - `max` number, nullable
      - `min` number, nullable
      - `parameter` string, required
      - `steps` integer
      - `values` number[], nullable
  - `result` ComponentAnalysisResult
    - `best_index` integer, nullable
    - `candidates` EvaluatedCandidate[], required
      - `candidate_id` string, nullable, required
      - `candidate_name` string, required
      - `feasible` boolean, required
      - `index` integer, required
      - `objective_score` number, nullable
      - `parameters` object, required
      - `rank` integer, nullable
      - `scenarios` ScenarioResult[], required
        - `constraint_residuals` ConstraintResidual[]
          - `actual` number, nullable, required
          - `metric` string, required
          - `operator` 'gte' | 'lte' | 'eq', required
          - `residual` number, nullable, required
          - `satisfied` boolean, required
          - `value` number, required
        - `diagnostics` object
        - `effective_spec` object
        - `error` object, nullable
        - `feasible` boolean, required
        - `inputs` object, required
        - `label` string, required
        - `metrics` object
        - `model` string, nullable, required
        - `provenance` object
        - `trajectory` ComponentTrajectory
          - `channels` object, required
          - `internal_steps` integer, required
          - `partial` boolean, required
          - `simulated_duration_s` number, required
          - `termination_reason` string, required
          - `time_s` number[], required
        - `warnings` string[]
        - `weight` number, required
    - `evaluations` integer, required
    - `failed_evaluations` integer, required
    - `internal_steps` integer
    - `max_evaluations` integer, required
    - `max_internal_steps_total` integer, nullable
    - `saved_rows` integer
    - `sensitivity` object[]
    - `stopping_reason` string, required
  - `status` 'queued' | 'running' | 'cancelling' | 'completed' | 'failed' | 'cancelled'

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thrustlab/apis/thrustlab-api.md) · [All operations](https://skmtc.dev/thrustlab/apis/thrustlab-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thrustlab/apis/thrustlab-api/revisions/c19717e52529?raw)
