---
title: "Modify a rolling stock"
method: PUT
path: "/rolling_stock/{rolling_stock_id}"
tags: ["rolling_stock"]
---

# Modify a rolling stock

`PUT /rolling_stock/{rolling_stock_id}`

## Path parameters

- `rolling_stock_id` integer, required

## Request body

- RollingStockForm
  - `base_power_class` string, nullable, required
  - `comfort_acceleration` number, double, required — Acceleration in m·s⁻²
  - `const_gamma` number, double, required — The constant gamma braking coefficient used when NOT circulating under ETCS/ERTMS signaling system Acceleration in m·s⁻²
  - `effort_curves` EffortCurves, required
    - `default_mode` string, required
    - `modes` object, required
  - `electrical_power_startup_time` number, double, nullable — The time the train takes before actually using electrical power (in seconds). Is null if the train is not electric. Duration in s
  - `energy_sources` EnergySource[]
    - union — energy source of a rolling stock
      - object — energy source for a rolling stock representing a electrification
        - `efficiency` number, double, required
        - `energy_source_type` 'Electrification', required
        - `max_input_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
        - `max_output_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
      - object
        - `efficiency` number, double, required
        - `energy_source_type` 'PowerPack', required
        - `energy_storage` EnergyStorage, required — energy storage of an energy source (of a rolling stock, can be a electrical battery or a hydrogen/fuel powerPack)
          - `capacity` number, double, required
          - `refill_law` RefillLaw, required — physical law defining how the storage can be refilled
            - `soc_ref` number, double, required
            - `tau` number, double, required
          - `soc` number, double, required
          - `soc_max` number, double, required
          - `soc_min` number, double, required
        - `max_input_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
        - `max_output_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
      - object — energy source for a rolling stock representing a battery
        - `efficiency` number, double, required
        - `energy_source_type` 'Battery', required
        - `energy_storage` EnergyStorage, required — energy storage of an energy source (of a rolling stock, can be a electrical battery or a hydrogen/fuel powerPack)
          - `capacity` number, double, required
          - `refill_law` RefillLaw, required — physical law defining how the storage can be refilled
            - `soc_ref` number, double, required
            - `tau` number, double, required
          - `soc` number, double, required
          - `soc_max` number, double, required
          - `soc_min` number, double, required
        - `max_input_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
        - `max_output_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
  - `inertia_coefficient` number, double, required
  - `length` number, double, required — Length in m
  - `loading_gauge` 'G1' | 'G2' | 'GA' | 'GB' | 'GB1' | 'GC' | 'FR3.3' | 'FR3.3/GB/G2' | 'GLOTT', required
  - `mass` number, double, required — Mass in kg
  - `max_speed` number, double, required — Velocity in m·s⁻¹
  - `metadata` RollingStockMetadata
    - `detail` string, required
    - `family` string, required
    - `grouping` string, required
    - `number` string, required
    - `reference` string, required
    - `series` string, required
    - `subseries` string, required
    - `type` string, required
    - `unit` string, required
  - `name` string, required
  - `other_categories` TrainMainCategory[], required
  - `power_restrictions` object, required — Mapping of power restriction code to power class
  - `primary_category` 'HIGH_SPEED_TRAIN' | 'INTERCITY_TRAIN' | 'REGIONAL_TRAIN' | 'NIGHT_TRAIN' | 'COMMUTER_TRAIN' | 'FREIGHT_TRAIN' | 'FAST_FREIGHT_TRAIN' | 'TRAM_TRAIN' | 'TOURISTIC_TRAIN' | 'WORK_TRAIN', required
  - `railjson_version` string
  - `raise_pantograph_time` number, double, nullable — The time it takes to raise this train's pantograph in seconds. Is null if the train is not electric. Duration in s
  - `rolling_resistance` RollingResistancePerWeight, required
    - `A` number, double, required — Solid friction in N·kg⁻¹; N = kg⋅m⋅s⁻² Acceleration in m·s⁻²
    - `B` number, double, required — Viscosity friction in (N·kg⁻¹)·(m/s)⁻¹; N = kg⋅m⋅s⁻² Viscosity friction per weight in s⁻¹
    - `C` number, double, required — Aerodynamic drag per kg in (N·kg⁻¹)·(m/s)⁻²; N = kg⋅m⋅s⁻² Aerodynamic drag per kg in m⁻¹
    - `type` string, required
  - `startup_acceleration` number, double, required — Acceleration in m·s⁻²
  - `startup_time` number, double, required — Duration in s
  - `supported_signaling_systems` SupportedSignalingSystem[], required
    - union
      - object
        - `type` 'BAL', required
      - object
        - `type` 'BAPR', required
      - object
        - `type` 'TVM300', required
      - object
        - `type` 'TVM430', required
      - object
        - `brake_params` EtcsBrakeParams, required — Braking parameters for ERTMS ETCS Level 2 Commented with their names in ETCS specification document `SUBSET-026-3 v400.pdf` from the file at <https://www.era.europa.eu/system/files/2023-09/index004_-_SUBSET-026_v400.zip>
          - `gamma_emergency` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `gamma_normal_service` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `gamma_service` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_dry` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_n_neg` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_n_pos` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_wet` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `t_be` number, double, required — T_be: safe brake build up time in s
          - `t_bs1` number, double, required — T_bs1: time service break in s used for SBI1 computation
          - `t_bs2` number, double, required — T_bs2: time service break in s used for SBI2 computation
          - `t_traction_cut_off` number, double, required — T_traction_cut_off: time delay in s from the traction cut-off command to the moment the acceleration due to traction is zero
        - `type` 'ETCS_LEVEL2', required

