SIVAdmin API

This GraphQL API allows to fetch and mutate some parts of the SIVAdmin.

To access the API you'll have to use a token and that token will give you full or restricted access to what you can do depending on your integration.

The main actions can be found under the Operations section.

In case the client has multiple networks (bus, train, cablecar etc.), it is possible to specify the desired network by adding a URL parameter: &network_id=CLIENT:NETWORK:ID

API Endpoints
# Requests / STAGING:
https://sittr-staging.les2lacs.gatemedia.ch/graphql?token=XXXXXXXXXX
# Subscriptions / STAGING:
https://sittr-staging.les2lacs.gatemedia.ch/cable?token=XXXXXXXXXX
# Requests / PRODUCTION:
https://sittr.les2lacs.gatemedia.ch/graphql?token=XXXXXXXXXX
# Subscriptions / PRODUCTION:
https://sittr.les2lacs.gatemedia.ch/cable?token=XXXXXXXXXX
# Directions API / STAGING:
https://staging.ojp.gatemedia.ch/api/v1/directions?token=XXXXXXXXXX
# Directions API / PRODUCTION:
https://ojp.gatemedia.ch/api/v1/directions?token=XXXXXXXXXX
# Stops API / STAGING:
https://staging.ojp.gatemedia.ch/api/v1/stops?token=XXXXXXXXXX
# Stops API / Production:
https://ojp.gatemedia.ch/api/v1/stops?token=XXXXXXXXXX

Examples

Network Filter

Returns or filters available Networks associated to the transport company.

Example request:

fragment Network on Network {
    objectid
    lines { 
        objectid 
    }
}
query {
    firstNetwork: network { ...Network }
    busAndTrainNetworks: networks(ids:["NETWORK_BUS:PTNetwork:1", "NETWORK_TRAIN:PTNetwork:1"]) { ...Network }
    allNetworks: networks { ...Network }
    busNetwork: network(id: "NETWORK_BUS:PTNetwork:1") { ...Network }
    trainNetwork: network(id: "NETWORK_TRAIN:PTNetwork:1") { ...Network }
    cableCarNetwork: network(id: "NETWORK_CABLE_CAR:PTNetwork:1") { ...Network }
}

Example response:

{
    "data": {
        "cableCarNetwork": {
            "objectid": "NETWORK_CABLE_CAR:PTNetwork:1",
            "lines": [
                {
                    "objectid": "NETWORK_CABLE_CAR:Line:3"
                }
            ]
        }
    }
}

These 'network' objects can then be use in subsequent API calls when, fetching lines & stops for instance.

Messages API

Messages API are used to fetch messages destined to any kind of channels such as Vehicles, BIV, Website etc.

Current supported types are: WEB_SITE, BIV_MESSAGE, BIV_ANNOUNCEMENT and BIV_EPAPER_CONTENT depending on the company's setup.

Fetch Messages

Returns all Messages of a given type.

Example request:

messages(type: WEB_SITE, start_time: "00:00", end_time: "23:59") {
    title
    reason
    content {
        ... on WebsiteContent {
            title
            content
            enabled
            severity
            pdf_url
        } 
    }
    target {
        __typename
        ... on LinesTarget {
            lines {
                id
                name
                ways
            }
            from_stop
            to_stop
        }
        ... on LocationTarget {
            regions {
            ... on LocationTargetCircle {
                center {
                    latitude
                    longitude
                }
                radius
            }
            ... on LocationTargetPolygon {
                    paths {
                        latitude
                        longitude
                    }
                }
            }
        }
    }
    schedule {
        monday
        tuesday
        wednesday
        thursday
        friday
        saturday
        sunday
        start_date
        start_time
        end_date
        end_time
        continuous
    }
} 

Example response:

{
                "data": {
                    "messages": [
                    {
                        "title": "Website Test",
                        "reason": "test",
                        "content": {
                        "title": "Test site",
                        "content": "Test Website",
                        "enabled": true,
                        "severity": "minor",
                        "pdf_url": ""
                        },
                    "target": {
                        "__typename": "LinesTarget",
                        "lines": [
                        {
                            "id": "NETWORK:Line:123",
                            "name": "123",
                            "ways": [
                            "FORWARD",
                            "BACKWARD"
                            ]
                        }
                        ],
                        "from_stop": "NETWORK:StopArea:ABC-A",
                        "to_stop": "NETWORK:StopArea:ABC-C"
                        
                        // For a RegionTarget
                        // "__typename": "LocationTarget",
                        // "regions": [
                        //   {
                        //     "paths": [
                        //       {
                        //         "latitude": 46.52250830120182,
                        //         "longitude": 6.44529588867186
                        //       },
                        //       {
                        //         "latitude": 46.50738748155647,
                        //         "longitude": 6.420233327636704
                        //       },
                        //       {
                        //         "latitude": 46.50384293084593,
                        //         "longitude": 6.431906301269517
                        //       },
                        //       {
                        //         "latitude": 46.52770511125373,
                        //         "longitude": 6.468641835937485
                        //       }
                        //     ]
                        //   },
                        //   {
                        //     "center": {
                        //       "latitude": 46.50573338665296,
                        //       "longitude": 6.453878957519517
                        //     },
                        //     "radius": 873
                        //   }
                        // ]
                    },
                        "schedule": {
                        "monday": false, 
                        "tuesday": false, 
                        "wednesday": false, 
                        "thursday": false, 
                        "friday": false, 
                        "saturday": false, 
                        "sunday": false, 
                        "start_date": "01.02.2022", 
                        "start_time": "12:55", 
                        "end_date": "02.02.2022", 
                        "end_time": "02:30", 
                        "continuous": true
                        } 
                    }
                    ] 
                }
                }
            

Other examples using for BIV announcements and BIV e-papers:

{
    query {
        announcementMessages: messages(
        type: BIV_ANNOUNCEMENT
        start_time: "00:00"
        end_time: "23:59"
        ) {
            id
            title
            content {
                enabled
                ... on BIVAnnouncementContent {
                gravity
                mode
                periodicity
                announcements {
                    text
                }
                }
            }
            }
            epaperMessages: messages(
            type: BIV_EPAPER_CONTENT
            start_time: "00:00"
            end_time: "23:59"
            ) {
                id
                title
                content {
                    enabled
                    ... on BIVEpaperContent {
                        enabled
                        priority
                        duration
                        content {
                            id
                            ... on SGMediaContent {
                                type
                                value
                            }
                        }
                    }
                }
        }
    }
}

Example response:

{
    "data": {
        "announcementMessages": [
            {
                "id": "7511",
                "title": "test",
                "content": {
                    "enabled": true,
                    "gravity": "MINOR",
                    "mode": "FREQUENCY",
                    "periodicity": 10,
                    "announcements": [
                        {
                            "text": "foo"
                        },
                        {
                            "text": "bar"
                        }
                    ]
                }
            }
        ],
        "epaperMessages": [
            {
                "id": "7511",
                "title": "test",
                "content": {
                    "enabled": true,
                    "priority": 1,
                    "duration": 7,
                    "content": {
                        "id": "37819",
                        "type": "IMAGE",
                        "value": "https://gm-sg-resources-staging.s3-eu-west-1.amazonaws.com/064b4e90c750879af7c529286fad91gd.png"
                    }
                }
            }
        ]
    }
}

Fetch Situations

Returns all Network's Situations.

Example request:

{
    network {
        situations {
            id  
            reason_name {
                de
                en
                fr
                it
            } 
            targets {
                destination_name  
                destination_objectid  
                direction
                kind
                line_objectid
                line_ref
                line_stop_area_objectids
                stop_area_name
                stop_area_objectid
            } 
            participant_ref
            planned
            priority
            publication_window_start_time
            publication_window_end_time
            publishing_actions {
                id
                passenger_information_actions {
                    action_ref
                    id
                    recorded_at_time
                    textual_contents(size: LARGE) {
                        consequence {
                            de
                            en
                            fr
                            it
                        } 
                        description {
                            de
                            en
                            fr
                            it
                        } 
                        duration {
                            de
                            en
                            fr
                            it
                        } 
                        reason {
                            de
                            en
                            fr
                            it
                        } 
                        recommendation {
                            de
                            en
                            fr
                            it
                        } 
                        remark {
                            de
                            en
                            fr
                            it
                        } 
                        size
                        summary {
                            de
                            en
                            fr
                            it
                        } 
                    }
                }
                targets {
                    destination_name
                    destination_objectid
                    direction
                    kind
                    line_objectid
                    line_ref
                    line_stop_area_objectids
                    stop_area_name
                    stop_area_objectid
                }
            } 
            scope_type
            situation_number
            summary {
                de
                en
                fr
                it
            } 
            cause
            consequences {
                condition
                id
                targets {
                    destination_name
                    destination_objectid
                    direction
                    kind
                    line_objectid
                    line_ref
                    line_stop_area_objectids
                    stop_area_name
                    stop_area_objectid
                }
            } 
            creation_time
            validity_start_time
            validity_end_time
            version
        }  
    }
}

Example response:

