---
title: "Retrieve a list of operations to fix infra issues"
method: GET
path: "/infra/{infra_id}/auto_fixes"
tags: ["infra"]
---

# Retrieve a list of operations to fix infra issues

`GET /infra/{infra_id}/auto_fixes`

## Request

- Base URL: `https://demo.osrd.fr/api`
- URL: `https://demo.osrd.fr/api/infra/{infra_id}/auto_fixes`
- Auth: none declared

## Path parameters

- `infra_id` integer, required

## Response `200`

The list of suggested operations

- Operation[]
  - union
    - object
      - `obj_type` 'TrackSection', required
      - `railjson` TrackSection, required
        - `curves` Curve[], required
          - `begin` number, double, required
          - `end` number, double, required
          - `radius` number, double, required
        - `extensions` TrackSectionExtensions
          - `sncf` TrackSectionSncfExtension
            - `line_code` integer, required
            - `line_name` string, required
            - `track_name` string, required
            - `track_number` integer, required
          - `source` object, nullable
            - `id` string, required
            - `name` string, required
        - `geo` GeoJsonLineString, required
          - `coordinates` GeoJsonPointValue[], required
            - number[]
          - `type` 'LineString', required
        - `id` string, required
        - `length` number, double, required
        - `loading_gauge_limits` LoadingGaugeLimit[]
          - `begin` number, double, required
          - `category` 'G1' | 'G2' | 'GA' | 'GB' | 'GB1' | 'GC' | 'FR3.3' | 'FR3.3/GB/G2' | 'GLOTT', required
          - `end` number, double, required
        - `slopes` Slope[], required
          - `begin` number, double, required
          - `end` number, double, required
          - `gradient` number, double, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'Signal', required
      - `railjson` Signal, required
        - `direction` 'START_TO_STOP' | 'STOP_TO_START', required
        - `extensions` SignalExtensions
          - `sncf` SignalSncfExtension
            - `kp` string, required
            - `label` string, required
            - `side` 'LEFT' | 'RIGHT' | 'CENTER'
        - `id` string, required
        - `logical_signals` object[]
          - `conditional_parameters` object[], required
            - `on_route` string, required
            - `parameters` object, required
          - `default_parameters` object, required
          - `next_signaling_systems` string[], required
          - `settings` object, required
          - `signaling_system` string, required
        - `position` number, double, required
        - `sight_distance` number, double, required
        - `track` string, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'NeutralSection', required
      - `railjson` NeutralSection, required: Neutral sections are portions of track where trains aren't allowed to pull power from electrifications. They have to rely on inertia to cross such sections. In practice, neutral sections are delimited by signs. In OSRD, neutral sections are directional to allow accounting for different sign placement depending on the direction. For more details see [the documentation](https://osrd.fr/en/docs/explanation/neutral_sections/).
        - `announcement_track_ranges` DirectionalTrackRange[], required
          - `begin` number, double, required
          - `direction` 'START_TO_STOP' | 'STOP_TO_START', required
          - `end` number, double, required
          - `track` string, required
        - `extensions` NeutralSectionExtensions
          - `neutral_sncf` NeutralSectionNeutralSncfExtension
            - `announcement` Sign[], required
              - …
            - `end` Sign[], required
              - …
            - `exe` Sign, required
              - …
            - `rev` Sign[], required
              - …
        - `id` string, required
        - `lower_pantograph` boolean, required
        - `track_ranges` DirectionalTrackRange[], required
          - `begin` number, double, required
          - `direction` 'START_TO_STOP' | 'STOP_TO_START', required
          - `end` number, double, required
          - `track` string, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'SpeedSection', required
      - `railjson` SpeedSection, required
        - `extensions` SpeedSectionExtensions
          - `psl_sncf` SpeedSectionPslSncfExtension
            - `announcement` Sign[], required
              - …
            - `r` Sign[], required
              - …
            - `z` Sign, required
              - …
        - `id` string, required
        - `on_routes` string[], nullable
        - `speed_limit` number, double, nullable
        - `speed_limit_by_tag` object, required
        - `track_ranges` ApplicableDirectionsTrackRange[], required
          - `applicable_directions` 'START_TO_STOP' | 'STOP_TO_START' | 'BOTH', required
          - `begin` number, double, required
          - `end` number, double, required
          - `track` string, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'Switch', required
      - `railjson` Switch, required
        - `extensions` SwitchExtensions
          - `sncf` SwitchSncfExtension
            - `label` string, required
        - `group_change_delay` number, double, required
        - `id` string, required
        - `ports` object, required
        - `switch_type` string, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'SwitchType', required
      - `railjson` SwitchType, required
        - `groups` object, required
        - `id` string, required
        - `ports` string[], required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'Detector', required
      - `railjson` Detector, required
        - `extensions` DetectorExtension
          - `sncf` DetectorSncfExtension, required
            - `kp` string, required
        - `id` string, required
        - `position` number, double, required
        - `track` string, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'BufferStop', required
      - `railjson` BufferStop, required
        - `extensions` BufferStopExtension
          - `sncf` BufferStopSncfExtension
            - `kp` string, required
        - `id` string, required
        - `position` number, double, required
        - `track` string, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'Route', required
      - `railjson` Route, required
        - `entry_point` union, required
          - object
            - `id` string, required
            - `type` 'BufferStop', required
          - object
            - `id` string, required
            - `type` 'Detector', required
        - `entry_point_direction` 'START_TO_STOP' | 'STOP_TO_START', required
        - `exit_point` union, required
          - object
            - `id` string, required
            - `type` 'BufferStop', required
          - object
            - `id` string, required
            - `type` 'Detector', required
        - `id` string, required
        - `release_detectors` string[], required
        - `switches_directions` object, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'OperationalPoint', required
      - `railjson` OperationalPoint, required
        - `country_code` string, required
        - `id` string, required
        - `is_passenger_station` boolean, required
        - `main_code` string, required
        - `name` string, required
        - `parts` OperationalPointPart[], required
          - `extensions` OperationalPointPartExtension
            - `sncf` OperationalPointPartSncfExtension
              - …
          - `local_track_name` string, required
          - `position` number, double, required: Offset on the track section, in m
          - `track` string, required
        - `plc` string, nullable: Primary Location Code : https://rne.eu/it/products/ccs/crd/
        - `secondary_code` string
        - `secondary_name` string, nullable
        - `uic` integer, nullable
        - `weight` integer, nullable
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'Electrification', required
      - `railjson` Electrification, required
        - `id` string, required
        - `track_ranges` ApplicableDirectionsTrackRange[], required
          - `applicable_directions` 'START_TO_STOP' | 'STOP_TO_START' | 'BOTH', required
          - `begin` number, double, required
          - `end` number, double, required
          - `track` string, required
        - `voltage` string, required
      - `operation_type` 'CREATE', required
    - object
      - `obj_type` 'LevelCrossing', required
      - `railjson` LevelCrossing, required
        - `id` string, required
        - `name` string, required
        - `parts` LevelCrossingPart[], required
          - `pedal_downstream` integer, required: Offset in mm of the downstream pedal from the main position (downstream refers to the START_TO_STOP direction of the track)
          - `pedal_upstream` integer, required: Offset in mm of the upstream pedal from the main position (upstream refers to the START_TO_STOP direction of the track)
          - `position` number, double, required
          - `track` string, required
        - `short_zone_length` integer, required: Short zone length in mm
      - `operation_type` 'CREATE', required
    - object
      - `obj_id` string, required
      - `obj_type` 'TrackSection' | 'Signal' | 'SpeedSection' | 'Detector' | 'NeutralSection' | 'Switch' | 'SwitchType' | 'BufferStop' | 'Route' | 'OperationalPoint' | 'Electrification' | 'LevelCrossing', required
      - `railjson_patch` PatchOperation[], required: Representation of JSON Patch (list of patch operations)
        - union: JSON Patch single patch operation
          - object: 'add' operation
            - `path` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed.
            - `value` unknown, required
            - `op` 'add', required
          - object: 'remove' operation
            - `path` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed.
            - `op` 'remove', required
          - object: 'replace' operation
            - `path` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed.
            - `value` unknown, required
            - `op` 'replace', required
          - object: 'move' operation
            - `from` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location to move value from.
            - `path` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed.
            - `op` 'move', required
          - object: 'copy' operation
            - `from` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location to copy value from.
            - `path` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed.
            - `op` 'copy', required
          - object: 'test' operation
            - `path` string, required: JSON-Pointer value [RFC6901](https://tools.ietf.org/html/rfc6901) that references a location within the target document where the operation is performed.
            - `value` unknown, required
            - `op` 'test', required
      - `operation_type` 'UPDATE', required
    - object: A delete operation. Contains same information as a object ref but has another serialization.
      - `obj_id` string, required
      - `obj_type` 'TrackSection' | 'Signal' | 'SpeedSection' | 'Detector' | 'NeutralSection' | 'Switch' | 'SwitchType' | 'BufferStop' | 'Route' | 'OperationalPoint' | 'Electrification' | 'LevelCrossing', required
      - `operation_type` 'DELETE', required

## Changes

- **2026-07-21** `fa2c0899ac36`: 3 breaking, 1 info
  - the `items/oneOf[subschema #1: OperationCreate]/` response's property type changed from `object` to no type for status `200`
  - removed the required property `items/oneOf[subschema #1: OperationCreate]/operation_type` from the response with the `200` status
  - removed the required property `items/oneOf[subschema #1: OperationCreate]/payload` from the response with the `200` status
  - added `#/components/schemas/InfraObject, subschema #2` to the `items/oneOf[subschema #1: OperationCreate]/` response property `allOf` list for the response status `200`
- **2026-07-17** `73f0d9b8f23a`: 1 breaking, 3 info
  - the `items/oneOf[subschema #1: OperationCreate]/` response's property type changed from no type to `object` for status `200`
  - removed `#/components/schemas/InfraObject, subschema #2` from the `items/oneOf[subschema #1: OperationCreate]/` response property `allOf` list for the response status `200`
  - added the required property `items/oneOf[subschema #1: OperationCreate]/operation_type` to the response with the `200` status
  - added the required property `items/oneOf[subschema #1: OperationCreate]/payload` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/openrailassociation/apis/osrd-editoast/changes/infra/:infra_id/auto_fixes/get.md)

---

[API](https://skmtc.dev/openrailassociation/apis/osrd-editoast.md) - [All operations](https://skmtc.dev/openrailassociation/apis/osrd-editoast/llms.txt) - [OpenAPI document](https://skmtc.dev/openrailassociation/apis/osrd-editoast/revisions/7c72c5e1bc0e?raw)