## Response `200`

The created rolling stock

- RollingStockWithLiveries
  - `base_power_class` string, nullable, required
  - `comfort_acceleration` number, double, required — Acceleration in m·s⁻²
  - `const_gamma` number, double, required — Acceleration in m·s⁻²
  - `effort_curves` EffortCurves, required
    - `default_mode` string, required
    - `modes` object, required
  - `electrical_power_startup_time` number, double, nullable, required — Duration in s
  - `energy_sources` EnergySource[], required
    - union — energy source of a rolling stock
      - object — energy source for a rolling stock representing a electrification
        - `efficiency` number, double, required
        - `energy_source_type` 'Electrification', required
        - `max_input_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
        - `max_output_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
      - object
        - `efficiency` number, double, required
        - `energy_source_type` 'PowerPack', required
        - `energy_storage` EnergyStorage, required — energy storage of an energy source (of a rolling stock, can be a electrical battery or a hydrogen/fuel powerPack)
          - `capacity` number, double, required
          - `refill_law` RefillLaw, required — physical law defining how the storage can be refilled
            - `soc_ref` number, double, required
            - `tau` number, double, required
          - `soc` number, double, required
          - `soc_max` number, double, required
          - `soc_min` number, double, required
        - `max_input_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
        - `max_output_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
      - object — energy source for a rolling stock representing a battery
        - `efficiency` number, double, required
        - `energy_source_type` 'Battery', required
        - `energy_storage` EnergyStorage, required — energy storage of an energy source (of a rolling stock, can be a electrical battery or a hydrogen/fuel powerPack)
          - `capacity` number, double, required
          - `refill_law` RefillLaw, required — physical law defining how the storage can be refilled
            - `soc_ref` number, double, required
            - `tau` number, double, required
          - `soc` number, double, required
          - `soc_max` number, double, required
          - `soc_min` number, double, required
        - `max_input_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
        - `max_output_power` SpeedDependantPower, required — power-speed curve (in an energy source)
          - `powers` number[], required
          - `speeds` number[], required
  - `id` integer, required
  - `inertia_coefficient` number, double, required
  - `length` number, double, required — Length in m
  - `loading_gauge` 'G1' | 'G2' | 'GA' | 'GB' | 'GB1' | 'GC' | 'FR3.3' | 'FR3.3/GB/G2' | 'GLOTT', required
  - `locked` boolean, required
  - `mass` number, double, required — Mass in kg
  - `max_speed` number, double, required — Velocity in m·s⁻¹
  - `metadata` RollingStockMetadata, required
    - `detail` string, required
    - `family` string, required
    - `grouping` string, required
    - `number` string, required
    - `reference` string, required
    - `series` string, required
    - `subseries` string, required
    - `type` string, required
    - `unit` string, required
  - `name` string, required
  - `other_categories` TrainMainCategory[], required
  - `power_restrictions` object, required
  - `primary_category` 'HIGH_SPEED_TRAIN' | 'INTERCITY_TRAIN' | 'REGIONAL_TRAIN' | 'NIGHT_TRAIN' | 'COMMUTER_TRAIN' | 'FREIGHT_TRAIN' | 'FAST_FREIGHT_TRAIN' | 'TRAM_TRAIN' | 'TOURISTIC_TRAIN' | 'WORK_TRAIN', required
  - `railjson_version` string, required
  - `raise_pantograph_time` number, double, nullable, required — Duration in s
  - `rolling_resistance` RollingResistancePerWeight, required
    - `A` number, double, required — Solid friction in N·kg⁻¹; N = kg⋅m⋅s⁻² Acceleration in m·s⁻²
    - `B` number, double, required — Viscosity friction in (N·kg⁻¹)·(m/s)⁻¹; N = kg⋅m⋅s⁻² Viscosity friction per weight in s⁻¹
    - `C` number, double, required — Aerodynamic drag per kg in (N·kg⁻¹)·(m/s)⁻²; N = kg⋅m⋅s⁻² Aerodynamic drag per kg in m⁻¹
    - `type` string, required
  - `startup_acceleration` number, double, required — Acceleration in m·s⁻²
  - `startup_time` number, double, required — Duration in s
  - `supported_signaling_systems` SupportedSignalingSystem[], required
    - union
      - object
        - `type` 'BAL', required
      - object
        - `type` 'BAPR', required
      - object
        - `type` 'TVM300', required
      - object
        - `type` 'TVM430', required
      - object
        - `brake_params` EtcsBrakeParams, required — Braking parameters for ERTMS ETCS Level 2 Commented with their names in ETCS specification document `SUBSET-026-3 v400.pdf` from the file at <https://www.era.europa.eu/system/files/2023-09/index004_-_SUBSET-026_v400.zip>
          - `gamma_emergency` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `gamma_normal_service` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `gamma_service` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_dry` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_n_neg` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_n_pos` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `k_wet` SpeedIntervalValueCurve, required
            - `boundaries` number[], required — Speed in m/s (sorted ascending) External bounds are implicit to [0, rolling_stock.max_speed]
            - `values` number[], required — Interval values, must be >= 0 (unit to be made explicit at use) There must be one more value than boundaries
          - `t_be` number, double, required — T_be: safe brake build up time in s
          - `t_bs1` number, double, required — T_bs1: time service break in s used for SBI1 computation
          - `t_bs2` number, double, required — T_bs2: time service break in s used for SBI2 computation
          - `t_traction_cut_off` number, double, required — T_traction_cut_off: time delay in s from the traction cut-off command to the moment the acceleration due to traction is zero
        - `type` 'ETCS_LEVEL2', required
  - `version` integer, required
  - `liveries` RollingStockLivery[], required
    - `compound_image_id` integer, nullable
    - `id` integer, required
    - `name` string, required
    - `rolling_stock_id` integer, required

---

[API](https://skmtc.net/openrailassociation/apis/osrd-editoast.md) · [All operations](https://skmtc.net/openrailassociation/apis/osrd-editoast/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openrailassociation/osrd-editoast/versions/1840dbbd64ac/schema)