{
    "data": {
        "network": {
            "situations": [
                {
                    "id": "75",
                    "reason_name": null,
                    "participant_ref": "ski-ems-out-sx_prod",
                    "planned": true,
                    "priority": 3,
                    "publication_window_start_time": "2023-08-22T05:00:00+02:00",
                    "publication_window_end_time": "2500-12-31T01:00:00+01:00",
                    "scope_type": "stop_place",
                    "situation_number": "ch:1:sstid:1:1700c5ed-e993-511b-b3fa-2563567784333",
                    "summary": {
                        "de": "disruption on stop ABC-A",
                        "en": "disruption on stop ABC-A",
                        "fr": "disruption on stop ABC-A",
                        "it": "disruption on stop ABC-A"
                    },
                    "cause": "constructionWork",
                    "creation_time": "2023-08-17T17:34:41+02:00",
                    "validity_start_time": "2023-08-22T05:00:00+02:00",
                    "validity_end_time": "2500-12-31T01:00:00+01:00",
                    "version": "4",
                    "targets": [
                        {
                            "destination_name": null,
                            "destination_objectid": null,
                            "direction": null,
                            "kind": "stop_area",
                            "line_objectid": null,
                            "line_ref": null,
                            "line_stop_area_objectids": null,
                            "stop_area_name": "ABC",
                            "stop_area_objectid": "NETWORK:StopArea:ABC-A"
                        }
                    ],
                    "publishing_actions": [
                        {
                            "id": "53",
                            "passenger_information_actions": [
                                {
                                    "action_ref": "ems-123-0",
                                    "id": "53",
                                    "recorded_at_time": "2023-08-17T17:50:08+02:00",
                                    "textual_contents": [
                                        {
                                            "consequence": {
                                                "de": "Richtung: ABC.",
                                                "en": "Direction: ABC.",
                                                "fr": "Direction : ABC.",
                                                "it": "Direzione: ABC."
                                            },
                                            "description": {
                                                "de": "Betroffen sind die Busse 123.",
                                                "en": "Bus 123 is affected.",
                                                "fr": "Les bus 123 sont concernés.",
                                                "it": "L'autobus 123 è interessato."
                                            },
                                            "duration": {
                                                "de": "Die Dauer der Einschränkung ist unbestimmt.",
                                                "en": "The duration of the restriction is not known.",
                                                "fr": "La durée de la perturbation est indéterminée.",
                                                "it": "La durata della perturbazione è indeterminata."
                                            },
                                            "reason": {
                                                "de": "Der Grund dafür sind Bauarbeiten.",
                                                "en": "This is due to construction work.",
                                                "fr": "Des travaux en sont la cause.",
                                                "it": "La causa sono lavori di costruzione."
                                            },
                                            "recommendation": {
                                                "de": "Provisorische Haltestelle: 30 m nach vorne.",
                                                "en": "Temporary stop: 30 m forward.",
                                                "fr": "Arrêt provisoire : 30 m en avant.",
                                                "it": "Fermata provvisoria: 30 m davanti."
                                            },
                                            "remark": null,
                                            "size": "LARGE",
                                            "summary": {
                                                "de": "Die Haltestelle Stop ABC ist verschoben.",
                                                "en": "The Stop ABC stop has been moved.",
                                                "fr": "L’arrêt Stop ABC est déplacé.",
                                                "it": "La fermata Stop ABC è stata spostata."
                                            }
                                        }
                                    ]
                                }
                            ],
                            "targets": [
                                {
                                    "destination_name": null,
                                    "destination_objectid": null,
                                    "direction": "forward",
                                    "kind": "line",
                                    "line_objectid": "NETWORK:Line:123",
                                    "line_ref": "85:001:123",
                                    "line_stop_area_objectids": [
                                        "NETWORK:StopArea:ABC-A"
                                    ],
                                    "stop_area_name": null,
                                    "stop_area_objectid": null
                                }
                            ]
                        }
                    ],
                    "consequences": [
                        {
                            "condition": "unknown",
                            "id": "62",
                            "targets": [
                                {
                                    "destination_name": null,
                                    "destination_objectid": null,
                                    "direction": "forward",
                                    "kind": "line",
                                    "line_objectid": "NETWORK:Line:123",
                                    "line_ref": "85:001:123",
                                    "line_stop_area_objectids": [
                                        "NETWORK:StopArea:ABC-A"
                                    ],
                                    "stop_area_name": null,
                                    "stop_area_objectid": null
                                }
                            ]
                        },
                        {
                            "condition": "unknown",
                            "id": "63",
                            "targets": [
                                {
                                    "destination_name": null,
                                    "destination_objectid": null,
                                    "direction": "forward",
                                    "kind": "line",
                                    "line_objectid": "NETWORK:Line:123",
                                    "line_ref": "85:001:123",
                                    "line_stop_area_objectids": [
                                        "NETWORK:StopArea:ABC-A"
                                    ],
                                    "stop_area_name": null,
                                    "stop_area_objectid": null
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    }
}

Line API

The Line API is used to fetch informations related to lines such as next departures and stop points.

Fetch All Lines And Stops

Fetch all lines and stops

Example request:

network {
    lines {
        objectid
        stop_areas {
            id
        }
        stop_points {
            id
        }
    }
}       

Example response:

{
    "data": {
        "network": {
            "lines": [
                {
                    "objectid": "NETWORK:Line:123",
                    "stop_areas": [
                        {
                            "id": "NETWORK:StopArea:ABC"
                        },
                        {
                            "id": "NETWORK:StopArea:DEF"
                        }
                    ],
                    "stop_points": [
                        {
                            "id": "NETWORK:StopArea:ABC-01"
                        },
                        {
                            "id": "NETWORK:StopArea:ABC-02"
                        },
                        {
                            "id": "NETWORK:StopArea:DEF-01"
                        }
                    ]
                }
            ]
        }
    }
}

Fetch Line

Allows to fetch information for a given line and direction.

Example request:

line(line_id: "NETWORK:Line:123", way: FORWARD) { 
    id
    name
    way
    stops {
        id
        name
        stop_points {
            latitude
            longitude      
            departures {
                th
                rt
                destination
                th_platform
                platform
                cancelled
                additional
            } 
        }
    }
}

Example response:

{
    "data": {
        "line": {
            "id": "NETWORK:Line:123",
            "name": "202",
            "way": "FORWARD",
            "stops": [
                {
                    "id": "NETWORK:StopArea:ABC-A",
                    "name": "ABC, A",
                    "stop_points": [
                        {
                            "latitude": 46.6544237,
                            "longitude": 6.505063,
                            "departures": [
                                {
                                    "th": "2022-03-22T13:31:00+01:00",
                                    "rt": null,
                                    "destination": "Dest",
                                    "th_platform": "TH",
                                    "platform": "RT",
                                    "cancelled": false,
                                    "additional": false
                                },
                                {
                                    "th": "2022-03-22T13:46:00+01:00",
                                    "rt": null,
                                    "destination": "Dest",
                                    "th_platform": "TH",
                                    "platform": "RT",
                                    "cancelled": false,
                                    "additional": false
                                },
                                {
                                    "th": "2022-03-22T14:01:00+01:00",
                                    "rt": null,
                                    "destination": "Dest",
                                    "th_platform": "TH",
                                    "platform": "RT",
                                    "cancelled": false,
                                    "additional": false
                                }
                            ]
                        },
                        {
                            "latitude": 0,
                            "longitude": 0,
                            "departures": []
                        }
                    ]
                },
                {
                    "id": "NETWORK:StopArea:ABC-B",
                    "name": "ABC, B",
                    "stop_points": [
                        {
                            "latitude": 46.6544237,
                            "longitude": 6.505063,
                            "departures": [
                                {
                                    "th": "2022-03-22T13:31:30+01:00",
                                    "rt": null,
                                    "destination": "Dest",
                                    "th_platform": "TH",
                                    "platform": "RT",
                                    "cancelled": false,
                                    "additional": false
                                },
                                {
                                    "th": "2022-03-22T13:46:30+01:00",
                                    "rt": null,
                                    "destination": "Dest",
                                    "th_platform": "TH",
                                    "platform": "RT",
                                    "cancelled": false,
                                    "additional": false
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    }
}

Please note it is possible to subscribe to the Fetch Line API as follow:

subscription { 
    line(line_id: "NETWORK:Line:123", way:FORWARD) {
        id
        name
        way
        stops {
            id
            name
            stop_points {
                id
                departures {
                    th
                    rt
                    destination
                    th_platform
                    platform
                    cancelled
                    additional
                }
                latitude
                longitude
            } 
        }
    }
}

Fetch StopPoint

Allows to fetch information related to a specific StopPoint.

It is possible to include or exlude specific lines on connecting_lines using the include_line_ids and exclude_line_ids parameters.

Example query:

fragment StopPoint on StopPointWithConnections {
    id
    latitude
    longitude
    platform
    name
    connecting_lines {
        id
        name
        colour
    }
}
query {
    network {
        stop_point(id:"NETWORK:StopArea:ABC-A") {
            ...StopPoint
            connecting_lines {
                departures {
                    th
                    rt
                    additional
                    cancelled
                    destination
                    platform
                }
            }
        }
    }
}

Example response:

{
    "data": {
        "network": {
            "stop_point": {
                "connecting_lines": [
                    {
                        "departures": [
                            {
                                "th": "2022-03-25T09:59:00+01:00",
                                "rt": null,
                                "additional": false,
                                "cancelled": false,
                                "destination": "ABC, A",
                                "platform": null
                            },
                            {
                                "th": "2022-03-25T10:59:00+01:00",
                                "rt": null,
                                "additional": false,
                                "cancelled": false,
                                "destination": "ABC, A",
                                "platform": null
                            },
                            {
                                "th": "2022-03-25T11:59:00+01:00",
                                "rt": null,
                                "additional": false,
                                "cancelled": false,
                                "destination": "ABC, A",
                                "platform": null
                            }
                        ],
                        "id": "NETWORK:Line:123",
                        "name": "123",
                        "colour": "ff0000"
                    },
                    {
                        "departures": [],
                        "id": "NETWORK:Line:456",
                        "name": "456",
                        "colour": "00ff00"
                    }
                ],
                "id": "Centre-VMCV:StopArea:ABC-A",
                "latitude": 46.6544237,
                "longitude": 6.505063,
                "platform": null,
                "name": "ABC-A"
            }
        }
    }
}

Fetch Next Departures for a StopPoint

Allows to fetch next departures information in relation with a given StopPoint. This includes as well external connecting departures such as the ones returned by OJP.

Possible arguments are:

  • stop_id: Object ID of the stop area or stop point to get departures for (required)
  • lines: Filter by line ids
  • excluded_lines: Filter by excluding line ids
  • limit: Number of results to return
  • external_connections: Include external connections
  • internal_connections: Include internal connections
  • use_connection_settings: Use configured connection settings for this stop area

Example query:

query {
  next_departures(stop_id: "NETWORK:StopArea:ABC-A") {
      network
      line_id
      color
      number
      kind
      stop_point_id
      way
      origin
      destination
      th_destination
      th_platform
      platform
      vehicle_journey_id
      stop_area_id
      aimed_departure_time
      expected_departure_time
      aimed_arrival_time
      expected_arrival_time
      departure_status
      arrival_status
      cancelled_at
      order
      moved
      connection
      external
  }
}

Example response:

{
  "data": {
    "next_departures": [
      {
        "network": "NETWORK A",
        "line_id": "NETWORK_A:Line:123",
        "color": "ff0000",
        "number": "100",
        "kind": "bus",
        "stop_point_id": "NETWORK_A:StopArea:ABC-A",
        "way": "backward",
        "origin": "Origin City",
        "destination": "Destination City",
        "th_destination": "Origin City",
        "th_platform": "A",
        "platform": "A",
        "vehicle_journey_id": "NETWORK_A:VehicleJourney:VJ_123",
        "stop_area_id": "NETWORK_A:StopArea:ABC",
        "aimed_departure_time": "2025-08-06T08:39:00+02:00",
        "expected_departure_time": "2025-08-06T08:39:00+02:00",
        "aimed_arrival_time": "2025-08-06T08:38:00+02:00",
        "expected_arrival_time": "2025-08-06T08:38:06+02:00",
        "departure_status": "ON_TIME",
        "arrival_status": "ON_TIME",
        "cancelled_at": null,
        "order": 0,
        "moved": false,
        "connection": false,
        "external": false
      },
      {
        "network": "NETWORK B",
        "line_id": "ojp:96158:",
        "color": null,
        "number": "345",
        "kind": "bus",
        "stop_point_id": "8500000",
        "way": "forward",
        "origin": "Origin City",
        "destination": "Destination City",
        "th_destination": "Origin City",
        "th_platform": null,
        "platform": "E",
        "vehicle_journey_id": "ojp:96158::H:j25:13:12345",
        "stop_area_id": "",
        "aimed_departure_time": "2025-08-06T08:40:00+02:00",
        "expected_departure_time": "2025-08-06T08:40:00+02:00",
        "aimed_arrival_time": null,
        "expected_arrival_time": null,
        "departure_status": "ON_TIME",
        "arrival_status": "ON_TIME",
        "cancelled_at": null,
        "order": 0,
        "moved": false,
        "connection": true,
        "external": true
      }
    ]
  }
}

VehicleInfo API

The VehicleInfo API is used to retrieve information about vehicles.

Depending on the projects and system integration, it might be possible to have access to deeper information such as odometer, gps or stop requests.

Fetch VehicleInfo

Allows to fetch vehicle informations. Only latest information of a vehicle will be returned.

Example request:

network 
{
    vehicles 
    {
        kind
        number
        vehicle_journey {
            state
        }
        gps 
        {
            latitude
            longitude
            accuracy
            timestamp
        } 
    }
} 

Example response:

{
    "data": {
        "network": {
            "vehicles": [
                {
                    "kind": "BUS",
                    "number": "101",
                    "vehicle_journey": null,
                    "gps": {
                        "latitude": 46.6544237,
                        "longitude": 6.505063,
                        "accuracy": 34.6335,
                        "timestamp": "2022-03-22T00:26:10+01:00"
                    }
                },
                {
                    "kind": "BUS",
                    "number": "102",
                    "vehicle_journey": null,
                    "gps": {
                        "latitude": 46.6544237,
                        "longitude": 6.505063,
                        "accuracy": 15.4805,
                        "timestamp": "2022-03-21T19:05:17+01:00"
                    }
                }
            ]
        }
    }
}

It is possible to subscribe to vehicles as well as follow:

subscription
{
    vehicle {
        id
        number
        vehicle_journey {
            direction
            journey_pattern {
                direction
                objectid 
            }
            objectid
            state 
        }
        gps {
            latitude
            longitude
            accuracy
            timestamp
        }
    }
}

Manoeuver API

The Manoeuvre API is used to manipulate disruptions such as deviations, injections or terminus modifications.

Fetch Disruptions

Allows to fetch disruptions.

Example request:

disruptions 
            {
                id
                kind
            
                ... on RealtimeDeviation {
                    kind
                    line_objectid
                    direction
                    journey_pattern_objectid
                    vehicle_journey_objectids
                    dates
                    state
            
                    entry_stop_point_id
                    exit_stop_point_id
                    served_stop_point_ids
                    unserved_stop_point_ids
            
                    impacted_stops {
                        id
                        position
                        departure_time
                        arrival_time
                    }
                }
            
                ... on RealtimeTerminusModification {
                    id
                    state
                    terminus_objectid
                    vehicle_journey_objectids
                    new_objectid
                    direction
                    line_objectid
                    journey_pattern_objectid
                    dates
            
                    unserved_start_stop_point_ids
                    unserved_end_stop_point_ids
                }    
            
                ... on RealtimeInjection {
                    id
                    state
                    direction
                    line_objectid
                    journey_pattern_objectid
                    dates
                    stops {
                        objectid
                        arrival_time
                        departure_time
                        state
                        platform_name
                    }
                }    
            }
            

Example response:

{
    "data": {
        "disruptions": [
            {
                "id": "NETWORK:VehicleJourney:123 - A - 101 - 9463cf33",
                "kind": "INJECTION",
                "state": "ACTIVE",
                "direction": "FORWARD",
                "line_objectid": "NETWORK:Line:123",
                "journey_pattern_objectid": "NETWORK:JourneyPattern:123 - A - 101",
                "dates": [
                    "18.03.2022",
                    "19.03.2022"
                ],
                "stops": [
                    {
                        "objectid": "NETWORK:StopArea:ABC_GARE-10",
                        "arrival_time": null,
                        "departure_time": "19:55:00",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_POST-02",
                        "arrival_time": "19:55:29",
                        "departure_time": "19:55:29",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_CASI-01",
                        "arrival_time": "19:56:31",
                        "departure_time": "19:56:31",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_TEMP-01",
                        "arrival_time": "19:57:00",
                        "departure_time": "19:57:00",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_BLAN-01",
                        "arrival_time": "19:58:21",
                        "departure_time": "19:58:21",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_PVER-01",
                        "arrival_time": "19:59:27",
                        "departure_time": "19:59:27",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_BIEF-01",
                        "arrival_time": "20:00:01",
                        "departure_time": "20:00:01",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_TAUD-01",
                        "arrival_time": "20:01:00",
                        "departure_time": "20:01:00",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_VILL-01",
                        "arrival_time": "20:02:40",
                        "departure_time": "20:02:40",
                        "state": "ACTIVE",
                        "platform_name": null
                    },
                    {
                        "objectid": "NETWORK:StopArea:ABC_PIER-01",
                        "arrival_time": "20:04:40",
                        "departure_time": null,
                        "state": "ACTIVE",
                        "platform_name": null
                    }
                ]
            }
        ]
    }
}

It's possible to filter disruptions by kind.

Possible values: DEVIATION, INJECTION, TERMINUS_MODIFICATION

Example request:

{
                disruptions(kinds:[DEVIATION]) {
                    id
                    kind
                    line_objectid
                    direction
                    journey_pattern_objectid
                    vehicle_journey_objectids
                    dates
                    state
                    ...on RealtimeDeviation {
                        entry_stop_point_id
                        exit_stop_point_id
                        served_stop_point_ids
                        unserved_stop_point_ids
            
                        impacted_stops {
                            id
                            position
                            departure_time
                            arrival_time
                        }
                    }
                }
            }
            

Example response:

[
    {
        "id": "f3e01c9a02644tz7yfee8342a5de52a8",
        "kind": "DEVIATION",
        "line_objectid": "NETWORK:Line:LIGNE1",
        "direction": "FORWARD",
        "journey_pattern_objectid": "NETWORK:JourneyPattern:L1R1",
        "vehicle_journey_objectids": [
            "NETWORK:VehicleJourney:MIL30625"
        ],
        "dates": [
            "14.08.2018"
        ],
        "state": "ACTIVE",
        "entry_stop_point_id": "NETWORK:StopArea:GARE01",
        "exit_stop_point_id": "NETWORK:StopArea:GYM01",
        "served_stop_point_ids": [
            "NETWORK:StopArea:ABC01"
        ],
        "unserved_stop_point_ids": [
            "NETWORK:StopArea:DEF01",
            "NETWORK:StopArea:GHI01"
        ],
        "impacted_stops": []
    }
]

It is possible to subscribe to disruptions.

subscription Deviation {
    deviation {
        id 
        dates
        direction 
        impacted_stops {
            id
            arrival_time
            departure_time
            position
        }
        entry_stop_point_id
        exit_stop_point_id
        served_stop_point_ids
        unserved_stop_point_ids
        journey_pattern_objectid
        kind
        line_objectid
        state
        vehicle_journey_objectids
    }
}
subscription DeviationCancellations {
    deviation_cancelled
}
subscription TerminusModification {
    terminus_modification {
        id
        dates
        direction
        journey_pattern_objectid
        kind
        line_objectid
        new_objectid
        state
        terminus_objectid
        vehicle_journey_objectids
        unserved_start_stop_point_ids
        unserved_end_stop_point_ids
    }
}
subscription TerminusModificationCancellations {
    terminus_modification_cancelled
}
subscription Injection {
    injection {
        id
        dates 
        direction 
        journey_pattern_objectid
        kind
        line_objectid
        state
        stops {
            objectid
            arrival_time
            departure_time
            platform_name
            state
            th_platform_name
        }
        vehicle_journey_objectids
    }
}
subscription InjectionCancellations {
    injection_cancelled
}

TM Creation

Create a new Terminus Modification

Example request:

mutation {
    create_terminus_modification(terminus_modification: {line_objectid: "NETWORK:Line:LINE_ID", direction: FORWARD, journey_pattern_objectid: "NETWORK:JourneyPattern:JP_ID", terminus_objectid: "NETWORK:StopArea:SP_ID" new_terminus_objectid: "NETWORK:StopArea:NEW_SP_ID", vehicle_journey_objectids: ["NETWORK:VehicleJourney:VJ_ID"]}) {
    terminus_modifications{
        dates
        direction
        id
        journey_pattern_objectid
        kind
        line_objectid
        new_objectid
        state
        terminus_objectid
        vehicle_journey_objectids
        unserved_start_stop_point_ids
        unserved_end_stop_point_ids
    }
    }
}

Example response:

{
    "data": {
        "create_terminus_modification": {
            "terminus_modifications": [
                {
                    "dates": [
                        "24.11.2022"
                    ],
                    "direction": "FORWARD",
                    "id": "VE0tMTE2Mg==",
                    "journey_pattern_objectid": "NETWORK:JourneyPattern:JP_ID",
                    "kind": "TERMINUS_MODIFICATION",
                    "line_objectid": "NETWORK:Line:LINE_ID",
                    "new_objectid": "NETWORK:StopArea:NEW_SP_ID",
                    "state": "ACTIVE",
                    "terminus_objectid": "NETWORK:StopArea:SP_ID",
                    "vehicle_journey_objectids": [
                        "NETWORK:VehicleJourney:VJ_ID"
                    ],
                    "unserved_start_stop_point_ids": [
                        "NETWORK:StopArea:ABC-01",
                        "NETWORK:StopArea:DEF-01",
                        "NETWORK:StopArea:GHI-01",
                        "NETWORK:StopArea:JKL-01",
                        "NETWORK:StopArea:MNO-01"
                    ],
                    "unserved_end_stop_point_ids": []
                }
            ]
        }
    }
}

TM Deletion

Delete an existing Terminus Modification

Example request:

mutation {
    delete_terminus_modification(id: "VE0tMTE2Mg==") {
        errors
    }
}

Example response:

{
    "data": {
        "delete_terminus_modification": {
            "errors": []
        }
    }
}

Injection Creation

Create a new Injection.

Please note that you need to use StopPoints and not StopAreas when defining the Stops.

Example request:

mutation {
    create_injection(injection: {line_objectid: "NETWORK:Line:LINE_ID", direction: FORWARD, journey_pattern_objectid: "NETWORK:JourneyPattern:JP_ID", date_start: "2022-11-24", date_end: "2022-11-24", stops: [{stop_point_objectid: "NETWORK:StopPoint:SP_ID_1", departure_time: "16:12:00", arrival_time: "16:11:00"}, {stop_point_objectid: "NETWORK:StopPoint:SP_ID_2", departure_time: "16:15:00", arrival_time: "16:15:00"}, {stop_point_objectid: "NETWORK:StopPoint:SP_ID_3", departure_time: "16:20:00", arrival_time: "16:18:00"}]}) {
        injection {
            dates
            direction
            id
            journey_pattern_objectid
            kind
            line_objectid
            state
            stops {
                arrival_time
                departure_time
                objectid
                platform_name
                state
                th_platform_name
            }
            vehicle_journey_objectids
        }
    }
}

Example response:

{
    "data": {
        "create_injection": {
            "injection": {
                "dates": [
                    "24.11.2022"
                ],
                "direction": "FORWARD",
                "id": "NETWORK:VehicleJourney:VJ_ID - 02e90081",
                "journey_pattern_objectid": "NETWORK:JourneyPattern:JP_ID",
                "kind": "INJECTION",
                "line_objectid": "NETWORK:Line:LINE_ID",
                "state": "ACTIVE",
                "stops": [
                    {
                        "arrival_time": "16:11:00",
                        "departure_time": "16:12:00",
                        "objectid": "NETWORK:StopArea:SP_ID_1",
                        "platform_name": null,
                        "state": "ACTIVE",
                        "th_platform_name": null
                    },
                    {
                        "arrival_time": "16:15:00",
                        "departure_time": "16:15:00",
                        "objectid": "NETWORK:StopArea:SP_ID_2",
                        "platform_name": null,
                        "state": "ACTIVE",
                        "th_platform_name": null
                    },
                    {
                        "arrival_time": "16:18:00",
                        "departure_time": "16:20:00",
                        "objectid": "NETWORK:StopArea:SP_ID_3",
                        "platform_name": null,
                        "state": "ACTIVE",
                        "th_platform_name": null
                    }
                ],
                "vehicle_journey_objectids": [
                    "NETWORK:VehicleJourney:VJ_ID - 02e90081"
                ]
            }
        }
    }
}

Injection Update

Update an Injection

Example request:

mutation {
    update_injection(objectid: "NETWORK:VehicleJourney:VJ_ID - c544388e", injection: {line_objectid: "NETWORK:Line:LINE_ID", direction: FORWARD, journey_pattern_objectid: "NETWORK:JourneyPattern:JP_ID", date_start: "2022-11-24", date_end: "2022-11-24", stops: [{stop_point_objectid: "NETWORK:StopPoint:SP_ID_1", departure_time: "16:13:00", arrival_time: "16:12:00"}, {stop_point_objectid: "NETWORK:StopPoint:SP_ID_2", departure_time: "16:16:00", arrival_time: "16:16:00"}, {stop_point_objectid: "NETWORK:StopPoint:SP_ID_3", departure_time: "16:21:00", arrival_time: "16:19:00"}]}) {
        injection {
            dates
            direction
            id
            journey_pattern_objectid
            kind
            line_objectid
            state
            stops {
                arrival_time
                departure_time
                objectid
                platform_name
                state
                th_platform_name
            }
            vehicle_journey_objectids
        }
    }
}

Example response:

{
    "data": {
        "update_injection": {
            "injection": {
                "dates": [
                    "24.11.2022"
                ],
                "direction": "FORWARD",
                "id": "NETWORK:VehicleJourney:VJ_ID - c544388e",
                "journey_pattern_objectid": "NETWORK:JourneyPattern:JP_ID",
                "kind": "INJECTION",
                "line_objectid": "NETWORK:Line:LINE_ID",
                "state": "ACTIVE",
                "stops": [
                    {
                        "arrival_time": "16:12:00",
                        "departure_time": "16:13:00",
                        "objectid": "NETWORK:StopArea:SP_ID_1",
                        "platform_name": null,
                        "state": "ACTIVE",
                        "th_platform_name": null
                    },
                    {
                        "arrival_time": "16:16:00",
                        "departure_time": "16:16:00",
                        "objectid": "NETWORK:StopArea:SP_ID_2",
                        "platform_name": null,
                        "state": "ACTIVE",
                        "th_platform_name": null
                    },
                    {
                        "arrival_time": "16:19:00",
                        "departure_time": "16:21:00",
                        "objectid": "NETWORK:StopArea:SP_ID_3",
                        "platform_name": null,
                        "state": "ACTIVE",
                        "th_platform_name": null
                    }
                ],
                "vehicle_journey_objectids": [
                    "NETWORK:VehicleJourney:VJ_ID - c544388e"
                ]
            }
        }
    }
}

Injection Deletion

Delete an Injection

Example request:

mutation {
    delete_injection(id: "NETWORK:VehicleJourney:VJ_ID - 02e90081") {
        errors
    }
}

Example response:

{
    "data": {
        "delete_injection": {
            "errors": []
        }
    }
}

VehicleJourney API

The VehicleJourney API allows to retrieves information about Vehicle Journeys and Stops

Deactivate a Stop

Deactivate a Stop of a VehicleJourney

Example request:

mutation {
    update_vehicle_journey_stop(stop: {vehicle_journey_objectid: "NETWORK:VehicleJourney:VJ_ID", stop_objectid: "NETWORK:StopArea:STOP_ID", state: INACTIVE}) {
        stop {
            objectid
            state
        }
    }
}

Example response:

{
    "data": {
        "update_vehicle_journey_stop": {
            "stop": {
                "objectid": "NETWORK:StopArea:STOP_ID",
                "state": "INACTIVE"
            }
        }
    }
}

Activate a Stop

Activate a Stop of a VehicleJourney

Example request:

mutation {
    update_vehicle_journey_stop(stop: {vehicle_journey_objectid: "NETWORK:VehicleJourney:VJ_ID", stop_objectid: "NETWORK:StopArea:STOP_ID", state: ACTIVE}) {
        stop {
            objectid
            state
        }
    }
}

Example response:

{
    "data": {
        "update_vehicle_journey_stop": {
            "stop": {
                "objectid": "NETWORK:StopArea:STOP_ID",
                "state": "ACTIVE"
            }
        }
    }
}

Departure Delay

Define a delay to a departure

Example request:

mutation {
    update_vehicle_journey_stop(stop: {vehicle_journey_objectid: "NETWORK:VehicleJourney:VJ_ID", stop_objectid: "NETWORK:StopArea:STOP_ID", departure_delay: 60}) {
        stop {
            objectid
            departure_time
        }
    }
}

Example response:

{
    "data": {
        "update_vehicle_journey_stop": {
            "stop": {
                "objectid": "NETWORK:StopArea:STOP_ID",
                "departure_time": "14:26:00"
            }
        }
    }
}

Arrival Delay

Define a delay to an arrival

Example request:

mutation {
    update_vehicle_journey_stop(stop: {vehicle_journey_objectid: "NETWORK:VehicleJourney:VJ_ID", stop_objectid: "NETWORK:StopArea:STOP_ID", arrival_delay: 120}) {
        stop {
            objectid
            arrival_time
        }
    }
}

Example response:

{
    "data": {
        "update_vehicle_journey_stop": {
            "stop": {
                "objectid": "NETWORK:StopArea:STOP_ID",
                "arrival_time": "14:28:00"
            }
        }
    }
}

Platform Change

Make a platform change.

The platform must exists and have been assigned to a StopPoint in order for this function to work properly.

Example request:

mutation {
    update_vehicle_journey_stop(stop: {vehicle_journey_objectid: "NETWORK:VehicleJourney:VJ_ID", stop_objectid: "NETWORK:StopArea:STOP_ID", platform_name: "A"}) {
        stop {
            objectid
            platform_name
        }
    }
}

Example response:

{
    "data": {
        "update_vehicle_journey_stop": {
            "stop": {
                "objectid": "NETWORK:StopArea:STOP_ID",
                "platform_name": "A"
            }
        }
    }
}

Deactivate a VehicleJourney

Deactivates an entire VehicleJourney

Example request:

mutation {
    update_vehicle_journey(vehicle_journey_objectid: "NETWORK:VehicleJourney:VJ_ID", state: INACTIVE) {
        vehicle_journey {
            objectid
            state
        }
    }
}

Example response:

{
    "data": {
        "update_vehicle_journey": {
            "vehicle_journey": {
                "objectid": "NETWORK:VehicleJourney:VJ_ID",
                "state": "INACTIVE"
            }
        }
    }
}

Activate a VehicleJourney

Activates an entire VehicleJourney

Example request:

mutation {
    update_vehicle_journey(vehicle_journey_objectid: "NETWORK:VehicleJourney:VJ_ID", state: ACTIVE) {
        vehicle_journey {
            objectid
            state
        }
    }
}

Example response:

{
    "data": {
        "update_vehicle_journey": {
            "vehicle_journey": {
                "objectid": "NETWORK:VehicleJourney:VJ_ID",
                "state": "ACTIVE"
            }
        }
    }
}

Fetch Vehicle Journeys

Allows to fetch a list of vehicle journeys

Example request:

{ 
    network { 
        lines { 
            vehicle_journeys { 
                stops {
                    objectid
                    th_platform_name
                    platform_name
                    arrival_time
                    departure_time
                    state
                    vehicle_journey {
                    direction
                    objectid
                    state
                    }
                } 
            } 
        } 
    } 
}

Example response:

{
    "network": {
        "lines": [
            {
                "vehicle_journeys": [
                    {
                        "stops": [
                            {
                                "objectid": "NETWORK:StopArea:GARE01",
                                "th_platform_name": "Quai Gare",
                                "platform_name": "Platform RT",
                                "arrival_time": "06:37:00",
                                "departure_time": "06:38:00",
                                "state": "ACTIVE",
                                "vehicle_journey": {
                                    "direction": "FORWARD",
                                    "objectid": "NETWORK:VehicleJourney:MIL30625",
                                    "state": "ACTIVE"
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Fetch One Vehicle Journey

Allows to fetch the details of one specific vehicle journey

Example request:

query($objectid: ID!) {
    vehicle_journey(id:$objectid) {
        objectid
        id
        journey_pattern_id
        way
        time_table_ids
        schedules
        stops {
            objectid
            departure_time
            arrival_time
            platform_name
            th_platform_name
            state
        }
    }
}

Example response:

{
    "data": {
        "vehicle_journey": {
            "objectid": "NETWORK:VehicleJourney:123",
            "id": "NETWORK:VehicleJourney:123",
            "journey_pattern_id": "NETWORK:JourneyPattern:123",
            "way": "F",
            "time_table_ids": [
                "NETWORK:TimeTable:1"
            ],
            "schedules": [
                {
                    "stop_point_id": "NETWORK:StopArea:ABC-A",
                    "arrival_time": null,
                    "departure_time": "05:46:00",
                    "via_tts_name": null,
                    "via_name": null,
                    "destination_id": "10",
                    "destination_name": "ABC",
                    "destination_tts_name": "ABC",
                    "distance": 310
                },
                {
                    "stop_point_id": "NETWORK:StopArea:DEF-A",
                    "arrival_time": "05:47:00",
                    "departure_time": "05:47:00",
                    "via_tts_name": null,
                    "via_name": null,
                    "destination_id": null,
                    "destination_name": null,
                    "destination_tts_name": null,
                    "distance": 259
                }
            ],
            "stops": [
                {
                    "objectid": "NETWORK:StopArea:ABC-A",
                    "departure_time": "05:46:18",
                    "arrival_time": null,
                    "platform_name": "A",
                    "th_platform_name": "A",
                    "state": "INACTIVE"
                },
                {
                    "objectid": "NETWORK:StopArea:DEF-A",
                    "departure_time": "05:47:32",
                    "arrival_time": "05:47:04",
                    "platform_name": null,
                    "th_platform_name": null,
                    "state": "INACTIVE"
                }
            ]
        }
    }
}

Fetch Cancelled Vehicle Journeys

Allows to fetch canceled vehicle journeys

Example request:

{
    cancelled_vehicle_journeys
}

Example response:

{
    "data": {
        "cancelled_vehicle_journeys": [
            "NETWORK:VehicleJourney:123"
        ]
    }
}

It's possible to subscribe to cancellation and activation of vehicle journeys

subscription { vehicle_journey_activated }
subscription { vehicle_journey_cancelled }

Fetch Cancelled Vehicle Journeys Details

Allows to fetch details of canceled vehicle journeys

Example request:

query {
    cancelled_vehicle_journey_details {
        objectid
        id
        journey_pattern_id
        way
        time_table_ids
        schedules
        stops {
            objectid
            departure_time
            arrival_time
            platform_name
            th_platform_name
            state
        }
    }
}

Example response:

{
    "data": {
        "cancelled_vehicle_journeys": [
            {
                "objectid": "NETWORK:VehicleJourney:123",
                "id": "NETWORK:VehicleJourney:123",
                "journey_pattern_id": "NETWORK:JourneyPattern:123",
                "way": "F",
                "time_table_ids": [
                    "NETWORK:TimeTable:1"
                ],
                "schedules": [
                    {
                        "stop_point_id": "NETWORK:StopArea:ABC-A",
                        "arrival_time": null,
                        "departure_time": "05:46:00",
                        "via_tts_name": null,
                        "via_name": null,
                        "destination_id": "10",
                        "destination_name": "ABC",
                        "destination_tts_name": "ABC",
                        "distance": 310
                    },
                    {
                        "stop_point_id": "NETWORK:StopArea:DEF-A",
                        "arrival_time": "05:47:00",
                        "departure_time": "05:47:00",
                        "via_tts_name": null,
                        "via_name": null,
                        "destination_id": null,
                        "destination_name": null,
                        "destination_tts_name": null,
                        "distance": 259
                    }
                ],
                "stops": [
                    {
                        "objectid": "NETWORK:StopArea:ABC-A",
                        "departure_time": "05:46:18",
                        "arrival_time": null,
                        "platform_name": "A",
                        "th_platform_name": "A",
                        "state": "INACTIVE"
                    },
                    {
                        "objectid": "NETWORK:StopArea:DEF-A",
                        "departure_time": "05:47:32",
                        "arrival_time": "05:47:04",
                        "platform_name": null,
                        "th_platform_name": null,
                        "state": "INACTIVE"
                    }
                ]
            }
        ]
    }
}

Import API

The Import API allows to programatically schedule an import process through tasks.

Tasks are scheduled to run at a certain time and will import the latest input/import.

An Input represents a list of files to be imported as a whole. It contains the full theorical dataset to load.

A Direct Upload is what allows to actually upload one file on the server. A Direct Upload request will have to be made first in order for the API to return the information to actually upload the file.

Once a Direct Upload has been made, the actual process of uploading a file is made using something like curl or any http library.

Create Direct Upload

Used to create a Direct Upload object that can be used to upload a file by POSTing it.

You declare the kind of file you want to upload as well as its expected etag.

Example request:

mutation {
    create_direct_upload(input: {filename: "LINE.x10", etag: "46372186c25ef27a108550167a434b7a", content_type: "text/plain" }) {
        direct_upload {
            form_data
            id
            method
            url
        }
    }
}

Example response:

{
    "data": {
        "create_direct_upload": {
            "direct_upload": {
                "form_data": {
                    "AWSAccessKeyID": "AKIDBFGHSHBDBKDHKSDB",
                    "x-amz-server-side-encryption": "AES256",
                    "key": "direct_uploads/network/c0014182-c27e-4d67-bf82-95f9d82e4edc/${filename}",
                    "success_action_status": "201",
                    "acl": "public-read",
                    "policy": "eyJoeHBpcmF0aW9uIjoiMjAyMi0xMS0yNFQxMjoyMzowOFoiLCJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJnbS1zaXR0ci1zdGFnaW5nIn0seyJhY2wiOiJwdWJsaWMtcmVhZCJ9LHsieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbiI6IkFFUzI1NiJ9LHsic3VjY2Vzc19hY3Rpb25fc3RhdHVzIjoiMjAxIn0sWyJzdGFydHMtd2l0aCIsIiRjb250ZW50LXR5cGUiLCIiXSxbInN0YXJ0cy13aXRoIiwiJGNvbnRlbnQtZGlzcG9zaXRpb24iLCIiXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsImRpcmVjdF91cGxvYWRzL25ldHdvcmtfOC9jMDAxNDE4Mi1jMjdlLTRkNjctYmY4Mi05NWY5ZDgyZTRlZGMvIl1dfQ==",
                    "signature": "7+Et+Ifll/XQiw0v/fip08Ueim2=",
                    "content-type": "text/plain",
                    "content-disposition": "inline; filename=\"LINE.x10\""
                },
                "id": "10372",
                "method": "POST",
                "url": "https://gm-sittr-staging.s3-eu-west-1.amazonaws.com"
            }
        }
    }
}

See DirectUploadObject section for more information about how to upload said files using curl for instance.

Create Input/Import

Used to create a a new Input containing a list of Direct Upload files.

The latest create input/import will always be the one used when a Task is being processed.

Example request:

mutation {
    create_input(input: {file_ids: [10372], type: VDV, label: "My Import"}) {
        input {
            type
            id
            label
        }
    }
}

Example response:

{
    "data": {
        "create_input": {
            "input": {
                "type": "VDV",
                "id": "514",
                "label": "My Import"
            }
        }
    }
}

Create Task

Tasks are jobs that are scheduled to import a new dataset.

Example request:

mutation {
    create_task(task: {type: IMPORT, run_on: "2022-08-18 12:55:00"}) {
        task {
            id
        }
    }
}

Example response:

{
    "data": {
        "create_task": {
            "task": {
                "id": "2945"
            }
        }
    }
}

Fetch Tasks

Tasks can be queried to have their statuses

A list of tasks can be queried as follow

Example request:

{
    tasks {
        id
        state
    }
}

Example response:

{
    "data": {
        "tasks": [
            {
                "id": "473",
                "state": "SUCCESS"
            },
            {
                "id": "474",
                "state": "SUCCESS"
            }
        ]
    }
}

Export API

The Export API allows to retrieve exported data in a specific format or for a specific usage.

Fetch an Export

Retrieves a specific kind of export. Type can be: THEORICAL, RIV, DRIVER, HEADSIGN

Example request:

query {
    export(type:RIV) {
        checksum
        created_at
        end_at
        id
        url
    } 
}

Example response:

{
    "data": {
        "export": {
            "checksum": "1b68465ca1b5406b70a87f5b0191f7325fb421809078697a2b197f4d2b9fa98b",
            "created_at": "2023-01-25T02:08:01+01:00",
            "end_at": "2023-01-27T02:30:00+01:00",
            "id": "PPwTXL40RqyoSbz0jd8HyA",
            "url": "https://xxxx/yyyy.zip"
        }
    }
}

Note: the checksum is the sha256 of the file and can be computed as follow: shasum -a 256 path/to/file.zip

Directions API

The Directions API allows to fetch the directions based on some parameters.

⚠️ This is a REST-based API. Not a GraphQL one.

List all directions from the given parameters

Supported parameters:

Parameter Description
from_lat, from_lng Coordinates of the origin stop.
from Name of the origin stop.
to_lat, to_lng Coordinates of the destination stop.
to Name of the destination stop.
via, via_didok_id Optional VIA stop (by name or DIDOK ID).
time_mode (Optional) Mode for date and time interpretation. One of:
- LEAVE_AT (default)
- ARRIVE_BY
datetime (Optional) ISO8601-formatted datetime. Defaults to current time.
token Required. Token to access the API.

Example request:

GET /api/v1/directions?from=Lausanne&to=Morges&token=XXX
GET /api/v1/directions?from_lat=46.51679&from_lng=6.62909&to_lat=46.5111&to_lng=6.49397&token=XXX

Example response:

{
    "trips": [
    {
        "id": "ID-6E82494B-B4D2-4535-8F10-7A27427757F0",
        "duration": 2280,
        "start_time": "2024-10-17T06:51:30.000+00:00",
        "end_time": "2024-10-17T07:29:00.000+00:00",
        "transfers": 1,
        "distance": 14290,
        "legs": [
        {
            "id": "1",
            "mode": "walk",
            "start": {...}
            "stop": {...},
            "start_time": "2024-10-17T06:51:30.000+00:00",
            "end_time": "2024-10-17T06:53:30.000+00:00",
            "length_metres": 49,
            "duration": 120,
            "walk_duration": null,
            "buffer_duration": null
        }
        ]
    }
    ]
}
Status Code Meaning Description
400 Bad Request The request is invalid (e.g., malformed or incomplete parameters).
401 Unauthorized The provided token is missing or invalid.

Stop API

Lists stops based on the search query.

⚠️ This is a REST-based API. Not a GraphQL one.

Supported parameters:

Parameter Type Description
q string The search query.

Example request:

GET /api/v1/stops?q=Lausanne&token=XXX

Example response:

"stops": [
    {
        "name": "Lausanne-Flon",
        "location": {
            "lat": 46.5208,
            "lng": 6.63034
        },
        "didok_id": 8501181,
        "transport_modes": ["RAIL"]
    }
]
Status Code Meaning Description
400 Bad Request The request is invalid (e.g., malformed or incomplete parameters).
401 Unauthorized The provided token is missing or invalid.

Queries

cancelled_vehicle_journey_details

Response

Returns [VehicleJourney!]!

Arguments
Name Description
network - ID Object ID of the network to filter vehicle journeys by
lines - [String!] Filter by line ids. Default = []
way - LineWay Filter by direction. Default = null
duration - TimeShort Filter by duration in the future. Default = "02:00:00"
excluded_lines - [String!] Filter by excluding line ids. Default = []
include_injected_vehicle_journeys - Boolean Include injected vehicle journeys. Default = false
page - Int Page number for pagination. Default = 1
per_page - Int Number of disruptions per page. Default = 50

Example

Query
query cancelled_vehicle_journey_details(
  $network: ID,
  $lines: [String!],
  $way: LineWay,
  $duration: TimeShort,
  $excluded_lines: [String!],
  $include_injected_vehicle_journeys: Boolean,
  $page: Int,
  $per_page: Int
) {
  cancelled_vehicle_journey_details(
    network: $network,
    lines: $lines,
    way: $way,
    duration: $duration,
    excluded_lines: $excluded_lines,
    include_injected_vehicle_journeys: $include_injected_vehicle_journeys,
    page: $page,
    per_page: $per_page
  ) {
    id
    journey_pattern {
      direction
      objectid
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    journey_pattern_id
    line {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    objectid
    schedules
    stops {
      arrival_time
      departure_time
      objectid
      platform_name
      state
      th_platform_name
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
    time_table_ids
    way
  }
}
Variables
{
  "network": 4,
  "lines": [""],
  "way": "null",
  "duration": "02:00:00",
  "excluded_lines": [""],
  "include_injected_vehicle_journeys": false,
  "page": 1,
  "per_page": 50
}
Response
{
  "data": {
    "cancelled_vehicle_journey_details": [
      {
        "id": "xyz789",
        "journey_pattern": JourneyPattern,
        "journey_pattern_id": "abc123",
        "line": "NETWORK:Line:123",
        "objectid": "abc123",
        "schedules": [{}],
        "stops": [ExploitationVehicleJourneyStopObject],
        "time_table_ids": ["xyz789"],
        "way": "xyz789"
      }
    ]
  }
}

cancelled_vehicle_journeys

Response

Returns [String!]!

Arguments
Name Description
network - ID Object ID of the network to filter vehicle journeys by
lines - [String!] Filter by line ids. Default = []
way - LineWay Filter by direction. Default = null
duration - TimeShort Filter by duration in the future. Default = "02:00:00"
excluded_lines - [String!] Filter by excluding line ids. Default = []
include_injected_vehicle_journeys - Boolean Include injected vehicle journeys. Default = false
page - Int Page number for pagination. Default = 1
per_page - Int Number of disruptions per page. Default = 50

Example

Query
query cancelled_vehicle_journeys(
  $network: ID,
  $lines: [String!],
  $way: LineWay,
  $duration: TimeShort,
  $excluded_lines: [String!],
  $include_injected_vehicle_journeys: Boolean,
  $page: Int,
  $per_page: Int
) {
  cancelled_vehicle_journeys(
    network: $network,
    lines: $lines,
    way: $way,
    duration: $duration,
    excluded_lines: $excluded_lines,
    include_injected_vehicle_journeys: $include_injected_vehicle_journeys,
    page: $page,
    per_page: $per_page
  )
}
Variables
{
  "network": "4",
  "lines": [""],
  "way": "null",
  "duration": "02:00:00",
  "excluded_lines": [""],
  "include_injected_vehicle_journeys": false,
  "page": 1,
  "per_page": 50
}
Response
{
  "data": {
    "cancelled_vehicle_journeys": ["xyz789"]
  }
}

disruptions

Response

Returns [DisruptionInterface!]!

Arguments
Name Description
network - ID Object ID of the network to filter disruptions by
grouped - Boolean Group Disruptions by Journey Pattern. Defaults to true. Default = true
only_enabled - Boolean Filter only enabled disruptions. Defaults to true. Default = true
kinds - [DisruptionKindEnum!] Kinds of disruptions. Defaults to return all disruptions. Default = [INJECTION, TERMINUS_MODIFICATION, DEVIATION]
operating_date - Date Filter disruptions by operating date. Defaults to all disruptions. Default = null
include_private_lines - Boolean Include private lines in disruptions. Defaults to false. Default = false
page - Int Page number for pagination. Default = 1
per_page - Int Number of disruptions per page. Default = 50

Example

Query
query disruptions(
  $network: ID,
  $grouped: Boolean,
  $only_enabled: Boolean,
  $kinds: [DisruptionKindEnum!],
  $operating_date: Date,
  $include_private_lines: Boolean,
  $page: Int,
  $per_page: Int
) {
  disruptions(
    network: $network,
    grouped: $grouped,
    only_enabled: $only_enabled,
    kinds: $kinds,
    operating_date: $operating_date,
    include_private_lines: $include_private_lines,
    page: $page,
    per_page: $per_page
  ) {
    dates
    direction
    id
    journey_pattern {
      direction
      objectid
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    journey_pattern_objectid
    kind
    line {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    line_objectid
    state
    vehicle_journey_objectids
    vehicle_journeys {
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_id
      line {
        ...LineFragment
      }
      objectid
      schedules
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      time_table_ids
      way
    }
  }
}
Variables
{
  "network": "4",
  "grouped": true,
  "only_enabled": true,
  "kinds": ["INJECTION", "TERMINUS_MODIFICATION", "DEVIATION"],
  "operating_date": null,
  "include_private_lines": false,
  "page": 1,
  "per_page": 50
}
Response
{
  "data": {
    "disruptions": [
      {
        "dates": ["2025-01-01"],
        "direction": "FORWARD",
        "id": "4",
        "journey_pattern": JourneyPattern,
        "journey_pattern_objectid": "xyz789",
        "kind": "TERMINUS_MODIFICATION",
        "line": "NETWORK:Line:123",
        "line_objectid": "xyz789",
        "state": "ACTIVE",
        "vehicle_journey_objectids": [
          "abc123"
        ],
        "vehicle_journeys": [VehicleJourney]
      }
    ]
  }
}

export

Description

Returns the latest export of given type

Response

Returns an ExportObject

Arguments
Name Description
network - ID Object ID of the network
type - ExportType! The Type of export

Example

Query
query export(
  $network: ID,
  $type: ExportType!
) {
  export(
    network: $network,
    type: $type
  ) {
    checksum
    created_at
    end_at
    id
    url
  }
}
Variables
{"network": 4, "type": "THEORICAL"}
Response
{
  "data": {
    "export": {
      "checksum": "xyz789",
      "created_at": "10:15:30Z",
      "end_at": "10:15:30Z",
      "id": "4",
      "url": "abc123"
    }
  }
}

line

Description

Returns the line with stop points and departures

Response

Returns a LineWithDepartures!

Arguments
Name Description
line_id - String!
way - LineWay!

Example

Query
query line(
  $line_id: String!,
  $way: LineWay!
) {
  line(
    line_id: $line_id,
    way: $way
  ) {
    blocks {
      end_stop_point_id
      id
      objectid
      start_stop_point_id
      time_table_id
      vehicle_journey_ids
    }
    color
    hlp_routes {
      journey_pattern_id
      stop_points
    }
    id
    name
    network_id
    number
    objectid
    published_name
    stop_areas {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_points {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    stop_points_departures {
      departures {
        ...DepartureFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    stops {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithDeparturesFragment
      }
      tts_name
    }
    thermometer_stop_areas {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    time_tables {
      days
      id
      objectid
    }
    transport_type
    tts_name
    type
    vehicle_journeys {
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_id
      line {
        ...LineFragment
      }
      objectid
      schedules
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      time_table_ids
      way
    }
    way
  }
}
Variables
{"line_id": "xyz789", "way": "FORWARD"}
Response
{
  "data": {
    "line": {
      "blocks": [Block],
      "color": "abc123",
      "hlp_routes": [HlpRoute],
      "id": "xyz789",
      "name": "xyz789",
      "network_id": "abc123",
      "number": 123,
      "objectid": "xyz789",
      "published_name": "xyz789",
      "stop_areas": [StopArea],
      "stop_points": [StopPoint],
      "stop_points_departures": [StopPointWithDepartures],
      "stops": [StopAreaWithDepartures],
      "thermometer_stop_areas": [StopArea],
      "time_tables": [TimeTable],
      "transport_type": "xyz789",
      "tts_name": "abc123",
      "type": "xyz789",
      "vehicle_journeys": [VehicleJourney],
      "way": "FORWARD"
    }
  }
}

messages

Description

Returns scheduled messages for the given filters

Response

Returns [Message!]!

Arguments
Name Description
type - MessageType!
start_time - Time!
end_time - Time!
active - Boolean

Example

Query
query messages(
  $type: MessageType!,
  $start_time: Time!,
  $end_time: Time!,
  $active: Boolean
) {
  messages(
    type: $type,
    start_time: $start_time,
    end_time: $end_time,
    active: $active
  ) {
    content {
      enabled
    }
    id
    reason
    schedule {
      continuous
      end_date
      end_time
      friday
      monday
      saturday
      start_date
      start_time
      sunday
      thursday
      tuesday
      wednesday
    }
    target {
      ... on LinesTarget {
        ...LinesTargetFragment
      }
      ... on LocationTarget {
        ...LocationTargetFragment
      }
      ... on NetworkTarget {
        ...NetworkTargetFragment
      }
      ... on PlayersTarget {
        ...PlayersTargetFragment
      }
    }
    title
  }
}
Variables
{
  "type": "WEB_SITE",
  "start_time": "10:15:30Z",
  "end_time": "10:15:30Z",
  "active": true
}
Response
{
  "data": {
    "messages": [
      {
        "content": Content,
        "id": 4,
        "reason": "abc123",
        "schedule": Planning,
        "target": LinesTarget,
        "title": "abc123"
      }
    ]
  }
}

network

Description

Returns the network

Response

Returns a Network

Arguments
Name Description
id - ID Optionally select the network by it's Object ID
line_ids - [String!] Limit the the lines and lines_meta fields to include specific lines
skip_if_version - String Only returns network if it is not the specified version
lines_offset - Int Paginate the lines field by an offset
lines_limit - Int Paginate the lines field by number of lines per page

Example

Query
query network(
  $id: ID,
  $line_ids: [String!],
  $skip_if_version: String,
  $lines_offset: Int,
  $lines_limit: Int
) {
  network(
    id: $id,
    line_ids: $line_ids,
    skip_if_version: $skip_if_version,
    lines_offset: $lines_offset,
    lines_limit: $lines_limit
  ) {
    bivs {
      bindings {
        ...BIVBindingFragment
      }
      external_bivs {
        ...ExternalBIVFragment
      }
      id
      name
      player_serials
    }
    end_at
    lines {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    lines_meta
    name
    objectid
    situation {
      cause
      consequences {
        ...SituationConsequenceFragment
      }
      creation_time
      id
      participant_ref
      planned
      priority
      publication_window_end_time
      publication_window_start_time
      publication_windows {
        ...SituationTimePeriodFragment
      }
      publishing_actions {
        ...SituationPublishingActionFragment
      }
      reason_name {
        ...SituationLocalizedTextFragment
      }
      scope_type
      situation_number
      summary {
        ...SituationLocalizedTextFragment
      }
      targets {
        ...SituationTargetFragment
      }
      validity_end_time
      validity_periods {
        ...SituationTimePeriodFragment
      }
      validity_start_time
      version
    }
    situations {
      cause
      consequences {
        ...SituationConsequenceFragment
      }
      creation_time
      id
      participant_ref
      planned
      priority
      publication_window_end_time
      publication_window_start_time
      publication_windows {
        ...SituationTimePeriodFragment
      }
      publishing_actions {
        ...SituationPublishingActionFragment
      }
      reason_name {
        ...SituationLocalizedTextFragment
      }
      scope_type
      situation_number
      summary {
        ...SituationLocalizedTextFragment
      }
      targets {
        ...SituationTargetFragment
      }
      validity_end_time
      validity_periods {
        ...SituationTimePeriodFragment
      }
      validity_start_time
      version
    }
    stop_area {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_areas {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_point {
      connecting_lines {
        ...StopPointConnectingLineFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    stop_points {
      connecting_lines {
        ...StopPointConnectingLineFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    vehicles {
      current_stop {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      current_stop_state
      gps {
        ...LocationObjectFragment
      }
      id
      kind
      master
      number
      odometer_km
      player_serials
      stop_requested
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
    version
  }
}
Variables
{
  "id": "4",
  "line_ids": ["abc123"],
  "skip_if_version": "xyz789",
  "lines_offset": 987,
  "lines_limit": 123
}
Response
{
  "data": {
    "network": {
      "bivs": [BIV],
      "end_at": "2025-01-01",
      "lines": ["NETWORK:Line:123"],
      "lines_meta": {},
      "name": "abc123",
      "objectid": "xyz789",
      "situation": Situation,
      "situations": [Situation],
      "stop_area": StopArea,
      "stop_areas": [StopArea],
      "stop_point": StopPointWithConnections,
      "stop_points": [StopPointWithConnections],
      "vehicles": [Vehicle],
      "version": "abc123"
    }
  }
}

networks

Description

Returns the network

Response

Returns [Network!]!

Arguments
Name Description
ids - [ID!] Object IDs of networks to select. Returns all networks if not specified
line_ids - [String!] Limit the the lines and lines_meta fields to include specific lines
lines_offset - Int Paginate the lines field by an offset
lines_limit - Int Paginate the lines field by number of lines per page

Example

Query
query networks(
  $ids: [ID!],
  $line_ids: [String!],
  $lines_offset: Int,
  $lines_limit: Int
) {
  networks(
    ids: $ids,
    line_ids: $line_ids,
    lines_offset: $lines_offset,
    lines_limit: $lines_limit
  ) {
    bivs {
      bindings {
        ...BIVBindingFragment
      }
      external_bivs {
        ...ExternalBIVFragment
      }
      id
      name
      player_serials
    }
    end_at
    lines {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    lines_meta
    name
    objectid
    situation {
      cause
      consequences {
        ...SituationConsequenceFragment
      }
      creation_time
      id
      participant_ref
      planned
      priority
      publication_window_end_time
      publication_window_start_time
      publication_windows {
        ...SituationTimePeriodFragment
      }
      publishing_actions {
        ...SituationPublishingActionFragment
      }
      reason_name {
        ...SituationLocalizedTextFragment
      }
      scope_type
      situation_number
      summary {
        ...SituationLocalizedTextFragment
      }
      targets {
        ...SituationTargetFragment
      }
      validity_end_time
      validity_periods {
        ...SituationTimePeriodFragment
      }
      validity_start_time
      version
    }
    situations {
      cause
      consequences {
        ...SituationConsequenceFragment
      }
      creation_time
      id
      participant_ref
      planned
      priority
      publication_window_end_time
      publication_window_start_time
      publication_windows {
        ...SituationTimePeriodFragment
      }
      publishing_actions {
        ...SituationPublishingActionFragment
      }
      reason_name {
        ...SituationLocalizedTextFragment
      }
      scope_type
      situation_number
      summary {
        ...SituationLocalizedTextFragment
      }
      targets {
        ...SituationTargetFragment
      }
      validity_end_time
      validity_periods {
        ...SituationTimePeriodFragment
      }
      validity_start_time
      version
    }
    stop_area {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_areas {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_point {
      connecting_lines {
        ...StopPointConnectingLineFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    stop_points {
      connecting_lines {
        ...StopPointConnectingLineFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    vehicles {
      current_stop {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      current_stop_state
      gps {
        ...LocationObjectFragment
      }
      id
      kind
      master
      number
      odometer_km
      player_serials
      stop_requested
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
    version
  }
}
Variables
{
  "ids": ["4"],
  "line_ids": ["xyz789"],
  "lines_offset": 987,
  "lines_limit": 987
}
Response
{
  "data": {
    "networks": [
      {
        "bivs": [BIV],
        "end_at": "2025-01-01",
        "lines": ["NETWORK:Line:123"],
        "lines_meta": {},
        "name": "xyz789",
        "objectid": "abc123",
        "situation": Situation,
        "situations": [Situation],
        "stop_area": StopArea,
        "stop_areas": [StopArea],
        "stop_point": StopPointWithConnections,
        "stop_points": [StopPointWithConnections],
        "vehicles": [Vehicle],
        "version": "abc123"
      }
    ]
  }
}

next_departures

Response

Returns [StopAreaDeparture!]!

Arguments
Name Description
stop_id - String! Object ID of the stop area or stop point to get departures for
lines - [String!] Filter by line ids. Default = []
excluded_lines - [String!] Filter by excluding line ids. Default = []
limit - Int Number of results to return. Default = 10
external_connections - Boolean Include external connections. Default = true
internal_connections - Boolean Include internal connections. Default = true
use_connection_settings - Boolean Use configured connection settings for this stop area. Default = true

Example

Query
query next_departures(
  $stop_id: String!,
  $lines: [String!],
  $excluded_lines: [String!],
  $limit: Int,
  $external_connections: Boolean,
  $internal_connections: Boolean,
  $use_connection_settings: Boolean
) {
  next_departures(
    stop_id: $stop_id,
    lines: $lines,
    excluded_lines: $excluded_lines,
    limit: $limit,
    external_connections: $external_connections,
    internal_connections: $internal_connections,
    use_connection_settings: $use_connection_settings
  ) {
    aimed_arrival_time
    aimed_departure_time
    arrival_status
    cancelled_at
    color
    connection
    departure_status
    destination
    expected_arrival_time
    expected_departure_time
    external
    kind
    line_id
    moved
    network
    number
    order
    origin
    platform
    stop_area_id
    stop_point_id
    th_destination
    th_platform
    vehicle_journey_id
    way
  }
}
Variables
{
  "stop_id": "xyz789",
  "lines": [""],
  "excluded_lines": [""],
  "limit": 10,
  "external_connections": true,
  "internal_connections": true,
  "use_connection_settings": true
}
Response
{
  "data": {
    "next_departures": [
      {
        "aimed_arrival_time": "10:15:30Z",
        "aimed_departure_time": "10:15:30Z",
        "arrival_status": "ON_TIME",
        "cancelled_at": "10:15:30Z",
        "color": "xyz789",
        "connection": true,
        "departure_status": "ON_TIME",
        "destination": "abc123",
        "expected_arrival_time": "10:15:30Z",
        "expected_departure_time": "10:15:30Z",
        "external": true,
        "kind": "abc123",
        "line_id": "abc123",
        "moved": false,
        "network": "abc123",
        "number": "abc123",
        "order": 123,
        "origin": "xyz789",
        "platform": "xyz789",
        "stop_area_id": "xyz789",
        "stop_point_id": "xyz789",
        "th_destination": "xyz789",
        "th_platform": "xyz789",
        "vehicle_journey_id": "abc123",
        "way": "abc123"
      }
    ]
  }
}

tasks

Description

Returns the tasks ordered in descending order by their run date

Response

Returns [TaskObject!]!

Arguments
Name Description
network - ID Object ID of the network to filter tasks by
limit - Int Default = 25
offset - Int Default = 0

Example

Query
query tasks(
  $network: ID,
  $limit: Int,
  $offset: Int
) {
  tasks(
    network: $network,
    limit: $limit,
    offset: $offset
  ) {
    duration
    id
    input {
      id
      label
      type
    }
    run_at
    state
    type
  }
}
Variables
{"network": 4, "limit": 25, "offset": 0}
Response
{
  "data": {
    "tasks": [
      {
        "duration": TimeShort,
        "id": "4",
        "input": InputObject,
        "run_at": "10:15:30Z",
        "state": "QUEUED",
        "type": "IMPORT"
      }
    ]
  }
}

vehicle_journey

Description

Returns the vehicle journey

Response

Returns a VehicleJourney

Arguments
Name Description
id - ID! Object ID of the vehicle journey

Example

Query
query vehicle_journey($id: ID!) {
  vehicle_journey(id: $id) {
    id
    journey_pattern {
      direction
      objectid
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    journey_pattern_id
    line {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    objectid
    schedules
    stops {
      arrival_time
      departure_time
      objectid
      platform_name
      state
      th_platform_name
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
    time_table_ids
    way
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "vehicle_journey": {
      "id": "xyz789",
      "journey_pattern": JourneyPattern,
      "journey_pattern_id": "abc123",
      "line": "NETWORK:Line:123",
      "objectid": "xyz789",
      "schedules": [{}],
      "stops": [ExploitationVehicleJourneyStopObject],
      "time_table_ids": ["xyz789"],
      "way": "abc123"
    }
  }
}

Mutations

create_direct_upload

Description

Create a Direct Upload for uploading a file.

Response

Returns a CreateDirectUploadPayload

Arguments
Name Description
input - DirectUploadInputObject!

Example

Query
mutation create_direct_upload($input: DirectUploadInputObject!) {
  create_direct_upload(input: $input) {
    direct_upload {
      form_data
      id
      method
      url
    }
    errors
  }
}
Variables
{"input": DirectUploadInputObject}
Response
{
  "data": {
    "create_direct_upload": {
      "direct_upload": DirectUploadObject,
      "errors": ["xyz789"]
    }
  }
}

create_injection

Response

Returns a CreateInjectionPayload

Arguments
Name Description
injection - InjectionInputObject!

Example

Query
mutation create_injection($injection: InjectionInputObject!) {
  create_injection(injection: $injection) {
    errors
    injection {
      dates
      direction
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_objectid
      kind
      line {
        ...LineFragment
      }
      line_objectid
      state
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      vehicle_journey_objectids
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
  }
}
Variables
{"injection": InjectionInputObject}
Response
{
  "data": {
    "create_injection": {
      "errors": ["xyz789"],
      "injection": RealtimeInjection
    }
  }
}

create_input

Response

Returns a CreateInputPayload

Arguments
Name Description
input - InputInputObject!

Example

Query
mutation create_input($input: InputInputObject!) {
  create_input(input: $input) {
    errors
    input {
      id
      label
      type
    }
  }
}
Variables
{"input": InputInputObject}
Response
{
  "data": {
    "create_input": {
      "errors": ["abc123"],
      "input": InputObject
    }
  }
}

create_task

Response

Returns a CreateTaskPayload

Arguments
Name Description
task - TaskInputObject!

Example

Query
mutation create_task($task: TaskInputObject!) {
  create_task(task: $task) {
    errors
    task {
      duration
      id
      input {
        ...InputObjectFragment
      }
      run_at
      state
      type
    }
  }
}
Variables
{"task": TaskInputObject}
Response
{
  "data": {
    "create_task": {
      "errors": ["xyz789"],
      "task": TaskObject
    }
  }
}

create_terminus_modification

Arguments
Name Description
terminus_modification - TerminusModificationCreateInputObject!

Example

Query
mutation create_terminus_modification($terminus_modification: TerminusModificationCreateInputObject!) {
  create_terminus_modification(terminus_modification: $terminus_modification) {
    errors
    terminus_modifications {
      dates
      direction
      end_time
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_objectid
      kind
      last_impacted_vj_start_time
      line {
        ...LineFragment
      }
      line_objectid
      new_objectid
      new_stop_point {
        ...StopPointFragment
      }
      start_time
      state
      terminus_modification_type
      terminus_objectid
      terminus_stop_point {
        ...StopPointFragment
      }
      unserved_end_stop_point_ids
      unserved_end_stop_points {
        ...StopPointFragment
      }
      unserved_start_stop_point_ids
      unserved_start_stop_points {
        ...StopPointFragment
      }
      vehicle_journey_objectids
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
  }
}
Variables
{
  "terminus_modification": TerminusModificationCreateInputObject
}
Response
{
  "data": {
    "create_terminus_modification": {
      "errors": ["abc123"],
      "terminus_modifications": [
        RealtimeTerminusModification
      ]
    }
  }
}

delete_injection

Response

Returns a DeleteInjectionPayload

Arguments
Name Description
id - ID!

Example

Query
mutation delete_injection($id: ID!) {
  delete_injection(id: $id) {
    errors
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "delete_injection": {
      "errors": ["xyz789"]
    }
  }
}

delete_terminus_modification

Arguments
Name Description
id - ID!

Example

Query
mutation delete_terminus_modification($id: ID!) {
  delete_terminus_modification(id: $id) {
    errors
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "delete_terminus_modification": {
      "errors": ["xyz789"]
    }
  }
}

update_injection

Response

Returns an UpdateInjectionPayload

Arguments
Name Description
objectid - String!
injection - InjectionInputObject!

Example

Query
mutation update_injection(
  $objectid: String!,
  $injection: InjectionInputObject!
) {
  update_injection(
    objectid: $objectid,
    injection: $injection
  ) {
    errors
    injection {
      dates
      direction
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_objectid
      kind
      line {
        ...LineFragment
      }
      line_objectid
      state
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      vehicle_journey_objectids
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
  }
}
Variables
{
  "objectid": "abc123",
  "injection": InjectionInputObject
}
Response
{
  "data": {
    "update_injection": {
      "errors": ["abc123"],
      "injection": RealtimeInjection
    }
  }
}

update_vehicle_journey

Response

Returns an UpdateVehicleJourneyPayload

Arguments
Name Description
vehicle_journey_objectid - String!
state - ExploitationStateEnum!

Example

Query
mutation update_vehicle_journey(
  $vehicle_journey_objectid: String!,
  $state: ExploitationStateEnum!
) {
  update_vehicle_journey(
    vehicle_journey_objectid: $vehicle_journey_objectid,
    state: $state
  ) {
    errors
    vehicle_journey {
      direction
      journey_pattern {
        ...JourneyPatternFragment
      }
      objectid
      state
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
    }
  }
}
Variables
{
  "vehicle_journey_objectid": "xyz789",
  "state": "ACTIVE"
}
Response
{
  "data": {
    "update_vehicle_journey": {
      "errors": ["abc123"],
      "vehicle_journey": RealtimeVehicleJourney
    }
  }
}

update_vehicle_journey_stop

Response

Returns an UpdateVehicleJourneyStopPayload

Arguments
Name Description
stop - VehicleJourneyStopInputObject!

Example

Query
mutation update_vehicle_journey_stop($stop: VehicleJourneyStopInputObject!) {
  update_vehicle_journey_stop(stop: $stop) {
    errors
    stop {
      arrival_time
      departure_time
      objectid
      platform_name
      state
      th_platform_name
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
  }
}
Variables
{"stop": VehicleJourneyStopInputObject}
Response
{
  "data": {
    "update_vehicle_journey_stop": {
      "errors": ["xyz789"],
      "stop": ExploitationVehicleJourneyStopObject
    }
  }
}

Subscriptions

biv

Response

Returns a BIV

Example

Query
subscription biv {
  biv {
    bindings {
      id
      line_id
      platform {
        ...BIVPlatformFragment
      }
      stop_point_id
      way
    }
    external_bivs {
      id
      name
      player_serials
      provider
    }
    id
    name
    player_serials
  }
}
Response
{
  "data": {
    "biv": {
      "bindings": [BIVBinding],
      "external_bivs": [ExternalBIV],
      "id": 4,
      "name": "abc123",
      "player_serials": ["abc123"]
    }
  }
}

biv_destroyed

Response

Returns an ID!

Example

Query
subscription biv_destroyed {
  biv_destroyed
}
Response
{"data": {"biv_destroyed": "4"}}

deviation

Response

Returns a RealtimeDeviation!

Example

Query
subscription deviation {
  deviation {
    dates
    deviation_type
    direction
    end_time
    entry_stop_point {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    entry_stop_point_id
    exit_stop_point {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    exit_stop_point_id
    id
    impacted_stops {
      arrival_time
      departure_time
      id
      position
      stop_point {
        ...StopPointFragment
      }
    }
    journey_pattern {
      direction
      objectid
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    journey_pattern_objectid
    kind
    last_impacted_vj_start_time
    line {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    line_objectid
    served_stop_point_ids
    served_stop_points {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    start_time
    state
    unserved_stop_point_ids
    unserved_stop_points {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    vehicle_journey_objectids
    vehicle_journeys {
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_id
      line {
        ...LineFragment
      }
      objectid
      schedules
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      time_table_ids
      way
    }
  }
}
Response
{
  "data": {
    "deviation": {
      "dates": ["2025-01-01"],
      "deviation_type": "UNKNOWN",
      "direction": "FORWARD",
      "end_time": "10:15:30Z",
      "entry_stop_point": StopPoint,
      "entry_stop_point_id": "xyz789",
      "exit_stop_point": StopPoint,
      "exit_stop_point_id": "xyz789",
      "id": 4,
      "impacted_stops": [RealtimeImpactedStop],
      "journey_pattern": JourneyPattern,
      "journey_pattern_objectid": "xyz789",
      "kind": "TERMINUS_MODIFICATION",
      "last_impacted_vj_start_time": "10:15:30Z",
      "line": "NETWORK:Line:123",
      "line_objectid": "xyz789",
      "served_stop_point_ids": ["abc123"],
      "served_stop_points": [StopPoint],
      "start_time": "10:15:30Z",
      "state": "ACTIVE",
      "unserved_stop_point_ids": ["xyz789"],
      "unserved_stop_points": [StopPoint],
      "vehicle_journey_objectids": [
        "xyz789"
      ],
      "vehicle_journeys": [VehicleJourney]
    }
  }
}

deviation_cancelled

Response

Returns an ID!

Example

Query
subscription deviation_cancelled {
  deviation_cancelled
}
Response
{"data": {"deviation_cancelled": 4}}

injection

Response

Returns a RealtimeInjection!

Example

Query
subscription injection {
  injection {
    dates
    direction
    id
    journey_pattern {
      direction
      objectid
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    journey_pattern_objectid
    kind
    line {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    line_objectid
    state
    stops {
      arrival_time
      departure_time
      objectid
      platform_name
      state
      th_platform_name
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
    vehicle_journey_objectids
    vehicle_journeys {
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_id
      line {
        ...LineFragment
      }
      objectid
      schedules
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      time_table_ids
      way
    }
  }
}
Response
{
  "data": {
    "injection": {
      "dates": ["2025-01-01"],
      "direction": "FORWARD",
      "id": "4",
      "journey_pattern": JourneyPattern,
      "journey_pattern_objectid": "abc123",
      "kind": "TERMINUS_MODIFICATION",
      "line": "NETWORK:Line:123",
      "line_objectid": "xyz789",
      "state": "ACTIVE",
      "stops": [ExploitationVehicleJourneyStopObject],
      "vehicle_journey_objectids": [
        "abc123"
      ],
      "vehicle_journeys": [VehicleJourney]
    }
  }
}

injection_cancelled

Response

Returns an ID!

Example

Query
subscription injection_cancelled {
  injection_cancelled
}
Response
{"data": {"injection_cancelled": 4}}

line

Description

Returns the line with stop points and departures

Response

Returns a LineWithDepartures!

Arguments
Name Description
line_id - String!
way - LineWay!

Example

Query
subscription line(
  $line_id: String!,
  $way: LineWay!
) {
  line(
    line_id: $line_id,
    way: $way
  ) {
    blocks {
      end_stop_point_id
      id
      objectid
      start_stop_point_id
      time_table_id
      vehicle_journey_ids
    }
    color
    hlp_routes {
      journey_pattern_id
      stop_points
    }
    id
    name
    network_id
    number
    objectid
    published_name
    stop_areas {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_points {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    stop_points_departures {
      departures {
        ...DepartureFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    stops {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithDeparturesFragment
      }
      tts_name
    }
    thermometer_stop_areas {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    time_tables {
      days
      id
      objectid
    }
    transport_type
    tts_name
    type
    vehicle_journeys {
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_id
      line {
        ...LineFragment
      }
      objectid
      schedules
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      time_table_ids
      way
    }
    way
  }
}
Variables
{"line_id": "xyz789", "way": "FORWARD"}
Response
{
  "data": {
    "line": {
      "blocks": [Block],
      "color": "abc123",
      "hlp_routes": [HlpRoute],
      "id": "abc123",
      "name": "xyz789",
      "network_id": "xyz789",
      "number": 123,
      "objectid": "abc123",
      "published_name": "xyz789",
      "stop_areas": [StopArea],
      "stop_points": [StopPoint],
      "stop_points_departures": [StopPointWithDepartures],
      "stops": [StopAreaWithDepartures],
      "thermometer_stop_areas": [StopArea],
      "time_tables": [TimeTable],
      "transport_type": "xyz789",
      "tts_name": "abc123",
      "type": "xyz789",
      "vehicle_journeys": [VehicleJourney],
      "way": "FORWARD"
    }
  }
}

network

Response

Returns a Network

Example

Query
subscription network {
  network {
    bivs {
      bindings {
        ...BIVBindingFragment
      }
      external_bivs {
        ...ExternalBIVFragment
      }
      id
      name
      player_serials
    }
    end_at
    lines {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    lines_meta
    name
    objectid
    situation {
      cause
      consequences {
        ...SituationConsequenceFragment
      }
      creation_time
      id
      participant_ref
      planned
      priority
      publication_window_end_time
      publication_window_start_time
      publication_windows {
        ...SituationTimePeriodFragment
      }
      publishing_actions {
        ...SituationPublishingActionFragment
      }
      reason_name {
        ...SituationLocalizedTextFragment
      }
      scope_type
      situation_number
      summary {
        ...SituationLocalizedTextFragment
      }
      targets {
        ...SituationTargetFragment
      }
      validity_end_time
      validity_periods {
        ...SituationTimePeriodFragment
      }
      validity_start_time
      version
    }
    situations {
      cause
      consequences {
        ...SituationConsequenceFragment
      }
      creation_time
      id
      participant_ref
      planned
      priority
      publication_window_end_time
      publication_window_start_time
      publication_windows {
        ...SituationTimePeriodFragment
      }
      publishing_actions {
        ...SituationPublishingActionFragment
      }
      reason_name {
        ...SituationLocalizedTextFragment
      }
      scope_type
      situation_number
      summary {
        ...SituationLocalizedTextFragment
      }
      targets {
        ...SituationTargetFragment
      }
      validity_end_time
      validity_periods {
        ...SituationTimePeriodFragment
      }
      validity_start_time
      version
    }
    stop_area {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_areas {
      connection_departures
      didok
      id
      name
      objectid
      registration_number
      stop_points {
        ...StopPointWithConnectionsFragment
      }
      tts_name
    }
    stop_point {
      connecting_lines {
        ...StopPointConnectingLineFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    stop_points {
      connecting_lines {
        ...StopPointConnectingLineFragment
      }
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    vehicles {
      current_stop {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      current_stop_state
      gps {
        ...LocationObjectFragment
      }
      id
      kind
      master
      number
      odometer_km
      player_serials
      stop_requested
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
    version
  }
}
Response
{
  "data": {
    "network": {
      "bivs": [BIV],
      "end_at": "2025-01-01",
      "lines": ["NETWORK:Line:123"],
      "lines_meta": {},
      "name": "xyz789",
      "objectid": "abc123",
      "situation": Situation,
      "situations": [Situation],
      "stop_area": StopArea,
      "stop_areas": [StopArea],
      "stop_point": StopPointWithConnections,
      "stop_points": [StopPointWithConnections],
      "vehicles": [Vehicle],
      "version": "abc123"
    }
  }
}

terminus_modification

Response

Returns a RealtimeTerminusModification!

Example

Query
subscription terminus_modification {
  terminus_modification {
    dates
    direction
    end_time
    id
    journey_pattern {
      direction
      objectid
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    journey_pattern_objectid
    kind
    last_impacted_vj_start_time
    line {
      blocks {
        ...BlockFragment
      }
      color
      hlp_routes {
        ...HlpRouteFragment
      }
      id
      name
      network_id
      number
      objectid
      published_name
      stop_areas {
        ...StopAreaFragment
      }
      stop_points {
        ...StopPointFragment
      }
      thermometer_stop_areas {
        ...StopAreaFragment
      }
      time_tables {
        ...TimeTableFragment
      }
      transport_type
      tts_name
      type
      vehicle_journeys {
        ...VehicleJourneyFragment
      }
    }
    line_objectid
    new_objectid
    new_stop_point {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    start_time
    state
    terminus_modification_type
    terminus_objectid
    terminus_stop_point {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    unserved_end_stop_point_ids
    unserved_end_stop_points {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    unserved_start_stop_point_ids
    unserved_start_stop_points {
      didok
      id
      latitude
      longitude
      mobility_restricted_suitability
      name
      objectid
      platform
      platform_tts
      short_name
      stop_area_id
      stop_areas {
        ...StopAreaFragment
      }
      ticket_machine
    }
    vehicle_journey_objectids
    vehicle_journeys {
      id
      journey_pattern {
        ...JourneyPatternFragment
      }
      journey_pattern_id
      line {
        ...LineFragment
      }
      objectid
      schedules
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
      time_table_ids
      way
    }
  }
}
Response
{
  "data": {
    "terminus_modification": {
      "dates": ["2025-01-01"],
      "direction": "FORWARD",
      "end_time": "10:15:30Z",
      "id": "4",
      "journey_pattern": JourneyPattern,
      "journey_pattern_objectid": "xyz789",
      "kind": "TERMINUS_MODIFICATION",
      "last_impacted_vj_start_time": "10:15:30Z",
      "line": "NETWORK:Line:123",
      "line_objectid": "xyz789",
      "new_objectid": "xyz789",
      "new_stop_point": StopPoint,
      "start_time": "10:15:30Z",
      "state": "ACTIVE",
      "terminus_modification_type": "UNKNOWN",
      "terminus_objectid": "abc123",
      "terminus_stop_point": StopPoint,
      "unserved_end_stop_point_ids": [
        "xyz789"
      ],
      "unserved_end_stop_points": [StopPoint],
      "unserved_start_stop_point_ids": [
        "xyz789"
      ],
      "unserved_start_stop_points": [StopPoint],
      "vehicle_journey_objectids": [
        "xyz789"
      ],
      "vehicle_journeys": [VehicleJourney]
    }
  }
}

terminus_modification_cancelled

Response

Returns an ID!

Example

Query
subscription terminus_modification_cancelled {
  terminus_modification_cancelled
}
Response
{"data": {"terminus_modification_cancelled": 4}}

vehicle

Response

Returns a Vehicle

Example

Query
subscription vehicle {
  vehicle {
    current_stop {
      arrival_time
      departure_time
      objectid
      platform_name
      state
      th_platform_name
      vehicle_journey {
        ...RealtimeVehicleJourneyFragment
      }
    }
    current_stop_state
    gps {
      accuracy
      latitude
      longitude
      timestamp
    }
    id
    kind
    master
    number
    odometer_km
    player_serials
    stop_requested
    vehicle_journey {
      direction
      journey_pattern {
        ...JourneyPatternFragment
      }
      objectid
      state
      stops {
        ...ExploitationVehicleJourneyStopObjectFragment
      }
    }
  }
}
Response
{
  "data": {
    "vehicle": {
      "current_stop": ExploitationVehicleJourneyStopObject,
      "current_stop_state": "AT_STOP",
      "gps": LocationObject,
      "id": 4,
      "kind": "BUS",
      "master": false,
      "number": "xyz789",
      "odometer_km": 123,
      "player_serials": ["abc123"],
      "stop_requested": true,
      "vehicle_journey": RealtimeVehicleJourney
    }
  }
}

vehicle_destroyed

Response

Returns an ID!

Example

Query
subscription vehicle_destroyed {
  vehicle_destroyed
}
Response
{"data": {"vehicle_destroyed": "4"}}

vehicle_journey_activated

Response

Returns an ID!

Example

Query
subscription vehicle_journey_activated {
  vehicle_journey_activated
}
Response
{"data": {"vehicle_journey_activated": "4"}}

vehicle_journey_cancelled

Response

Returns an ID!

Example

Query
subscription vehicle_journey_cancelled {
  vehicle_journey_cancelled
}
Response
{"data": {"vehicle_journey_cancelled": "4"}}

Types

BIV

Fields
Field Name Description
bindings - [BIVBinding!]!
external_bivs - [ExternalBIV!]!
id - ID!
name - String!
player_serials - [String!]!
Example
{
  "bindings": [BIVBinding],
  "external_bivs": [ExternalBIV],
  "id": 4,
  "name": "abc123",
  "player_serials": ["xyz789"]
}

BIVAnnouncementBlock

Fields
Field Name Description
text - String!
Example
{"text": "xyz789"}

BIVAnnouncementContent

Fields
Field Name Description
announcements - [BIVAnnouncementBlock!]!
enabled - Boolean!
gravity - BIVAnnouncementGravity!
mode - BIVAnnouncementMode!
periodicity - Int
Example
{
  "announcements": [BIVAnnouncementBlock],
  "enabled": false,
  "gravity": "MAJOR",
  "mode": "FREQUENCY",
  "periodicity": 123
}

BIVAnnouncementGravity

Values
Enum Value Description

MAJOR

Gravity Major

MINOR

Gravity Minor
Example
"MAJOR"

BIVAnnouncementMode

Values
Enum Value Description

FREQUENCY

Mode frequency

DEPARTURE

Mode departure

FIXED_INTERVAL

Mode fixed interval
Example
"FREQUENCY"

BIVBinding

Fields
Field Name Description
id - ID!
line_id - String
platform - BIVPlatform
stop_point_id - String!
way - LineWay
Example
{
  "id": "4",
  "line_id": "xyz789",
  "platform": BIVPlatform,
  "stop_point_id": "abc123",
  "way": "FORWARD"
}

BIVDisruptionGravity

Values
Enum Value Description

MAJOR

Gravity Major

MINOR

Gravity Minor
Example
"MAJOR"

BIVEpaperContent

Fields
Field Name Description
content - SGContent The main content
duration - Int Duration in seconds
enabled - Boolean!
priority - Int
Example
{
  "content": SGContent,
  "duration": 987,
  "enabled": true,
  "priority": 987
}

BIVMessageContent

Fields
Field Name Description
description - String
enabled - Boolean!
end_date - Date
end_time - Time
full_screen - Boolean!
gravity - BIVDisruptionGravity!
title - String!
Example
{
  "description": "xyz789",
  "enabled": true,
  "end_date": "2025-01-01",
  "end_time": "10:15:30Z",
  "full_screen": true,
  "gravity": "MAJOR",
  "title": "abc123"
}

BIVPlatform

Fields
Field Name Description
id - ID!
name - String!
stop_area_id - String!
stop_point_id - String
Example
{
  "id": "4",
  "name": "abc123",
  "stop_area_id": "abc123",
  "stop_point_id": "xyz789"
}

Block

Fields
Field Name Description
end_stop_point_id - String!
id - String!
objectid - String!
start_stop_point_id - String!
time_table_id - String!
vehicle_journey_ids - String!
Example
{
  "end_stop_point_id": "abc123",
  "id": "xyz789",
  "objectid": "xyz789",
  "start_stop_point_id": "xyz789",
  "time_table_id": "xyz789",
  "vehicle_journey_ids": "xyz789"
}

Boolean

Description

Represents true or false values.

Example
true

Content

Description

Base Message Content Interface

Fields
Field Name Description
enabled - Boolean!
Example
{"enabled": false}

Coordinate

Fields
Field Name Description
latitude - Float!
longitude - Float!
Example
{"latitude": 987.65, "longitude": 987.65}

CreateDirectUploadPayload

Description

Autogenerated return type of CreateDirectUpload.

Fields
Field Name Description
direct_upload - DirectUploadObject
errors - [String!]!
Example
{
  "direct_upload": DirectUploadObject,
  "errors": ["abc123"]
}

CreateInjectionPayload

Description

Autogenerated return type of CreateInjection.

Fields
Field Name Description
errors - [String!]!
injection - RealtimeInjection
Example
{
  "errors": ["xyz789"],
  "injection": RealtimeInjection
}

CreateInputPayload

Description

Autogenerated return type of CreateInput.

Fields
Field Name Description
errors - [String!]!
input - InputObject
Example
{
  "errors": ["abc123"],
  "input": InputObject
}

CreateTaskPayload

Description

Autogenerated return type of CreateTask.

Fields
Field Name Description
errors - [String!]!
task - TaskObject
Example
{
  "errors": ["abc123"],
  "task": TaskObject
}

CreateTerminusModificationPayload

Description

Autogenerated return type of CreateTerminusModification.

Fields
Field Name Description
errors - [String!]!
terminus_modifications - [RealtimeTerminusModification!]
Example
{
  "errors": ["abc123"],
  "terminus_modifications": [RealtimeTerminusModification]
}

Date

Description

ISO-8601 formatted Date

Example
"2025-01-01"

DeleteInjectionPayload

Description

Autogenerated return type of DeleteInjection.

Fields
Field Name Description
errors - [String!]!
Example
{"errors": ["xyz789"]}

DeleteTerminusModificationPayload

Description

Autogenerated return type of DeleteTerminusModification.

Fields
Field Name Description
errors - [String!]!
Example
{"errors": ["xyz789"]}

Departure

Fields
Field Name Description
additional - Boolean!
arrival_status - RealtimeStopStatusEnum
cancelled - Boolean!
departure_status - RealtimeStopStatusEnum!
destination - String!
origin - String!
platform - String
rt - Time
th - Time!
th_destination - String!
th_platform - String
Example
{
  "additional": false,
  "arrival_status": "ON_TIME",
  "cancelled": true,
  "departure_status": "ON_TIME",
  "destination": "xyz789",
  "origin": "xyz789",
  "platform": "xyz789",
  "rt": "10:15:30Z",
  "th": "10:15:30Z",
  "th_destination": "xyz789",
  "th_platform": "xyz789"
}

DirectUploadInputObject

Fields
Input Field Description
filename - String! File name
etag - String! MD5 sum of the file to be uploaded
content_type - String! File MIME Type
Example
{
  "filename": "xyz789",
  "etag": "xyz789",
  "content_type": "xyz789"
}

DirectUploadObject

Description

This object describes the settings to use when uploading a file through the API.

You need to send a multipart POST request (see the method field) to the url.The form should contain all fields from form_data and a file field that includes the file to be uploaded.A typical request using curl would look something like this:

curl --request POST \
     --url <<url>> \
     --header 'Content-Type: multipart/form-data' \
     --form AWSAccessKeyID=<<AWSAccessKeyID>> \
     --form x-amz-server-side-encryption=AES256 \
     --form 'key=<<key>>' \
     --form success_action_status=201 \
     --form acl=<<acl>> \
     --form policy=<<policy>> \
     --form 'signature=<<signature>>' \
     --form content-type=application/x10 \
     --form 'content-disposition=inline; filename="JOURNEY.x10"' \
     --form file=@/path/to/file
Fields
Field Name Description
form_data - JSON!
id - ID!
method - String!
url - String!
Example
{
  "form_data": {},
  "id": 4,
  "method": "abc123",
  "url": "abc123"
}

DisruptionInterface

Description

Base Disruption Interface

Fields
Field Name Description
dates - [Date!]! Dates
direction - LineWay! Direction of Line
id - ID! ID
journey_pattern - JourneyPattern! Journey Pattern
journey_pattern_objectid - String! ObjectID of Journey Pattern
kind - DisruptionKindEnum! Disruption Kind
line - Line! Line
line_objectid - String! ObjectID of Line
state - ExploitationStateEnum!
vehicle_journey_objectids - [String!]! ObjectIDs of Vehicle Journeys
vehicle_journeys - [VehicleJourney!]! Vehicle Journeys
Possible Types
DisruptionInterface Types

RealtimeDeviation

RealtimeInjection

RealtimeTerminusModification

Example
{
  "dates": ["2025-01-01"],
  "direction": "FORWARD",
  "id": 4,
  "journey_pattern": JourneyPattern,
  "journey_pattern_objectid": "abc123",
  "kind": "TERMINUS_MODIFICATION",
  "line": "NETWORK:Line:123",
  "line_objectid": "abc123",
  "state": "ACTIVE",
  "vehicle_journey_objectids": ["xyz789"],
  "vehicle_journeys": [VehicleJourney]
}

DisruptionKindEnum

Values
Enum Value Description

TERMINUS_MODIFICATION

Terminus Modification

INJECTION

Injection

DEVIATION

Deviation
Example
"TERMINUS_MODIFICATION"

ExploitationStateEnum

Values
Enum Value Description

ACTIVE

Active

INACTIVE

Inactive
Example
"ACTIVE"

ExploitationVehicleJourneyStopObject

Fields
Field Name Description
arrival_time - TimeShort Arrival Time
departure_time - TimeShort Departure Time
objectid - String! Boarding Stop Area Objectid
platform_name - String Platform Name
state - ExploitationStateEnum! Stop State
th_platform_name - String Theoretical Platform Name
vehicle_journey - RealtimeVehicleJourney! Vehicle Journey
Example
{
  "arrival_time": TimeShort,
  "departure_time": TimeShort,
  "objectid": "xyz789",
  "platform_name": "abc123",
  "state": "ACTIVE",
  "th_platform_name": "xyz789",
  "vehicle_journey": RealtimeVehicleJourney
}

ExploitationVehicleStopStateEnum

Values
Enum Value Description

AT_STOP

At Stop

EXITED_STOP

Exited Stop
Example
"AT_STOP"

ExportObject

Fields
Field Name Description
checksum - String
created_at - Time!
end_at - Time
id - ID!
url - String!
Example
{
  "checksum": "abc123",
  "created_at": "10:15:30Z",
  "end_at": "10:15:30Z",
  "id": 4,
  "url": "abc123"
}

ExportType

Values
Enum Value Description

THEORICAL

Theorical Dump

RIV

RIV Export

DRIVER

Driver Dump

HEADSIGN

Headsign Dump
Example
"THEORICAL"

ExternalBIV

Fields
Field Name Description
id - ID!
name - String!
player_serials - [String!]!
provider - ExternalBIVProvider!
Example
{
  "id": "4",
  "name": "abc123",
  "player_serials": ["xyz789"],
  "provider": "AXENTIA"
}

ExternalBIVProvider

Values
Enum Value Description

AXENTIA

Axentia
Example
"AXENTIA"

Float

Description

Represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

HlpRoute

Fields
Field Name Description
journey_pattern_id - String!
stop_points - [JSON!]
Example
{
  "journey_pattern_id": "xyz789",
  "stop_points": [{}]
}

ID

Description

Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "VXNlci0xMA==") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

InjectionInputObject

Fields
Input Field Description
line_objectid - String! Line objectid
direction - LineWay! Line direction
journey_pattern_objectid - String! Journey Pattern objectid
date_start - Date! Start Date for Injection
date_end - Date! End Date for Injection
stops - [InjectionStopInputObject!]! Stops served by the injection
Example
{
  "line_objectid": "xyz789",
  "direction": "FORWARD",
  "journey_pattern_objectid": "xyz789",
  "date_start": "2025-01-01",
  "date_end": "2025-01-01",
  "stops": [InjectionStopInputObject]
}

InjectionStopInputObject

Fields
Input Field Description
stop_point_objectid - String! Stop Point objectid
arrival_time - TimeShort Arrival Time. Default = null
departure_time - TimeShort Departure Time. Default = null
Example
{
  "stop_point_objectid": "abc123",
  "arrival_time": TimeShort,
  "departure_time": TimeShort
}

InputInputObject

Fields
Input Field Description
file_ids - [ID!]! Array of file ids uploaded through Direct Upload
type - InputType! Type of the input
label - String! Label for the input
Example
{
  "file_ids": ["4"],
  "type": "VDV",
  "label": "abc123"
}

InputObject

Fields
Field Name Description
id - ID!
label - String!
type - InputType!
Example
{"id": 4, "label": "abc123", "type": "VDV"}

InputType

Values
Enum Value Description

VDV

VDV
Example
"VDV"

Int

Description

Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

JSON

Example
{}

JourneyPattern

Fields
Field Name Description
direction - LineWay!
objectid - String!
vehicle_journeys - VehicleJourney!
Example
{
  "direction": "FORWARD",
  "objectid": "NETWORK:JourneyPattern:123",
  "vehicle_journeys": VehicleJourney
}

Line

Fields
Field Name Description
blocks - [Block!]
color - String!
hlp_routes - [HlpRoute!]
id - String!
name - String!
network_id - String!
number - Int
objectid - String!
published_name - String
Arguments
stop_areas - [StopArea!]!
stop_points - [StopPoint!]!
thermometer_stop_areas - [StopArea!]!
time_tables - [TimeTable!]!
transport_type - String!
tts_name - String
type - String!
vehicle_journeys - [VehicleJourney!]!
Example
NETWORK:Line:123

LinePublishedNameType

Values
Enum Value Description

NAME_OR_PUBLISHED_NAME

Name if available, published name otherwise

PUBLISHED_NAME

Published name only
Example
"NAME_OR_PUBLISHED_NAME"

LineWay

Values
Enum Value Description

FORWARD

Line in forward direction

BACKWARD

Line in backward direction
Example
"FORWARD"

LineWithDepartures

Fields
Field Name Description
blocks - [Block!]
color - String!
hlp_routes - [HlpRoute!]
id - String!
name - String!
network_id - String!
number - Int
objectid - String!
published_name - String
Arguments
stop_areas - [StopArea!]!
stop_points - [StopPoint!]!
stop_points_departures - [StopPointWithDepartures!]!
stops - [StopAreaWithDepartures!]!
thermometer_stop_areas - [StopArea!]!
time_tables - [TimeTable!]!
transport_type - String!
tts_name - String
type - String!
vehicle_journeys - [VehicleJourney!]!
way - LineWay!
Example
{
  "blocks": [Block],
  "color": "xyz789",
  "hlp_routes": [HlpRoute],
  "id": "abc123",
  "name": "abc123",
  "network_id": "abc123",
  "number": 987,
  "objectid": "xyz789",
  "published_name": "xyz789",
  "stop_areas": [StopArea],
  "stop_points": [StopPoint],
  "stop_points_departures": [StopPointWithDepartures],
  "stops": [StopAreaWithDepartures],
  "thermometer_stop_areas": [StopArea],
  "time_tables": [TimeTable],
  "transport_type": "abc123",
  "tts_name": "xyz789",
  "type": "xyz789",
  "vehicle_journeys": [VehicleJourney],
  "way": "FORWARD"
}

LinesTarget

Fields
Field Name Description
from_stop - String!
lines - [LinesTargetLine!]!
to_stop - String
Example
{
  "from_stop": "abc123",
  "lines": [LinesTargetLine],
  "to_stop": "xyz789"
}

LinesTargetLine

Fields
Field Name Description
id - String!
name - String!
ways - [LineWay!]!
Example
{
  "id": "xyz789",
  "name": "abc123",
  "ways": ["FORWARD"]
}

LocationObject

Fields
Field Name Description
accuracy - Float
latitude - Float
longitude - Float
timestamp - Time
Example
{
  "accuracy": 987.65,
  "latitude": 987.65,
  "longitude": 123.45,
  "timestamp": "10:15:30Z"
}

LocationTarget

Fields
Field Name Description
regions - [LocationTargetRegion!]!
Example
{"regions": [LocationTargetCircle]}

LocationTargetCircle

Fields
Field Name Description
center - Coordinate!
radius - Int!
Example
{"center": Coordinate, "radius": 987}

LocationTargetPolygon

Fields
Field Name Description
paths - [Coordinate!]!
Example
{"paths": [Coordinate]}

LocationTargetRegion

Example
LocationTargetCircle

Message

Fields
Field Name Description
content - Content!
id - ID!
reason - String
schedule - Planning!
target - Target!
title - String!
Example
{
  "content": Content,
  "id": "4",
  "reason": "xyz789",
  "schedule": Planning,
  "target": LinesTarget,
  "title": "xyz789"
}

MessageType

Values
Enum Value Description

WEB_SITE

Web site contents

BIV_MESSAGE

BIV Message contents

BIV_ANNOUNCEMENT

BIV Announcement Message contents

BIV_EPAPER_CONTENT

BIV Epaper contents
Example
"WEB_SITE"

Network

Fields
Field Name Description
bivs - [BIV!] Returns a list of BIVs
Arguments
player_serials - [String!]

Optional list of player serials to filter by

external_biv_serials - [String!]

Optional list of external biv serials to filter by

end_at - Date
lines - [Line!]!
Arguments
from - Date
to - Date
stop_point_ids - [String!]
ways - [String!]

List of ways. Valid values are F and B

lines_meta - JSON!
name - String!
objectid - String!
situation - Situation
Arguments
id - ID
situation_number - String
situations - [Situation!]!
Arguments
validity_period_start - Time
validity_period_end - Time
publication_window_start - Time
publication_window_end - Time
priority - Int
stop_area - StopArea
Arguments
id - String!
stop_areas - [StopArea!]!
Arguments
ids - [String!]
stop_point - StopPointWithConnections
Arguments
id - String!
stop_points - [StopPointWithConnections!]!
Arguments
ids - [String!]
vehicles - [Vehicle!]
version - String
Example
{
  "bivs": [BIV],
  "end_at": "2025-01-01",
  "lines": ["NETWORK:Line:123"],
  "lines_meta": {},
  "name": "abc123",
  "objectid": "abc123",
  "situation": Situation,
  "situations": [Situation],
  "stop_area": StopArea,
  "stop_areas": [StopArea],
  "stop_point": StopPointWithConnections,
  "stop_points": [StopPointWithConnections],
  "vehicles": [Vehicle],
  "version": "xyz789"
}

NetworkTarget

Fields
Field Name Description
type - String!
Example
{"type": "xyz789"}

Planning

Fields
Field Name Description
continuous - Boolean!
end_date - Date
end_time - String!
friday - Boolean!
monday - Boolean!
saturday - Boolean!
start_date - Date!
start_time - String!
sunday - Boolean!
thursday - Boolean!
tuesday - Boolean!
wednesday - Boolean!
Example
{
  "continuous": true,
  "end_date": "2025-01-01",
  "end_time": "xyz789",
  "friday": true,
  "monday": true,
  "saturday": true,
  "start_date": "2025-01-01",
  "start_time": "xyz789",
  "sunday": true,
  "thursday": false,
  "tuesday": false,
  "wednesday": false
}

PlayersTarget

Fields
Field Name Description
external_bivs - [ExternalBIV!]!
player_names - [String!]!
Example
{
  "external_bivs": [ExternalBIV],
  "player_names": ["abc123"]
}

RealtimeDeviation

Fields
Field Name Description
dates - [Date!]! Dates
deviation_type - RealtimeDeviationTypeEnum!
direction - LineWay! Direction of Line
end_time - Time!
entry_stop_point - StopPoint
entry_stop_point_id - String
exit_stop_point - StopPoint
exit_stop_point_id - String
id - ID! ID
impacted_stops - [RealtimeImpactedStop!]!
journey_pattern - JourneyPattern! Journey Pattern
journey_pattern_objectid - String! ObjectID of Journey Pattern
kind - DisruptionKindEnum! Disruption Kind
last_impacted_vj_start_time - Time
line - Line! Line
line_objectid - String! ObjectID of Line
served_stop_point_ids - [String!]
served_stop_points - [StopPoint!]
start_time - Time!
state - ExploitationStateEnum!
unserved_stop_point_ids - [String!]
unserved_stop_points - [StopPoint!]
vehicle_journey_objectids - [String!]! ObjectIDs of Vehicle Journeys
vehicle_journeys - [VehicleJourney!]! Vehicle Journeys
Example
{
  "dates": ["2025-01-01"],
  "deviation_type": "UNKNOWN",
  "direction": "FORWARD",
  "end_time": "10:15:30Z",
  "entry_stop_point": StopPoint,
  "entry_stop_point_id": "xyz789",
  "exit_stop_point": StopPoint,
  "exit_stop_point_id": "abc123",
  "id": "4",
  "impacted_stops": [RealtimeImpactedStop],
  "journey_pattern": JourneyPattern,
  "journey_pattern_objectid": "abc123",
  "kind": "TERMINUS_MODIFICATION",
  "last_impacted_vj_start_time": "10:15:30Z",
  "line": "NETWORK:Line:123",
  "line_objectid": "abc123",
  "served_stop_point_ids": ["abc123"],
  "served_stop_points": [StopPoint],
  "start_time": "10:15:30Z",
  "state": "ACTIVE",
  "unserved_stop_point_ids": ["abc123"],
  "unserved_stop_points": [StopPoint],
  "vehicle_journey_objectids": ["xyz789"],
  "vehicle_journeys": [VehicleJourney]
}

RealtimeDeviationTypeEnum

Values
Enum Value Description

UNKNOWN

Unknown

BACK_ONLINE

Back online

BACK_ONLINE_WITH_MOVED_STOPS

Back online with moved stops

MOVED_DESTINATION_TERMINUS

Moved destination terminus

MOVED_ORIGIN_TERMINUS

Moved origin terminus

UPDATED_DESTINATION_TERMINUS

Updated destination terminus

UPDATED_ORIGIN_TERMINUS

Updated origin terminus
Example
"UNKNOWN"

RealtimeImpactedStop

Fields
Field Name Description
arrival_time - Time
departure_time - Time
id - String!
position - Int
stop_point - StopPoint!
Example
{
  "arrival_time": "10:15:30Z",
  "departure_time": "10:15:30Z",
  "id": "abc123",
  "position": 987,
  "stop_point": StopPoint
}

RealtimeInjection

Fields
Field Name Description
dates - [Date!]! Dates
direction - LineWay! Direction of Line
id - ID! ID
journey_pattern - JourneyPattern! Journey Pattern
journey_pattern_objectid - String! ObjectID of Journey Pattern
kind - DisruptionKindEnum! Disruption Kind
line - Line! Line
line_objectid - String! ObjectID of Line
state - ExploitationStateEnum!
stops - [ExploitationVehicleJourneyStopObject!]!
vehicle_journey_objectids - [String!]! ObjectIDs of Vehicle Journeys
vehicle_journeys - [VehicleJourney!]! Vehicle Journeys
Example
{
  "dates": ["2025-01-01"],
  "direction": "FORWARD",
  "id": 4,
  "journey_pattern": JourneyPattern,
  "journey_pattern_objectid": "xyz789",
  "kind": "TERMINUS_MODIFICATION",
  "line": "NETWORK:Line:123",
  "line_objectid": "xyz789",
  "state": "ACTIVE",
  "stops": [ExploitationVehicleJourneyStopObject],
  "vehicle_journey_objectids": ["abc123"],
  "vehicle_journeys": [VehicleJourney]
}

RealtimeStopStatusEnum

Description

Status of a stop

Values
Enum Value Description

ON_TIME

On Time

EARLY

Early

DELAYED

Delayed

CANCELLED

Cancelled

ARRIVED

Arrived

NO_REPORT

No Report

DEPARTED

Departed
Example
"ON_TIME"

RealtimeTerminusModification

Fields
Field Name Description
dates - [Date!]! Dates
direction - LineWay! Direction of Line
end_time - Time!
id - ID! ID
journey_pattern - JourneyPattern! Journey Pattern
journey_pattern_objectid - String! ObjectID of Journey Pattern
kind - DisruptionKindEnum! Disruption Kind
last_impacted_vj_start_time - Time
line - Line! Line
line_objectid - String! ObjectID of Line
new_objectid - String!
new_stop_point - StopPoint!
start_time - Time!
state - ExploitationStateEnum!
terminus_modification_type - RealtimeTerminusModificationTypeEnum!
terminus_objectid - String!
terminus_stop_point - StopPoint!
unserved_end_stop_point_ids - [String!]!
unserved_end_stop_points - [StopPoint!]!
unserved_start_stop_point_ids - [String!]!
unserved_start_stop_points - [StopPoint!]!
vehicle_journey_objectids - [String!]! ObjectIDs of Vehicle Journeys
vehicle_journeys - [VehicleJourney!]! Vehicle Journeys
Example
{
  "dates": ["2025-01-01"],
  "direction": "FORWARD",
  "end_time": "10:15:30Z",
  "id": "4",
  "journey_pattern": JourneyPattern,
  "journey_pattern_objectid": "xyz789",
  "kind": "TERMINUS_MODIFICATION",
  "last_impacted_vj_start_time": "10:15:30Z",
  "line": "NETWORK:Line:123",
  "line_objectid": "abc123",
  "new_objectid": "xyz789",
  "new_stop_point": StopPoint,
  "start_time": "10:15:30Z",
  "state": "ACTIVE",
  "terminus_modification_type": "UNKNOWN",
  "terminus_objectid": "abc123",
  "terminus_stop_point": StopPoint,
  "unserved_end_stop_point_ids": ["abc123"],
  "unserved_end_stop_points": [StopPoint],
  "unserved_start_stop_point_ids": [
    "xyz789"
  ],
  "unserved_start_stop_points": [StopPoint],
  "vehicle_journey_objectids": ["abc123"],
  "vehicle_journeys": [VehicleJourney]
}

RealtimeTerminusModificationTypeEnum

Values
Enum Value Description

UNKNOWN

Unknown

SHORTENED_VEHICLE_JOURNEY_BY_END

Shortened vehicle journey by end

SHORTENED_VEHICLE_JOURNEY_BY_START

Shortened vehicle journey by start

CHANGED_VEHICLE_JOURNEY

Changed vehicle journey
Example
"UNKNOWN"

RealtimeVehicleJourney

Fields
Field Name Description
direction - LineWay!
journey_pattern - JourneyPattern!
objectid - String!
state - ExploitationStateEnum!
stops - [ExploitationVehicleJourneyStopObject!]!
Example
{
  "direction": "FORWARD",
  "journey_pattern": JourneyPattern,
  "objectid": "xyz789",
  "state": "ACTIVE",
  "stops": [ExploitationVehicleJourneyStopObject]
}

SGComplexContent

Fields
Field Name Description
id - ID!
Example
{"id": "4"}

SGContent

Description

Base Message SG Content Interface

Fields
Field Name Description
id - ID!
Possible Types
SGContent Types

SGComplexContent

SGMediaContent

Example
{"id": 4}

SGMediaContent

Fields
Field Name Description
id - ID!
type - SGMediaTypeEnum!
value - String Media URL
Example
{
  "id": "4",
  "type": "IMAGE",
  "value": "xyz789"
}

SGMediaTypeEnum

Values
Enum Value Description

IMAGE

VIDEO

Example
"IMAGE"

Situation

Fields
Field Name Description
cause - String
consequences - [SituationConsequence!]
creation_time - Time!
id - ID!
participant_ref - String!
planned - Boolean
priority - Int
publication_window_end_time - Time
publication_window_start_time - Time
publication_windows - [SituationTimePeriod!]
publishing_actions - [SituationPublishingAction!]
reason_name - SituationLocalizedText
scope_type - String!
situation_number - String!
summary - SituationLocalizedText
targets - [SituationTarget!]
validity_end_time - Time
validity_periods - [SituationTimePeriod!]
validity_start_time - Time
version - String!
Example
{
  "cause": "xyz789",
  "consequences": [SituationConsequence],
  "creation_time": "10:15:30Z",
  "id": "4",
  "participant_ref": "xyz789",
  "planned": false,
  "priority": 987,
  "publication_window_end_time": "10:15:30Z",
  "publication_window_start_time": "10:15:30Z",
  "publication_windows": [SituationTimePeriod],
  "publishing_actions": [SituationPublishingAction],
  "reason_name": SituationLocalizedText,
  "scope_type": "abc123",
  "situation_number": "abc123",
  "summary": SituationLocalizedText,
  "targets": [SituationTarget],
  "validity_end_time": "10:15:30Z",
  "validity_periods": [SituationTimePeriod],
  "validity_start_time": "10:15:30Z",
  "version": "xyz789"
}

SituationConsequence

Fields
Field Name Description
condition - String!
id - ID!
targets - [SituationTarget!]
Example
{
  "condition": "xyz789",
  "id": 4,
  "targets": [SituationTarget]
}

SituationLocalizedText

Fields
Field Name Description
de - String
en - String
fr - String
it - String
Example
{
  "de": "xyz789",
  "en": "xyz789",
  "fr": "xyz789",
  "it": "abc123"
}

SituationPassengerInformationAction

Fields
Field Name Description
action_ref - String!
id - ID!
recorded_at_time - Time!
textual_contents - [SituationTextualContent!]
Example
{
  "action_ref": "abc123",
  "id": 4,
  "recorded_at_time": "10:15:30Z",
  "textual_contents": [SituationTextualContent]
}

SituationPublishingAction

Fields
Field Name Description
id - ID!
passenger_information_actions - [SituationPassengerInformationAction!]
targets - [SituationTarget!]
Example
{
  "id": "4",
  "passenger_information_actions": [
    SituationPassengerInformationAction
  ],
  "targets": [SituationTarget]
}

SituationTarget

Fields
Field Name Description
destination_name - String
destination_objectid - String
direction - String
kind - String!
line_objectid - String
line_ref - String
line_stop_area_objectids - [String!]
stop_area_name - String
stop_area_objectid - String
Example
{
  "destination_name": "xyz789",
  "destination_objectid": "abc123",
  "direction": "abc123",
  "kind": "xyz789",
  "line_objectid": "abc123",
  "line_ref": "xyz789",
  "line_stop_area_objectids": ["abc123"],
  "stop_area_name": "abc123",
  "stop_area_objectid": "xyz789"
}

SituationTextualContent

Fields
Field Name Description
consequence - SituationLocalizedText
description - SituationLocalizedText
duration - SituationLocalizedText
reason - SituationLocalizedText
recommendation - SituationLocalizedText
remark - SituationLocalizedText
size - SituationTextualContentSizeEnum!
summary - SituationLocalizedText
Example
{
  "consequence": SituationLocalizedText,
  "description": SituationLocalizedText,
  "duration": SituationLocalizedText,
  "reason": SituationLocalizedText,
  "recommendation": SituationLocalizedText,
  "remark": SituationLocalizedText,
  "size": "SMALL",
  "summary": SituationLocalizedText
}

SituationTextualContentSizeEnum

Values
Enum Value Description

SMALL

Small

MEDIUM

Medium

LARGE

Large
Example
"SMALL"

SituationTimePeriod

Fields
Field Name Description
end_time - Time
start_time - Time!
Example
{
  "end_time": "10:15:30Z",
  "start_time": "10:15:30Z"
}

StopArea

Fields
Field Name Description
connection_departures - Boolean!
didok - String
id - String!
name - String!
objectid - String!
registration_number - String
stop_points - [StopPointWithConnections!]!
Arguments
ids - [String!]
tts_name - String
Example
{
  "connection_departures": true,
  "didok": "xyz789",
  "id": "abc123",
  "name": "abc123",
  "objectid": "abc123",
  "registration_number": "xyz789",
  "stop_points": [StopPointWithConnections],
  "tts_name": "abc123"
}

StopAreaDeparture

Fields
Field Name Description
aimed_arrival_time - Time
aimed_departure_time - Time
arrival_status - RealtimeStopStatusEnum
cancelled_at - Time
color - String
connection - Boolean
departure_status - RealtimeStopStatusEnum!
destination - String
expected_arrival_time - Time
expected_departure_time - Time
external - Boolean
kind - String!
line_id - String!
moved - Boolean
network - String!
number - String!
order - Int
origin - String
platform - String
stop_area_id - String!
stop_point_id - String!
th_destination - String
th_platform - String
vehicle_journey_id - String
way - String!
Example
{
  "aimed_arrival_time": "10:15:30Z",
  "aimed_departure_time": "10:15:30Z",
  "arrival_status": "ON_TIME",
  "cancelled_at": "10:15:30Z",
  "color": "xyz789",
  "connection": false,
  "departure_status": "ON_TIME",
  "destination": "abc123",
  "expected_arrival_time": "10:15:30Z",
  "expected_departure_time": "10:15:30Z",
  "external": true,
  "kind": "abc123",
  "line_id": "xyz789",
  "moved": false,
  "network": "xyz789",
  "number": "abc123",
  "order": 987,
  "origin": "abc123",
  "platform": "xyz789",
  "stop_area_id": "xyz789",
  "stop_point_id": "abc123",
  "th_destination": "abc123",
  "th_platform": "xyz789",
  "vehicle_journey_id": "xyz789",
  "way": "xyz789"
}

StopAreaWithDepartures

Fields
Field Name Description
connection_departures - Boolean!
didok - String
id - String!
name - String!
objectid - String!
registration_number - String
stop_points - [StopPointWithDepartures!]!
tts_name - String
Example
{
  "connection_departures": true,
  "didok": "abc123",
  "id": "xyz789",
  "name": "abc123",
  "objectid": "abc123",
  "registration_number": "xyz789",
  "stop_points": [StopPointWithDepartures],
  "tts_name": "abc123"
}

StopPoint

Fields
Field Name Description
didok - String
id - String!
latitude - String
longitude - String
mobility_restricted_suitability - Boolean
name - String!
objectid - String!
platform - String
platform_tts - String
short_name - String!
stop_area_id - String
stop_areas - [StopArea!]!
ticket_machine - Boolean
Example
{
  "didok": "xyz789",
  "id": "abc123",
  "latitude": "xyz789",
  "longitude": "abc123",
  "mobility_restricted_suitability": true,
  "name": "xyz789",
  "objectid": "abc123",
  "platform": "xyz789",
  "platform_tts": "abc123",
  "short_name": "xyz789",
  "stop_area_id": "xyz789",
  "stop_areas": [StopArea],
  "ticket_machine": true
}

StopPointConnectingLine

Fields
Field Name Description
blocks - [Block!]
color - String!
colour - String
departures - [Departure!]!
hlp_routes - [HlpRoute!]
id - String!
name - String!
network_id - String!
number - Int
objectid - String!
published_name - String
Arguments
stop_areas - [StopArea!]!
stop_points - [StopPoint!]!
thermometer_stop_areas - [StopArea!]!
time_tables - [TimeTable!]!
transport_type - String!
tts_name - String
type - String!
vehicle_journeys - [VehicleJourney!]!
Example
{
  "blocks": [Block],
  "color": "xyz789",
  "colour": "xyz789",
  "departures": [Departure],
  "hlp_routes": [HlpRoute],
  "id": "abc123",
  "name": "abc123",
  "network_id": "xyz789",
  "number": 987,
  "objectid": "xyz789",
  "published_name": "xyz789",
  "stop_areas": [StopArea],
  "stop_points": [StopPoint],
  "thermometer_stop_areas": [StopArea],
  "time_tables": [TimeTable],
  "transport_type": "xyz789",
  "tts_name": "abc123",
  "type": "abc123",
  "vehicle_journeys": [VehicleJourney]
}

StopPointWithConnections

Fields
Field Name Description
connecting_lines - [StopPointConnectingLine!]!
Arguments
exclude_line_ids - [String!]

Exclude lines with these ids

include_line_ids - [String!]

Include lines with these ids

limit - Int

Limit the number of departures returned

didok - String
id - String!
latitude - Float
longitude - Float
mobility_restricted_suitability - Boolean
name - String!
objectid - String!
platform - String
platform_tts - String
short_name - String!
stop_area_id - String
stop_areas - [StopArea!]!
ticket_machine - Boolean
Example
{
  "connecting_lines": [StopPointConnectingLine],
  "didok": "xyz789",
  "id": "abc123",
  "latitude": 123.45,
  "longitude": 123.45,
  "mobility_restricted_suitability": true,
  "name": "abc123",
  "objectid": "abc123",
  "platform": "xyz789",
  "platform_tts": "abc123",
  "short_name": "abc123",
  "stop_area_id": "abc123",
  "stop_areas": [StopArea],
  "ticket_machine": false
}

StopPointWithDepartures

Fields
Field Name Description
departures - [Departure!]!
didok - String
id - String!
latitude - Float
longitude - Float
mobility_restricted_suitability - Boolean
name - String!
objectid - String!
platform - String
platform_tts - String
short_name - String!
stop_area_id - String
stop_areas - [StopArea!]!
ticket_machine - Boolean
Example
{
  "departures": [Departure],
  "didok": "abc123",
  "id": "abc123",
  "latitude": 987.65,
  "longitude": 987.65,
  "mobility_restricted_suitability": false,
  "name": "abc123",
  "objectid": "xyz789",
  "platform": "abc123",
  "platform_tts": "abc123",
  "short_name": "abc123",
  "stop_area_id": "abc123",
  "stop_areas": [StopArea],
  "ticket_machine": false
}

String

Description

Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

Target

Example
LinesTarget

TaskInputObject

Fields
Input Field Description
type - TaskType! The Task Type
run_on - Date! Date this task should be performed on
Example
{"type": "IMPORT", "run_on": "2025-01-01"}

TaskObject

Fields
Field Name Description
duration - TimeShort
id - ID!
input - InputObject
run_at - Time
state - TaskState!
type - TaskType!
Example
{
  "duration": TimeShort,
  "id": "4",
  "input": InputObject,
  "run_at": "10:15:30Z",
  "state": "QUEUED",
  "type": "IMPORT"
}

TaskState

Values
Enum Value Description

QUEUED

The task is queued

PENDING

The task is pending

FAILED

The task is failed

SUCCESS

The task is success

SCHEDULED

The task is scheduled
Example
"QUEUED"

TaskType

Values
Enum Value Description

IMPORT

Import Task. This will use the latest available input
Example
"IMPORT"

TerminusModificationCreateInputObject

Fields
Input Field Description
line_objectid - String! Line objectid
direction - LineWay! Line direction
journey_pattern_objectid - String! Journey Pattern objectid
terminus_objectid - String! Termins Stop Area objectid
new_terminus_objectid - String! New Terminus Stop Area objectid
vehicle_journey_objectids - [String!]! Vehicle Journey objectids
Example
{
  "line_objectid": "abc123",
  "direction": "FORWARD",
  "journey_pattern_objectid": "xyz789",
  "terminus_objectid": "xyz789",
  "new_terminus_objectid": "xyz789",
  "vehicle_journey_objectids": ["abc123"]
}

Time

Description

ISO-8601 formatted DateTime

Example
"10:15:30Z"

TimeShort

Description

Time value in hh:mm:ss

Example
TimeShort

TimeTable

Fields
Field Name Description
days - [String!]!
id - String!
objectid - String!
Example
{
  "days": ["abc123"],
  "id": "xyz789",
  "objectid": "abc123"
}

UpdateInjectionPayload

Description

Autogenerated return type of UpdateInjection.

Fields
Field Name Description
errors - [String!]!
injection - RealtimeInjection
Example
{
  "errors": ["xyz789"],
  "injection": RealtimeInjection
}

UpdateVehicleJourneyPayload

Description

Autogenerated return type of UpdateVehicleJourney.

Fields
Field Name Description
errors - [String!]!
vehicle_journey - RealtimeVehicleJourney
Example
{
  "errors": ["xyz789"],
  "vehicle_journey": RealtimeVehicleJourney
}

UpdateVehicleJourneyStopPayload

Description

Autogenerated return type of UpdateVehicleJourneyStop.

Fields
Field Name Description
errors - [String!]!
stop - ExploitationVehicleJourneyStopObject
Example
{
  "errors": ["abc123"],
  "stop": ExploitationVehicleJourneyStopObject
}

Vehicle

Fields
Field Name Description
current_stop - ExploitationVehicleJourneyStopObject
current_stop_state - ExploitationVehicleStopStateEnum
gps - LocationObject
id - ID!
kind - VehicleKindEnum!
master - Boolean
number - String!
odometer_km - Int
player_serials - [String!]!
stop_requested - Boolean
vehicle_journey - RealtimeVehicleJourney
Example
{
  "current_stop": ExploitationVehicleJourneyStopObject,
  "current_stop_state": "AT_STOP",
  "gps": LocationObject,
  "id": 4,
  "kind": "BUS",
  "master": true,
  "number": "abc123",
  "odometer_km": 123,
  "player_serials": ["abc123"],
  "stop_requested": true,
  "vehicle_journey": RealtimeVehicleJourney
}

VehicleJourney

Fields
Field Name Description
id - String!
journey_pattern - JourneyPattern!
journey_pattern_id - String!
line - Line!
objectid - String!
schedules - [JSON!]!
stops - [ExploitationVehicleJourneyStopObject!]!
time_table_ids - [String!]!
way - String!
Example
{
  "id": "abc123",
  "journey_pattern": JourneyPattern,
  "journey_pattern_id": "xyz789",
  "line": "NETWORK:Line:123",
  "objectid": "xyz789",
  "schedules": [{}],
  "stops": [ExploitationVehicleJourneyStopObject],
  "time_table_ids": ["xyz789"],
  "way": "xyz789"
}

VehicleJourneyStopInputObject

Fields
Input Field Description
vehicle_journey_objectid - String! Vehicle Journey objectid
stop_objectid - String! Boarding Stop Area objectid
state - ExploitationStateEnum Stop State. Default = null
departure_delay - Int Departure Delay in seconds. Default = null
arrival_delay - Int Arrival Delay in seconds. Default = null
platform_name - String Platform Name or an empty string to clear. Default = null
Example
{
  "vehicle_journey_objectid": "abc123",
  "stop_objectid": "abc123",
  "state": "ACTIVE",
  "departure_delay": 987,
  "arrival_delay": 123,
  "platform_name": "xyz789"
}

VehicleKindEnum

Values
Enum Value Description

BUS

Bus

TRAIN

Train
Example
"BUS"

WebsiteContent

Fields
Field Name Description
content - String
enabled - Boolean!
pdf_url - String
severity - WebsiteContentSeverity!
title - String!
Example
{
  "content": "xyz789",
  "enabled": false,
  "pdf_url": "abc123",
  "severity": "MAJOR",
  "title": "abc123"
}

WebsiteContentSeverity

Values
Enum Value Description

MAJOR

Severity Major

MINOR

Severity Minor

INFORMATION

Severity Information
Example
"MAJOR"