{
  "schema": "quavsit-observatory/1",
  "day": "2026-09-15",
  "complete": false,
  "generated_at": "2026-09-15T09:06:14Z",
  "engine": {
    "code_sha256": "d344f30d5192",
    "service_hours": "06:00-22:00 local"
  },
  "samples_scheduled": 8,
  "samples_taken": 1,
  "networks": [
    {
      "network": "aleo",
      "name": "Aléo",
      "city": "Moulins",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "ALEO — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T15:09:12Z",
        "age_hours": 18.0,
        "timetable_ends_on": "2027-07-04",
        "days_left": 292,
        "counts": {
          "lines": 11,
          "stops": 468,
          "trips": 1255,
          "stop_times": 38408
        },
        "pan_dataset_slug": "donnees-du-reseau-de-transport-aleo",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 21,
          "trip_join": {
            "n": 10,
            "of": 10
          },
          "stop_updates_timed": {
            "n": 317,
            "of": 317
          },
          "cancelled": {
            "n": 0,
            "of": 10
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 21,
          "with_position": {
            "n": 10,
            "of": 10
          },
          "with_trip_id": {
            "n": 10,
            "of": 10
          },
          "with_route_id": {
            "n": 10,
            "of": 10
          },
          "trip_join": {
            "n": 10,
            "of": 10
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "cars-38",
      "name": "Cars Région Isère",
      "city": "Isère",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Région Auvergne-Rhône-Alpes / Cars Région Isère — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-11T21:07:43Z",
        "age_hours": 84.0,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 495,
          "stops": 9392,
          "trips": 3643,
          "stop_times": 52511
        },
        "pan_dataset_slug": "reseau-interurbain-cars-region-isere-38-1",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.oura3.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 59,
          "no_header_timestamp": 0,
          "entities": 14,
          "trip_join": {
            "n": 14,
            "of": 14
          },
          "stop_updates_timed": {
            "n": 163,
            "of": 163
          },
          "cancelled": {
            "n": 2,
            "of": 14
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "api.oura3.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 11,
          "no_header_timestamp": 0,
          "entities": 1097,
          "informed_resolved": {
            "n": 2981,
            "of": 2981
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "jybus",
      "name": "J'ybus",
      "city": "Rumilly",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "J'ybus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:21:10Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-07-03",
        "days_left": 291,
        "counts": {
          "lines": 5,
          "stops": 213,
          "trips": 777,
          "stop_times": 14090
        },
        "pan_dataset_slug": "offre-de-transports-jybus-a-rumilly",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 17,
          "no_header_timestamp": 0,
          "entities": 6,
          "trip_join": {
            "n": 6,
            "of": 6
          },
          "stop_updates_timed": {
            "n": 62,
            "of": 62
          },
          "cancelled": {
            "n": 0,
            "of": 6
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 13,
          "no_header_timestamp": 0,
          "entities": 5,
          "with_position": {
            "n": 5,
            "of": 5
          },
          "with_trip_id": {
            "n": 5,
            "of": 5
          },
          "with_route_id": {
            "n": 5,
            "of": 5
          },
          "trip_join": {
            "n": 5,
            "of": 5
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "lva",
      "name": "L'va",
      "city": "Vienne",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Vienne Condrieu Agglomération / L'va — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:21:31Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 48,
          "stops": 1004,
          "trips": 5197,
          "stop_times": 133338
        },
        "pan_dataset_slug": "reseau-lva",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "feed-vienne-mobi.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 23,
          "trip_join": {
            "n": 13,
            "of": 13
          },
          "stop_updates_timed": {
            "n": 199,
            "of": 199
          },
          "cancelled": {
            "n": 0,
            "of": 13
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "feed-vienne-mobi.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 23,
          "with_position": {
            "n": 10,
            "of": 10
          },
          "with_trip_id": {
            "n": 10,
            "of": 10
          },
          "with_route_id": {
            "n": 10,
            "of": 10
          },
          "trip_join": {
            "n": 10,
            "of": 10
          }
        },
        "alerts": {
          "host": "notify.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 13,
          "informed_resolved": {
            "n": 16,
            "of": 16
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "maelis",
      "name": "Maelis",
      "city": "Montluçon",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Montluçon Communauté / Maelis — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "never_ingested",
        "refreshed_at": null,
        "age_hours": null,
        "timetable_ends_on": null,
        "days_left": null,
        "counts": null,
        "pan_dataset_slug": "horaires-theoriques-et-reel-du-reseau-maelis-montlucon-communaute-gtfs",
        "last_error": {
          "reason": "timeout",
          "host": "saeiv-p01.navocap.com"
        }
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 20,
          "trip_join": null,
          "stop_updates_timed": {
            "n": 626,
            "of": 626
          },
          "cancelled": {
            "n": 0,
            "of": 20
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 10,
          "with_position": {
            "n": 10,
            "of": 10
          },
          "with_trip_id": {
            "n": 10,
            "of": 10
          },
          "with_route_id": {
            "n": 0,
            "of": 10
          },
          "trip_join": null
        }
      },
      "engine_observed": []
    },
    {
      "network": "mobivie",
      "name": "Mobivie",
      "city": "Vichy",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "VICHY COMMUNAUTE / Mobivie — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T07:09:54Z",
        "age_hours": 121.9,
        "timetable_ends_on": "2027-08-29",
        "days_left": 348,
        "counts": {
          "lines": 9,
          "stops": 270,
          "trips": 684,
          "stop_times": 15904
        },
        "pan_dataset_slug": "mobivie-reseau-urbain-vichy-communaute",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 43,
          "trip_join": {
            "n": 43,
            "of": 43
          },
          "stop_updates_timed": {
            "n": 1032,
            "of": 1035
          },
          "cancelled": {
            "n": 0,
            "of": 43
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 4,
          "no_header_timestamp": 0,
          "entities": 12,
          "with_position": {
            "n": 12,
            "of": 12
          },
          "with_trip_id": {
            "n": 12,
            "of": 12
          },
          "with_route_id": {
            "n": 12,
            "of": 12
          },
          "trip_join": {
            "n": 12,
            "of": 12
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "montelibus",
      "name": "Montélibus",
      "city": "Montélimar",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Montélibus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:30:44Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 37,
          "stops": 515,
          "trips": 1636,
          "stop_times": 31486
        },
        "pan_dataset_slug": "horaires-montelibus",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 1,
          "no_header_timestamp": 0,
          "entities": 49,
          "trip_join": {
            "n": 49,
            "of": 49
          },
          "stop_updates_timed": {
            "n": 889,
            "of": 935
          },
          "cancelled": {
            "n": 0,
            "of": 49
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 12,
          "with_position": {
            "n": 12,
            "of": 12
          },
          "with_trip_id": {
            "n": 12,
            "of": 12
          },
          "with_route_id": {
            "n": 12,
            "of": 12
          },
          "trip_join": {
            "n": 12,
            "of": 12
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "ondea",
      "name": "Ondéa",
      "city": "Aix-les-Bains",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Ondéa - COMPAGNIE DE TRANSPORT DU LAC DU BOURGET-CTLB — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:09:47Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 64,
          "stops": 1278,
          "trips": 2279,
          "stop_times": 53602
        },
        "pan_dataset_slug": "ctlb-donnees-theoriques-et-rt-aix-les-bains-lac-du-bourget",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 15,
          "no_header_timestamp": 0,
          "entities": 27,
          "trip_join": {
            "n": 27,
            "of": 27
          },
          "stop_updates_timed": {
            "n": 640,
            "of": 640
          },
          "cancelled": {
            "n": 0,
            "of": 27
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 11,
          "informed_resolved": {
            "n": 11,
            "of": 11
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "rlv",
      "name": "RLV Mobilités",
      "city": "Riom",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Keolis RIOM / RLV Mobilités — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:22:11Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-08-28",
        "days_left": 347,
        "counts": {
          "lines": 13,
          "stops": 299,
          "trips": 729,
          "stop_times": 18180
        },
        "pan_dataset_slug": "horaires-rlv-mobilites",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 27,
          "trip_join": {
            "n": 27,
            "of": 27
          },
          "stop_updates_timed": {
            "n": 738,
            "of": 738
          },
          "cancelled": {
            "n": 0,
            "of": 27
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 6,
          "no_header_timestamp": 0,
          "entities": 7,
          "with_position": {
            "n": 7,
            "of": 7
          },
          "with_trip_id": {
            "n": 7,
            "of": 7
          },
          "with_route_id": {
            "n": 7,
            "of": 7
          },
          "trip_join": {
            "n": 7,
            "of": 7
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "ruban",
      "name": "Ruban",
      "city": "Bourgoin-Jallieu",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'agglomération Porte de l'Isère / Ruban — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T17:08:52Z",
        "age_hours": 16.0,
        "timetable_ends_on": "2027-08-28",
        "days_left": 347,
        "counts": {
          "lines": 35,
          "stops": 1047,
          "trips": 1898,
          "stop_times": 55273
        },
        "pan_dataset_slug": "reseau-ruban",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "app.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 4,
          "no_header_timestamp": 0,
          "entities": 36,
          "trip_join": {
            "n": 18,
            "of": 18
          },
          "stop_updates_timed": {
            "n": 600,
            "of": 602
          },
          "cancelled": {
            "n": 0,
            "of": 18
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "app.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 4,
          "no_header_timestamp": 0,
          "entities": 36,
          "with_position": {
            "n": 18,
            "of": 18
          },
          "with_trip_id": {
            "n": 18,
            "of": 18
          },
          "with_route_id": {
            "n": 18,
            "of": 18
          },
          "trip_join": {
            "n": 18,
            "of": 18
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "rubis",
      "name": "Rubis",
      "city": "Bourg-en-Bresse",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Grand Bourg Agglomération / Rubis — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "never_ingested",
        "refreshed_at": null,
        "age_hours": null,
        "timetable_ends_on": null,
        "days_left": null,
        "counts": null,
        "pan_dataset_slug": "rubis-grand-bourg-mobilites-offre-de-transport-theorique-et-temps-reel",
        "last_error": {
          "reason": "timeout",
          "host": "saeiv-p01.navocap.com"
        }
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 56,
          "trip_join": null,
          "stop_updates_timed": {
            "n": 1581,
            "of": 1581
          },
          "cancelled": {
            "n": 0,
            "of": 56
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 7,
          "no_header_timestamp": 0,
          "entities": 28,
          "with_position": {
            "n": 28,
            "of": 28
          },
          "with_trip_id": {
            "n": 28,
            "of": 28
          },
          "with_route_id": {
            "n": 0,
            "of": 28
          },
          "trip_join": null
        }
      },
      "engine_observed": []
    },
    {
      "network": "sibra",
      "name": "Sibra",
      "city": "Annecy",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Sibra — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T18:09:58Z",
        "age_hours": 110.9,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 27,
          "stops": 1859,
          "trips": 7170,
          "stop_times": 212170
        },
        "pan_dataset_slug": "offre-de-transports-sibra-a-annecy-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "stas",
      "name": "STAS",
      "city": "Saint-Étienne",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Saint-Etienne Métropole / STAS — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "never_ingested",
        "refreshed_at": null,
        "age_hours": null,
        "timetable_ends_on": null,
        "days_left": null,
        "counts": null,
        "pan_dataset_slug": "horaires-du-reseau-stas",
        "last_error": {
          "reason": "connection",
          "host": "bus-prod.saint-etienne-metropole.fr"
        }
      },
      "realtime": {
        "trip_updates": {
          "host": "bus-prod.saint-etienne-metropole.fr",
          "samples": 1,
          "ok": 0,
          "failures": {
            "timeout": 0,
            "connection": 1,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": null,
          "no_header_timestamp": 0,
          "entities": null,
          "trip_join": null,
          "stop_updates_timed": null,
          "cancelled": null,
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "synchro",
      "name": "Synchro Bus",
      "city": "Chambéry",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Grand Chambéry / Synchro Bus — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:20:11Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 24,
          "stops": 1234,
          "trips": 6587,
          "stop_times": 197795
        },
        "pan_dataset_slug": "arrets-et-horaires-theoriques-bus-temps-reel",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "mwe.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 216,
          "trip_join": {
            "n": 216,
            "of": 216
          },
          "stop_updates_timed": {
            "n": 6551,
            "of": 6875
          },
          "cancelled": {
            "n": 0,
            "of": 216
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "mwe.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 13,
          "informed_resolved": {
            "n": 16,
            "of": 17
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "t2c",
      "name": "T2C",
      "city": "Clermont-Ferrand",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Clermont Auvergne Métropole / T2C — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:44Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 54,
          "stops": 2073,
          "trips": 9830,
          "stop_times": 278535
        },
        "pan_dataset_slug": "syndicat-mixte-des-transports-en-commun-de-lagglomeration-clermontoise-smtc-ac-reseau-t2c-gtfs-gtfs-rt",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 5,
          "no_header_timestamp": 0,
          "entities": 1022,
          "trip_join": {
            "n": 32,
            "of": 1022
          },
          "stop_updates_timed": {
            "n": 31598,
            "of": 32169
          },
          "cancelled": {
            "n": 8,
            "of": 1022
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "tac-annemasse",
      "name": "TAC Mobilités",
      "city": "Annemasse",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération Annemasse - les Voirons Agglomération / TAC Mobilités — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:20:16Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 8,
          "stops": 280,
          "trips": 1713,
          "stop_times": 37849
        },
        "pan_dataset_slug": "offre-de-transports-reseau-tac-annemasse-agglo",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 24,
          "no_header_timestamp": 0,
          "entities": 58,
          "trip_join": {
            "n": 57,
            "of": 58
          },
          "stop_updates_timed": {
            "n": 1012,
            "of": 1126
          },
          "cancelled": {
            "n": 0,
            "of": 58
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 6,
          "no_header_timestamp": 0,
          "entities": 8,
          "informed_resolved": {
            "n": 10,
            "of": 10
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tag",
      "name": "TAG",
      "city": "Grenoble",
      "region": "Auvergne-Rhône-Alpes",
      "timezone": "Europe/Paris",
      "attribution": "Syndicat Mixte des Mobilités de l'Aire Grenobloise / TAG — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T13:07:38Z",
        "age_hours": 20.0,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 55,
          "stops": 2554,
          "trips": 26867,
          "stop_times": 625872
        },
        "pan_dataset_slug": "horaires-theoriques-du-reseau-tag",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "divia",
      "name": "DiviaMobilités",
      "city": "Dijon",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "DiviaMobilités — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:12:42Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 56,
          "stops": 1096,
          "trips": 25361,
          "stop_times": 596777
        },
        "pan_dataset_slug": "gtfs-diviamobilites",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 11,
          "no_header_timestamp": 0,
          "entities": 322,
          "trip_join": {
            "n": 322,
            "of": 322
          },
          "stop_updates_timed": {
            "n": 7503,
            "of": 7515
          },
          "cancelled": {
            "n": 9,
            "of": 322
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 1,
          "no_header_timestamp": 0,
          "entities": 111,
          "with_position": {
            "n": 111,
            "of": 111
          },
          "with_trip_id": {
            "n": 110,
            "of": 111
          },
          "with_route_id": {
            "n": 110,
            "of": 111
          },
          "trip_join": {
            "n": 110,
            "of": 110
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "ginko",
      "name": "Ginko",
      "city": "Besançon",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "GRAND BESANCON METROPOLE / Ginko — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T07:09:29Z",
        "age_hours": 25.9,
        "timetable_ends_on": "2026-10-25",
        "days_left": 40,
        "counts": {
          "lines": 182,
          "stops": 2035,
          "trips": 9528,
          "stop_times": 181768
        },
        "pan_dataset_slug": "gtfs-et-siri-du-reseau-ginko-besancon-lignes-urbaines-et-periurbaines",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "grandole",
      "name": "Grandole Mobilités",
      "city": "Dole",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération du Grand Dole / Grandole Mobilités — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:19:25Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-09-10",
        "days_left": 360,
        "counts": {
          "lines": 16,
          "stops": 412,
          "trips": 654,
          "stop_times": 15186
        },
        "pan_dataset_slug": "reseau-de-transport-du-grand-dole",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 4,
          "no_header_timestamp": 0,
          "entities": 21,
          "trip_join": {
            "n": 21,
            "of": 21
          },
          "stop_updates_timed": {
            "n": 487,
            "of": 487
          },
          "cancelled": {
            "n": 0,
            "of": 21
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "leo",
      "name": "Léo",
      "city": "Auxerre",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération de l'Auxerrois / Léo — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:26Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 36,
          "stops": 626,
          "trips": 1600,
          "stop_times": 41121
        },
        "pan_dataset_slug": "reseau-de-transports-en-commun-de-la-communaute-dagglomeration-de-lauxerrois",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "mobigo",
      "name": "Mobigo",
      "city": "Bourgogne-Franche-Comté",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "Région Bourgogne-Franche-Comté / Mobigo — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:24:50Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 141,
          "stops": 2193,
          "trips": 1966,
          "stop_times": 26919
        },
        "pan_dataset_slug": "reseau-de-transport-interurbain-mobigo-en-bourgogne-franche-comte",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "moova",
      "name": "moova",
      "city": "Vesoul",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "Réseau moova - Communauté d'Agglomération de Vesoul — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:07:38Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 36,
          "stops": 326,
          "trips": 654,
          "stop_times": 11634
        },
        "pan_dataset_slug": "horaires-theoriques-du-reseau-moova-communaute-dagglomeration-de-vesoul-gtfs",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 7,
          "no_header_timestamp": 0,
          "entities": 23,
          "trip_join": {
            "n": 22,
            "of": 23
          },
          "stop_updates_timed": {
            "n": 438,
            "of": 438
          },
          "cancelled": {
            "n": 0,
            "of": 23
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "optymo",
      "name": "Optymo",
      "city": "Belfort",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "Optymo - Belfort — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:25:22Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 48,
          "stops": 1583,
          "trips": 6885,
          "stop_times": 166066
        },
        "pan_dataset_slug": "arrets-circuits-et-horaires-du-reseau-optymo-de-belfort",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "taneo",
      "name": "Tanéo",
      "city": "Nevers",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération de Nevers / Tanéo — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:23:15Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 40,
          "stops": 544,
          "trips": 1592,
          "stop_times": 42022
        },
        "pan_dataset_slug": "versions-des-horaires-theoriques-des-lignes-du-reseau-de-bus-au-format-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "evolity",
      "name": "évolitY",
      "city": "Montbéliard",
      "region": "Bourgogne-Franche-Comté",
      "timezone": "Europe/Paris",
      "attribution": "évolitY — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:09:34Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-06-11",
        "days_left": 269,
        "counts": {
          "lines": 16,
          "stops": 666,
          "trips": 2378,
          "stop_times": 84741
        },
        "pan_dataset_slug": "evolity-horaires-theoriques-de-transport-public",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "belleile",
      "name": "Belle Île Bus",
      "city": "Belle-Île-en-Mer",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "CC de Belle Ile en Mer / Belle Île Bus (agrégat KorriGo, Région Bretagne) — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:17:36Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2026-11-01",
        "days_left": 47,
        "counts": {
          "lines": 4,
          "stops": 98,
          "trips": 68,
          "stop_times": 1413
        },
        "pan_dataset_slug": "base-de-donnees-multimodale-transports-publics-en-bretagne-korrigo-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "bibus",
      "name": "Bibus",
      "city": "Brest",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Brest métropole / Bibus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T23:09:38Z",
        "age_hours": 105.9,
        "timetable_ends_on": "2026-12-20",
        "days_left": 96,
        "counts": {
          "lines": 72,
          "stops": 1078,
          "trips": 7979,
          "stop_times": 159770
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-des-bus-et-tramways-circulant-sur-le-territoire-de-brest-metropole",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 61,
          "no_header_timestamp": 0,
          "entities": 1363,
          "trip_join": {
            "n": 1332,
            "of": 1363
          },
          "stop_updates_timed": {
            "n": 34695,
            "of": 34695
          },
          "cancelled": {
            "n": 0,
            "of": 1363
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 56,
          "no_header_timestamp": 0,
          "entities": 123,
          "with_position": {
            "n": 123,
            "of": 123
          },
          "with_trip_id": {
            "n": 123,
            "of": 123
          },
          "with_route_id": {
            "n": 123,
            "of": 123
          },
          "trip_join": {
            "n": 123,
            "of": 123
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 4,
          "no_header_timestamp": 0,
          "entities": 34,
          "informed_resolved": {
            "n": 43,
            "of": 43
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "breizhgo-car35",
      "name": "BreizhGo Car 35",
      "city": "Ille-et-Vilaine",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Région Bretagne / BreizhGo Car 35 — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T15:09:24Z",
        "age_hours": 17.9,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 27,
          "stops": 705,
          "trips": 1775,
          "stop_times": 22502
        },
        "pan_dataset_slug": "breizhgo-car",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "www.korrigo.bzh",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 237,
          "no_header_timestamp": 0,
          "entities": 3,
          "trip_join": {
            "n": 3,
            "of": 3
          },
          "stop_updates_timed": {
            "n": 11,
            "of": 11
          },
          "cancelled": {
            "n": 0,
            "of": 3
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "glazgo",
      "name": "Glazgo",
      "city": "Auray",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Auray Quiberon Terre Atlantique / Glazgo — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:18:24Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 13,
          "stops": 445,
          "trips": 806,
          "stop_times": 15525
        },
        "pan_dataset_slug": "reseau-urbain-glazgo",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 66,
          "trip_join": {
            "n": 4,
            "of": 4
          },
          "stop_updates_timed": {
            "n": 98,
            "of": 98
          },
          "cancelled": {
            "n": 0,
            "of": 4
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 66,
          "with_position": {
            "n": 4,
            "of": 4
          },
          "with_trip_id": {
            "n": 4,
            "of": 4
          },
          "with_route_id": {
            "n": 4,
            "of": 4
          },
          "trip_join": {
            "n": 4,
            "of": 4
          }
        },
        "alerts": {
          "host": "api.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 66,
          "informed_resolved": {
            "n": 4,
            "of": 4
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "izilo",
      "name": "Izilo",
      "city": "Lorient",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Lorient Agglomération / Izilo — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:07:29Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 136,
          "stops": 2106,
          "trips": 5222,
          "stop_times": 143226
        },
        "pan_dataset_slug": "horaires-theoriques-du-reseau-izilo-format-gtfs-de-lorient-agglomeration",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "feed-rdla-lorient.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 152,
          "trip_join": {
            "n": 151,
            "of": 152
          },
          "stop_updates_timed": {
            "n": 1671,
            "of": 1719
          },
          "cancelled": {
            "n": 0,
            "of": 152
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 22,
          "informed_resolved": {
            "n": 34,
            "of": 35
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "kiceo",
      "name": "Kicéo",
      "city": "Vannes",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Transdev GMVA Mobilités • Kicéo — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T06:12:26Z",
        "age_hours": 122.9,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 201,
          "stops": 2602,
          "trips": 2575,
          "stop_times": 64909
        },
        "pan_dataset_slug": "reseau-urbain-kiceo",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 17,
          "no_header_timestamp": 0,
          "entities": 0,
          "trip_join": {
            "n": 0,
            "of": 0
          },
          "stop_updates_timed": {
            "n": 0,
            "of": 0
          },
          "cancelled": {
            "n": 0,
            "of": 0
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 7,
          "no_header_timestamp": 0,
          "entities": 0,
          "with_position": {
            "n": 0,
            "of": 0
          },
          "with_trip_id": {
            "n": 0,
            "of": 0
          },
          "with_route_id": {
            "n": 0,
            "of": 0
          },
          "trip_join": {
            "n": 0,
            "of": 0
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 17,
          "no_header_timestamp": 0,
          "entities": 5,
          "informed_resolved": {
            "n": 143,
            "of": 143
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "mat",
      "name": "MAT",
      "city": "Saint-Malo",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Transdev SMA Mobilités • MAT — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:19:27Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 67,
          "stops": 1153,
          "trips": 12240,
          "stop_times": 287482
        },
        "pan_dataset_slug": "reseau-urbain-mat",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "qub",
      "name": "QUB",
      "city": "Quimper",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Quimper Bretagne Occidentale / QUB — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:10:23Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 56,
          "stops": 1122,
          "trips": 1951,
          "stop_times": 55099
        },
        "pan_dataset_slug": "horaires-theoriques-et-du-reseau-de-transports-qub-transports-urbains-de-quimper-bretagne-occidentale",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "feed-qub-quimper.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 98,
          "trip_join": {
            "n": 97,
            "of": 98
          },
          "stop_updates_timed": {
            "n": 3014,
            "of": 3121
          },
          "cancelled": {
            "n": 0,
            "of": 98
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "feed-qub-quimper.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 34,
          "with_position": {
            "n": 34,
            "of": 34
          },
          "with_trip_id": {
            "n": 34,
            "of": 34
          },
          "with_route_id": {
            "n": 34,
            "of": 34
          },
          "trip_join": {
            "n": 34,
            "of": 34
          }
        },
        "alerts": {
          "host": "notify.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 6,
          "informed_resolved": {
            "n": 11,
            "of": 11
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "riv-ploermel",
      "name": "RIV",
      "city": "Ploërmel",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Ploërmel Communauté / RIV (agrégat KorriGo, Région Bretagne) — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:17:45Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 5,
          "stops": 116,
          "trips": 50,
          "stop_times": 512
        },
        "pan_dataset_slug": "base-de-donnees-multimodale-transports-publics-en-bretagne-korrigo-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "star",
      "name": "STAR",
      "city": "Rennes",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Rennes Métropole / Keolis Rennes (STAR) — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T15:09:40Z",
        "age_hours": 17.9,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 155,
          "stops": 1804,
          "trips": 84136,
          "stop_times": 1823871
        },
        "pan_dataset_slug": "versions-des-horaires-theoriques-des-lignes-de-bus-et-de-metro-du-reseau-star-dans-les-formats-gtfs-et-netex-ainsi-que-les-urls-dacces-au-gtfs-rt-1",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 382,
          "trip_join": {
            "n": 369,
            "of": 382
          },
          "stop_updates_timed": {
            "n": 9559,
            "of": 9941
          },
          "cancelled": {
            "n": 2,
            "of": 382
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 1,
          "no_header_timestamp": 0,
          "entities": 154,
          "with_position": {
            "n": 154,
            "of": 154
          },
          "with_trip_id": {
            "n": 154,
            "of": 154
          },
          "with_route_id": {
            "n": 154,
            "of": 154
          },
          "trip_join": {
            "n": 154,
            "of": 154
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 46,
          "informed_resolved": {
            "n": 250,
            "of": 250
          }
        }
      },
      "engine_observed": [
        {
          "source": "star:ods:tco-bus-circulation-passages-tr",
          "last_ok_at": "2026-09-15T08:42:50+00:00",
          "last_error_at": "2026-09-15T00:58:38+00:00",
          "state": "ok"
        },
        {
          "source": "star:ods:tco-bus-topologie-lignes-td",
          "last_ok_at": "2026-09-14T15:10:01+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "star:ods:tco-bus-topologie-pointsarret-td",
          "last_ok_at": "2026-09-14T15:10:02+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "star:ods:tco-busmetro-trafic-alertes-tr",
          "last_ok_at": "2026-09-15T08:41:49+00:00",
          "last_error_at": "2026-09-15T00:58:38+00:00",
          "state": "ok"
        },
        {
          "source": "star:ods:tco-metro-circulation-passages-tr",
          "last_ok_at": "2026-09-15T01:21:45+00:00",
          "last_error_at": "2026-09-15T00:55:33+00:00",
          "state": "ok"
        },
        {
          "source": "star:ods:tco-metro-lignes-etat-tr",
          "last_ok_at": "2026-09-15T08:41:49+00:00",
          "last_error_at": "2026-09-15T00:58:38+00:00",
          "state": "ok"
        },
        {
          "source": "star:ods:tco-metro-stations-etat-tr",
          "last_ok_at": "2026-09-15T08:41:49+00:00",
          "last_error_at": "2026-09-15T00:58:38+00:00",
          "state": "ok"
        },
        {
          "source": "star:ods:tco-metro-topologie-lignes-td",
          "last_ok_at": "2026-09-14T15:10:01+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "star:ods:tco-metro-topologie-stations-td",
          "last_ok_at": "2026-09-14T15:10:07+00:00",
          "last_error_at": null,
          "state": "ok"
        }
      ]
    },
    {
      "network": "tub",
      "name": "TUB",
      "city": "Saint-Brieuc",
      "region": "Bretagne",
      "timezone": "Europe/Paris",
      "attribution": "Saint-Brieuc Armor Agglomération / TUB — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:12:22Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 93,
          "stops": 2606,
          "trips": 2379,
          "stop_times": 71801
        },
        "pan_dataset_slug": "gtfs-du-reseau-de-transports-publics-de-saint-brieuc-armor-agglomeration",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "agglobus-bourges",
      "name": "Agglobus",
      "city": "Bourges",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "JVMALIN / Agglobus — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-12T05:08:50Z",
        "age_hours": 76.0,
        "timetable_ends_on": "2027-09-11",
        "days_left": 361,
        "counts": {
          "lines": 101,
          "stops": 1265,
          "trips": 4011,
          "stop_times": 118705
        },
        "pan_dataset_slug": "agglobus-offre-theorique-mobilite-reseau-urbain-de-bourges",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 67,
          "trip_join": {
            "n": 67,
            "of": 67
          },
          "stop_updates_timed": {
            "n": 2255,
            "of": 2255
          },
          "cancelled": {
            "n": 0,
            "of": 67
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 9,
          "informed_resolved": {
            "n": 33,
            "of": 33
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "azalys",
      "name": "Azalys",
      "city": "Blois",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "JVMALIN / Azalys — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T07:07:55Z",
        "age_hours": 2.0,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 72,
          "stops": 1157,
          "trips": 1782,
          "stop_times": 38247
        },
        "pan_dataset_slug": "agglopolys-offre-theorique-mobilite-reseau-urbain-azalys-de-blois",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "app.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 32,
          "no_header_timestamp": 0,
          "entities": 34,
          "trip_join": {
            "n": 34,
            "of": 34
          },
          "stop_updates_timed": {
            "n": 856,
            "of": 856
          },
          "cancelled": {
            "n": 0,
            "of": 34
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "app.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 26,
          "no_header_timestamp": 0,
          "entities": 16,
          "with_position": {
            "n": 16,
            "of": 16
          },
          "with_trip_id": {
            "n": 16,
            "of": 16
          },
          "with_route_id": {
            "n": 16,
            "of": 16
          },
          "trip_join": {
            "n": 16,
            "of": 16
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "filbleu",
      "name": "Fil Bleu",
      "city": "Tours",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "Tours Métropole Val de Loire / Fil Bleu — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-11T17:08:55Z",
        "age_hours": 88.0,
        "timetable_ends_on": "2027-01-01",
        "days_left": 108,
        "counts": {
          "lines": 49,
          "stops": 2269,
          "trips": 18653,
          "stop_times": 618113
        },
        "pan_dataset_slug": "fil-bleu-syndicat-des-mobilites-gtfs-gtfs-rt",
        "last_error": null
      },
      "realtime": {
        "vehicle_positions": {
          "host": "data.filbleu.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 36,
          "no_header_timestamp": 0,
          "entities": 109,
          "with_position": {
            "n": 109,
            "of": 109
          },
          "with_trip_id": {
            "n": 109,
            "of": 109
          },
          "with_route_id": {
            "n": 0,
            "of": 109
          },
          "trip_join": {
            "n": 109,
            "of": 109
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "filibus",
      "name": "Filibus",
      "city": "Chartres",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "Filibus - Chartres Métropole Transports — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:28:34Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 82,
          "stops": 1287,
          "trips": 10746,
          "stop_times": 245386
        },
        "pan_dataset_slug": "filibus-urbain",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "gtfs.bus-tracker.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 85,
          "trip_join": {
            "n": 46,
            "of": 46
          },
          "stop_updates_timed": {
            "n": 46,
            "of": 46
          },
          "cancelled": {
            "n": 0,
            "of": 46
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "gtfs.bus-tracker.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 85,
          "with_position": {
            "n": 39,
            "of": 39
          },
          "with_trip_id": {
            "n": 39,
            "of": 39
          },
          "with_route_id": {
            "n": 39,
            "of": 39
          },
          "trip_join": {
            "n": 39,
            "of": 39
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "horizon",
      "name": "Horizon",
      "city": "Châteauroux",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "CHATEAUROUX METROPOLE / Horizon — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:16:33Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 18,
          "stops": 509,
          "trips": 1408,
          "stop_times": 37954
        },
        "pan_dataset_slug": "reseau-de-bus-urbain-horizon",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "levib",
      "name": "Le Vib'",
      "city": "Vierzon",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "Transdev Vierzon Mobilités • Le Vib / Le Vib' — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:24:11Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-07-31",
        "days_left": 319,
        "counts": {
          "lines": 8,
          "stops": 281,
          "trips": 333,
          "stop_times": 5326
        },
        "pan_dataset_slug": "reseau-urbain-le-vib",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 11,
          "no_header_timestamp": 0,
          "entities": 0,
          "trip_join": {
            "n": 0,
            "of": 0
          },
          "stop_updates_timed": {
            "n": 0,
            "of": 0
          },
          "cancelled": {
            "n": 0,
            "of": 0
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 11,
          "no_header_timestamp": 0,
          "entities": 0,
          "with_position": {
            "n": 0,
            "of": 0
          },
          "with_trip_id": {
            "n": 0,
            "of": 0
          },
          "with_route_id": {
            "n": 0,
            "of": 0
          },
          "trip_join": {
            "n": 0,
            "of": 0
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 4,
          "informed_resolved": {
            "n": 66,
            "of": 66
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "remi",
      "name": "Rémi",
      "city": "Centre-Val de Loire",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "JVMALIN / Rémi — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T21:09:21Z",
        "age_hours": 11.9,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 153,
          "stops": 5818,
          "trips": 8662,
          "stop_times": 119275
        },
        "pan_dataset_slug": "remi-offre-theorique-mobilite-reseau-interurbain-regional",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.okina.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 5,
          "no_header_timestamp": 0,
          "entities": 34,
          "trip_join": {
            "n": 20,
            "of": 20
          },
          "stop_updates_timed": {
            "n": 471,
            "of": 475
          },
          "cancelled": {
            "n": 0,
            "of": 20
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.okina.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 6,
          "no_header_timestamp": 0,
          "entities": 17,
          "with_position": {
            "n": 17,
            "of": 17
          },
          "with_trip_id": {
            "n": 17,
            "of": 17
          },
          "with_route_id": {
            "n": 17,
            "of": 17
          },
          "trip_join": {
            "n": 17,
            "of": 17
          }
        },
        "alerts": {
          "host": "jvmalin.api.instant-system.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 2,
          "no_header_timestamp": 0,
          "entities": 10,
          "informed_resolved": {
            "n": 0,
            "of": 16
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tao",
      "name": "TAO",
      "city": "Orléans",
      "region": "Centre-Val de Loire",
      "timezone": "Europe/Paris",
      "attribution": "Orléans Métropole / TAO — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T04:09:31Z",
        "age_hours": 4.9,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 41,
          "stops": 1364,
          "trips": 63328,
          "stop_times": 1992741
        },
        "pan_dataset_slug": "gtfs-netex-et-gtfs-rt-reseau-tao-orleans-metropole",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 55,
          "no_header_timestamp": 0,
          "entities": 1640,
          "trip_join": {
            "n": 1640,
            "of": 1640
          },
          "stop_updates_timed": {
            "n": 48544,
            "of": 48544
          },
          "cancelled": {
            "n": 0,
            "of": 1640
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "muvistrada",
      "name": "Muvistrada",
      "city": "Ajaccio",
      "region": "Corse",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération du Pays Ajaccien / Muvistrada — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:19:38Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 13,
          "stops": 554,
          "trips": 974,
          "stop_times": 15824
        },
        "pan_dataset_slug": "information-sur-les-transports-en-commun",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "via-strada",
      "name": "Via Strada (Collectivité de Corse)",
      "city": "Corse",
      "region": "Corse",
      "timezone": "Europe/Paris",
      "attribution": "Collectivité de Corse / Via Strada — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:13:41Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2030-12-31",
        "days_left": 1568,
        "counts": {
          "lines": 11,
          "stops": 320,
          "trips": 83,
          "stop_times": 1058
        },
        "pan_dataset_slug": "gtfs-transport-via-strada",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "ctc.plateforme-2cloud.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 14,
          "no_header_timestamp": 0,
          "entities": 6,
          "trip_join": {
            "n": 4,
            "of": 6
          },
          "stop_updates_timed": {
            "n": 78,
            "of": 82
          },
          "cancelled": {
            "n": 0,
            "of": 6
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "sncf",
      "name": "SNCF",
      "city": "France",
      "region": "France",
      "timezone": "Europe/Paris",
      "attribution": "SNCF — Open Database License (ODbL) (api.sncf.com, transport.data.gouv.fr GTFS + GTFS-RT + SIRI ET Lite)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T11:08:24Z",
        "age_hours": 22.0,
        "timetable_ends_on": null,
        "days_left": null,
        "counts": {
          "lines": 884,
          "stops": 10603,
          "trips": 38295,
          "stop_times": 331493
        },
        "pan_dataset_slug": null,
        "last_error": null,
        "timetable_ends_on_reason": "not_gtfs"
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 54,
          "no_header_timestamp": 0,
          "entities": 1137,
          "trip_join": {
            "n": 965,
            "of": 1137
          },
          "stop_updates_timed": {
            "n": 9599,
            "of": 9599
          },
          "cancelled": {
            "n": 10,
            "of": 1137
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 71,
          "no_header_timestamp": 0,
          "entities": 477,
          "informed_resolved": {
            "n": 489,
            "of": 489
          }
        }
      },
      "engine_observed": [
        {
          "source": "sncf:navitia",
          "last_ok_at": "2026-09-15T08:23:17+00:00",
          "last_error_at": "2026-09-14T10:30:10+00:00",
          "state": "ok"
        },
        {
          "source": "sncf:siri-et:platforms",
          "last_ok_at": "2026-09-15T07:11:56+00:00",
          "last_error_at": "2026-09-09T13:58:37+00:00",
          "state": "ok"
        }
      ]
    },
    {
      "network": "cts",
      "name": "CTS",
      "city": "Strasbourg",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "CTS - Compagnie des Transports Strasbourgeois — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T19:07:13Z",
        "age_hours": 110.0,
        "timetable_ends_on": "2027-03-09",
        "days_left": 175,
        "counts": {
          "lines": 48,
          "stops": 1354,
          "trips": 33134,
          "stop_times": 758538
        },
        "pan_dataset_slug": "donnees-theoriques-gtfs-et-temps-reel-siri-lite-du-reseau-cts",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "fluo",
      "name": "Fluo Grand Est",
      "city": "Grand Est",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T01:07:23Z",
        "age_hours": 8.0,
        "timetable_ends_on": "2027-08-29",
        "days_left": 348,
        "counts": {
          "lines": 2163,
          "stops": 19062,
          "trips": 11834,
          "stop_times": 138301
        },
        "pan_dataset_slug": "offre-du-reseau-de-transport-interurbain-fluo-grand-est",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "reims",
      "name": "Grand Reims Mobilités",
      "city": "Reims",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / Grand Reims Mobilités — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-12T19:09:16Z",
        "age_hours": 61.9,
        "timetable_ends_on": "2026-11-01",
        "days_left": 47,
        "counts": {
          "lines": 28,
          "stops": 1224,
          "trips": 16666,
          "stop_times": 424596
        },
        "pan_dataset_slug": "offre-de-transport-du-reseau-grand-reims-mobilites-communaute-urbaine-du-grand-reims",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 41,
          "no_header_timestamp": 0,
          "entities": 303,
          "trip_join": {
            "n": 303,
            "of": 303
          },
          "stop_updates_timed": {
            "n": 5915,
            "of": 5915
          },
          "cancelled": {
            "n": 0,
            "of": 303
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "imagine",
      "name": "Imagine",
      "city": "Épinal",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / Imagine — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:13:17Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-12-31",
        "days_left": 472,
        "counts": {
          "lines": 98,
          "stops": 1773,
          "trips": 1771,
          "stop_times": 40824
        },
        "pan_dataset_slug": "fr-200052264-t0009-0000-1",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 44,
          "no_header_timestamp": 0,
          "entities": 74,
          "trip_join": {
            "n": 74,
            "of": 74
          },
          "stop_updates_timed": {
            "n": 1551,
            "of": 1551
          },
          "cancelled": {
            "n": 0,
            "of": 74
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "lemet",
      "name": "Le Met'",
      "city": "Metz",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Eurométropole de Metz / Le Met' — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T21:09:00Z",
        "age_hours": 12.0,
        "timetable_ends_on": "2026-10-14",
        "days_left": 29,
        "counts": {
          "lines": 78,
          "stops": 1667,
          "trips": 17492,
          "stop_times": 421314
        },
        "pan_dataset_slug": "fichiers-gtfs-eurometropole-de-metz",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 17,
          "no_header_timestamp": 0,
          "entities": 248,
          "trip_join": {
            "n": 248,
            "of": 248
          },
          "stop_updates_timed": {
            "n": 3536,
            "of": 3536
          },
          "cancelled": {
            "n": 0,
            "of": 248
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 17,
          "no_header_timestamp": 0,
          "entities": 108,
          "with_position": {
            "n": 108,
            "of": 108
          },
          "with_trip_id": {
            "n": 108,
            "of": 108
          },
          "with_route_id": {
            "n": 108,
            "of": 108
          },
          "trip_join": {
            "n": 108,
            "of": 108
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "sitac-chalons",
      "name": "SITAC Châlons",
      "city": "Châlons-en-Champagne",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / SITAC Châlons — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T02:09:27Z",
        "age_hours": 6.9,
        "timetable_ends_on": "2026-10-17",
        "days_left": 32,
        "counts": {
          "lines": 31,
          "stops": 668,
          "trips": 1640,
          "stop_times": 39473
        },
        "pan_dataset_slug": "fr-200052264-t0005-0000-1",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 33,
          "no_header_timestamp": 0,
          "entities": 25,
          "trip_join": {
            "n": 25,
            "of": 25
          },
          "stop_updates_timed": {
            "n": 504,
            "of": 504
          },
          "cancelled": {
            "n": 0,
            "of": 25
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "solea",
      "name": "Soléa",
      "city": "Mulhouse",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / Soléa — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:33Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-06-25",
        "days_left": 283,
        "counts": {
          "lines": 46,
          "stops": 1479,
          "trips": 18007,
          "stop_times": 374987
        },
        "pan_dataset_slug": "fr-200052264-t0014-0000-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "stan",
      "name": "Stan",
      "city": "Nancy",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / Stan — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:10:26Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-30",
        "days_left": 106,
        "counts": {
          "lines": 41,
          "stops": 1466,
          "trips": 37975,
          "stop_times": 1363636
        },
        "pan_dataset_slug": "fr-200052264-t0034-0000-1",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 33,
          "no_header_timestamp": 0,
          "entities": 235,
          "trip_join": {
            "n": 235,
            "of": 235
          },
          "stop_updates_timed": {
            "n": 6008,
            "of": 6008
          },
          "cancelled": {
            "n": 1,
            "of": 235
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "tac-charleville",
      "name": "TAC",
      "city": "Charleville-Mézières",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / TAC — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:09:50Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-07-11",
        "days_left": 299,
        "counts": {
          "lines": 26,
          "stops": 891,
          "trips": 766,
          "stop_times": 16566
        },
        "pan_dataset_slug": "fr-200052264-t0002-0000-1",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 29,
          "no_header_timestamp": 0,
          "entities": 69,
          "trip_join": {
            "n": 69,
            "of": 69
          },
          "stop_updates_timed": {
            "n": 1657,
            "of": 1657
          },
          "cancelled": {
            "n": 0,
            "of": 69
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "tcat",
      "name": "TCAT",
      "city": "Troyes",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "TCAT - Transports en Commun de l'Agglomération Troyenne — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:12:17Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 58,
          "stops": 1747,
          "trips": 3688,
          "stop_times": 99119
        },
        "pan_dataset_slug": "donnees-tcat-troyes-champagne-metropole-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "temob",
      "name": "TeMo'b",
      "city": "Thionville",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / TeMo'b — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:18:49Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-08-29",
        "days_left": 348,
        "counts": {
          "lines": 51,
          "stops": 1459,
          "trips": 4149,
          "stop_times": 91189
        },
        "pan_dataset_slug": "offre-de-transport-du-reseau-temob-syndicat-mixte-des-transports-urbains-thionville-fensch",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 62,
          "no_header_timestamp": 0,
          "entities": 36,
          "trip_join": {
            "n": 36,
            "of": 36
          },
          "stop_updates_timed": {
            "n": 908,
            "of": 908
          },
          "cancelled": {
            "n": 0,
            "of": 36
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "trace",
      "name": "TRACE",
      "city": "Colmar",
      "region": "Grand Est",
      "timezone": "Europe/Paris",
      "attribution": "Fluo Grand Est / TRACE — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T09:07:44Z",
        "age_hours": 120.0,
        "timetable_ends_on": "2026-11-15",
        "days_left": 61,
        "counts": {
          "lines": 10,
          "stops": 467,
          "trips": 1465,
          "stop_times": 28643
        },
        "pan_dataset_slug": "fr-200052264-t0004-0000-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "agglobus-cayenne",
      "name": "Agglobus",
      "city": "Cayenne",
      "region": "Guyane",
      "timezone": "America/Cayenne",
      "attribution": "Communauté d’Agglomération du Centre Littoral de Guyane / Agglobus — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:10:06Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 8,
          "stops": 536,
          "trips": 2799,
          "stop_times": 86569
        },
        "pan_dataset_slug": "agence-agglobus",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "ametis",
      "name": "Ametis",
      "city": "Amiens",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Ametis — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T18:08:23Z",
        "age_hours": 15.0,
        "timetable_ends_on": "2026-11-19",
        "days_left": 65,
        "counts": {
          "lines": 22,
          "stops": 740,
          "trips": 4293,
          "stop_times": 148026
        },
        "pan_dataset_slug": "ametis",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 10,
          "no_header_timestamp": 0,
          "entities": 83,
          "trip_join": {
            "n": 83,
            "of": 83
          },
          "stop_updates_timed": {
            "n": 2916,
            "of": 2916
          },
          "cancelled": {
            "n": 0,
            "of": 83
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 10,
          "no_header_timestamp": 0,
          "entities": 76,
          "with_position": {
            "n": 76,
            "of": 76
          },
          "with_trip_id": {
            "n": 69,
            "of": 76
          },
          "with_route_id": {
            "n": 69,
            "of": 76
          },
          "trip_join": {
            "n": 69,
            "of": 69
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "artis",
      "name": "Artis",
      "city": "Arras",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Communauté Urbaine d'Arras / Artis — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:09:19Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-08-29",
        "days_left": 348,
        "counts": {
          "lines": 53,
          "stops": 1205,
          "trips": 7841,
          "stop_times": 173897
        },
        "pan_dataset_slug": "reseau-de-transport-artis",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "axo",
      "name": "AXO",
      "city": "Creil",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Oise Mobilité - Syndicat mixte des transports collectifs de l'Oise / AXO — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T15:09:17Z",
        "age_hours": 17.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 25,
          "stops": 272,
          "trips": 1337,
          "stop_times": 35858
        },
        "pan_dataset_slug": "donnees-theoriques-et-temps-reel-du-reseau-axo-communaute-dagglomeration-creil-sud-oise",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.oisemob.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 45,
          "trip_join": {
            "n": 45,
            "of": 45
          },
          "stop_updates_timed": {
            "n": 1024,
            "of": 1024
          },
          "cancelled": {
            "n": 0,
            "of": 45
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.oisemob.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 21,
          "with_position": {
            "n": 21,
            "of": 21
          },
          "with_trip_id": {
            "n": 21,
            "of": 21
          },
          "with_route_id": {
            "n": 21,
            "of": 21
          },
          "trip_join": {
            "n": 21,
            "of": 21
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "corolis",
      "name": "Corolis",
      "city": "Beauvais",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Oise Mobilité - Syndicat mixte des transports collectifs de l'Oise / Corolis — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:28:28Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 10,
          "stops": 248,
          "trips": 668,
          "stop_times": 13142
        },
        "pan_dataset_slug": "donnees-theoriques-et-temps-reel-du-reseau-corolis-urbain-communaute-dagglomeration-du-beauvaisis",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.oisemob.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 45,
          "trip_join": {
            "n": 45,
            "of": 45
          },
          "stop_updates_timed": {
            "n": 816,
            "of": 816
          },
          "cancelled": {
            "n": 0,
            "of": 45
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.oisemob.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 22,
          "with_position": {
            "n": 22,
            "of": 22
          },
          "with_trip_id": {
            "n": 22,
            "of": 22
          },
          "with_route_id": {
            "n": 22,
            "of": 22
          },
          "trip_join": {
            "n": 22,
            "of": 22
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "dkbus",
      "name": "DK'Bus",
      "city": "Dunkerque",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Communauté Urbaine de Dunkerque / Réseau Dk Bus / DK'Bus — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:11Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 20,
          "stops": 790,
          "trips": 9734,
          "stop_times": 309413
        },
        "pan_dataset_slug": "offre-de-transports-reseau-dk-bus-de-la-communaute-urbaine-de-dunkerque-gtfs",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "gtfs.bus-tracker.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 401,
          "trip_join": {
            "n": 311,
            "of": 311
          },
          "stop_updates_timed": {
            "n": 6877,
            "of": 6877
          },
          "cancelled": {
            "n": 0,
            "of": 311
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "gtfs.bus-tracker.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 401,
          "with_position": {
            "n": 90,
            "of": 90
          },
          "with_trip_id": {
            "n": 61,
            "of": 90
          },
          "with_route_id": {
            "n": 90,
            "of": 90
          },
          "trip_join": {
            "n": 61,
            "of": 61
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "ilevia",
      "name": "Ilévia",
      "city": "Lille",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Métropole Européenne de Lille / Ilévia — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T08:08:44Z",
        "age_hours": 1.0,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 157,
          "stops": 4918,
          "trips": 39074,
          "stop_times": 1143657
        },
        "pan_dataset_slug": "ilevia-localisation-des-arrets-bus-metro-et-tram-gtfs",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 374,
          "trip_join": {
            "n": 374,
            "of": 374
          },
          "stop_updates_timed": {
            "n": 3930,
            "of": 3930
          },
          "cancelled": {
            "n": 0,
            "of": 374
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "marineo",
      "name": "Marinéo",
      "city": "Boulogne-sur-Mer",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'agglomération du Boulonnais / Marinéo — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:28Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-07-03",
        "days_left": 291,
        "counts": {
          "lines": 49,
          "stops": 664,
          "trips": 2036,
          "stop_times": 54120
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-du-reseau-de-transport-marineo",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 24,
          "no_header_timestamp": 0,
          "entities": 76,
          "trip_join": {
            "n": 76,
            "of": 76
          },
          "stop_updates_timed": {
            "n": 1268,
            "of": 1268
          },
          "cancelled": {
            "n": 0,
            "of": 76
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 2,
          "no_header_timestamp": 0,
          "entities": 11,
          "informed_resolved": {
            "n": 24,
            "of": 24
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "sitac-calais",
      "name": "SITAC",
      "city": "Calais",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Syndicat Intercommunal des Transports urbains de l’Agglomération du Calaisis / SITAC — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:23:06Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-06-27",
        "days_left": 285,
        "counts": {
          "lines": 60,
          "stops": 803,
          "trips": 5826,
          "stop_times": 173862
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-aux-formats-gtfs-et-gtfs-rt-du-reseau-sitac",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 65,
          "trip_join": {
            "n": 33,
            "of": 33
          },
          "stop_updates_timed": {
            "n": 641,
            "of": 641
          },
          "cancelled": {
            "n": 0,
            "of": 33
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 65,
          "with_position": {
            "n": 31,
            "of": 31
          },
          "with_trip_id": {
            "n": 31,
            "of": 31
          },
          "with_route_id": {
            "n": 31,
            "of": 31
          },
          "trip_join": {
            "n": 31,
            "of": 31
          }
        },
        "alerts": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 65,
          "informed_resolved": {
            "n": 0,
            "of": 0
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tadao",
      "name": "TADAO",
      "city": "Lens",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "TADAO — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T11:11:19Z",
        "age_hours": 21.9,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 333,
          "stops": 3398,
          "trips": 9250,
          "stop_times": 290892
        },
        "pan_dataset_slug": "gtfs-tadao",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 45,
          "no_header_timestamp": 0,
          "entities": 178,
          "trip_join": {
            "n": 174,
            "of": 174
          },
          "stop_updates_timed": {
            "n": 768,
            "of": 768
          },
          "cancelled": {
            "n": 0,
            "of": 174
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "tic",
      "name": "TIC",
      "city": "Compiègne",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Oise Mobilité - Syndicat mixte des transports collectifs de l'Oise / TIC — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:07:56Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2026-11-11",
        "days_left": 57,
        "counts": {
          "lines": 15,
          "stops": 266,
          "trips": 1214,
          "stop_times": 22638
        },
        "pan_dataset_slug": "donnees-theoriques-et-temps-reel-du-reseau-tic-urbain-communaute-dagglomeration-de-la-region-de-compiegne-et-de-la-basse-automne",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.oisemob.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 35,
          "trip_join": {
            "n": 35,
            "of": 35
          },
          "stop_updates_timed": {
            "n": 562,
            "of": 562
          },
          "cancelled": {
            "n": 0,
            "of": 35
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.oisemob.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 14,
          "with_position": {
            "n": 14,
            "of": 14
          },
          "with_trip_id": {
            "n": 14,
            "of": 14
          },
          "with_route_id": {
            "n": 14,
            "of": 14
          },
          "trip_join": {
            "n": 14,
            "of": 14
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "transvilles",
      "name": "Transvilles",
      "city": "Valenciennes",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Syndicat Intercommunal de Mobilité et d'Organisation Urbaine du Valenciennois / Transvilles — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:13:30Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 88,
          "stops": 1958,
          "trips": 14819,
          "stop_times": 363868
        },
        "pan_dataset_slug": "simouv-horaires-theoriques-format-gtfs-et-temps-reel-format-siri-transvilles-valenciennes",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 201,
          "trip_join": {
            "n": 0,
            "of": 104
          },
          "stop_updates_timed": {
            "n": 1218,
            "of": 1218
          },
          "cancelled": {
            "n": 0,
            "of": 104
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 201,
          "with_position": {
            "n": 97,
            "of": 97
          },
          "with_trip_id": {
            "n": 97,
            "of": 97
          },
          "with_route_id": {
            "n": 97,
            "of": 97
          },
          "trip_join": {
            "n": 0,
            "of": 97
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tuc",
      "name": "TUC",
      "city": "Cambrai",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération de Cambrai / TUC — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:07:58Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 40,
          "stops": 543,
          "trips": 1244,
          "stop_times": 19449
        },
        "pan_dataset_slug": "donnees-gtfs-reseau-tuc-communaute-dagglomeration-de-cambrai",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "eveole",
      "name": "Évéole",
      "city": "Douai",
      "region": "Hauts-de-France",
      "timezone": "Europe/Paris",
      "attribution": "EVEOLE — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:12:56Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 41,
          "stops": 1471,
          "trips": 7216,
          "stop_times": 147744
        },
        "pan_dataset_slug": "eveole-douai-reseau-bus-du-syndicat-mixte-des-transports-du-douaisis-smtd",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "alterneo",
      "name": "Alternéo",
      "city": "Saint-Pierre",
      "region": "La Réunion",
      "timezone": "Indian/Reunion",
      "attribution": "ALTERNEO — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:23:42Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-02-28",
        "days_left": 166,
        "counts": {
          "lines": 57,
          "stops": 3640,
          "trips": 10483,
          "stop_times": 367750
        },
        "pan_dataset_slug": "donnees-du-reseau-alterneo",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 106,
          "trip_join": {
            "n": 106,
            "of": 106
          },
          "stop_updates_timed": {
            "n": 2337,
            "of": 2337
          },
          "cancelled": {
            "n": 1,
            "of": 106
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 55,
          "with_position": {
            "n": 55,
            "of": 55
          },
          "with_trip_id": {
            "n": 55,
            "of": 55
          },
          "with_route_id": {
            "n": 55,
            "of": 55
          },
          "trip_join": {
            "n": 55,
            "of": 55
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 0,
          "informed_resolved": {
            "n": 0,
            "of": 0
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "carjaune",
      "name": "Car Jaune",
      "city": "Saint-Denis",
      "region": "La Réunion",
      "timezone": "Indian/Reunion",
      "attribution": "Région Réunion / Car Jaune — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T22:08:27Z",
        "age_hours": 11.0,
        "timetable_ends_on": "2027-08-02",
        "days_left": 321,
        "counts": {
          "lines": 16,
          "stops": 468,
          "trips": 2286,
          "stop_times": 36858
        },
        "pan_dataset_slug": "horaires-theoriques-au-format-gtfs-et-horaires-temps-reel-au-format-gtfs-rt-du-reseau-car-jaune-a-la-reunion",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 189,
          "trip_join": {
            "n": 63,
            "of": 63
          },
          "stop_updates_timed": {
            "n": 1068,
            "of": 1070
          },
          "cancelled": {
            "n": 0,
            "of": 63
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 10,
          "no_header_timestamp": 0,
          "entities": 189,
          "with_position": {
            "n": 63,
            "of": 63
          },
          "with_trip_id": {
            "n": 63,
            "of": 63
          },
          "with_route_id": {
            "n": 63,
            "of": 63
          },
          "trip_join": {
            "n": 63,
            "of": 63
          }
        },
        "alerts": {
          "host": "pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 10,
          "no_header_timestamp": 0,
          "entities": 189,
          "informed_resolved": {
            "n": 2,
            "of": 2
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "carsud",
      "name": "CarSud",
      "city": "Le Tampon",
      "region": "La Réunion",
      "timezone": "Indian/Reunion",
      "attribution": "Réseau CARSUD — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:06:30Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 43,
          "stops": 2141,
          "trips": 1352,
          "stop_times": 54247
        },
        "pan_dataset_slug": "referentiel-topologique-reseau-carsud",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 74,
          "trip_join": {
            "n": 39,
            "of": 39
          },
          "stop_updates_timed": {
            "n": 980,
            "of": 986
          },
          "cancelled": {
            "n": 0,
            "of": 39
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 74,
          "with_position": {
            "n": 35,
            "of": 35
          },
          "with_trip_id": {
            "n": 35,
            "of": 35
          },
          "with_route_id": {
            "n": 35,
            "of": 35
          },
          "trip_join": {
            "n": 35,
            "of": 35
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "citalis",
      "name": "Citalis",
      "city": "Saint-Denis",
      "region": "La Réunion",
      "timezone": "Indian/Reunion",
      "attribution": "CITALIS — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:12:35Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 71,
          "stops": 1618,
          "trips": 12782,
          "stop_times": 266670
        },
        "pan_dataset_slug": "horaire-du-reseau-citalis",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "estival",
      "name": "Estival",
      "city": "Saint-Benoît",
      "region": "La Réunion",
      "timezone": "Indian/Reunion",
      "attribution": "SPL Estival/ Cirest  / Estival — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:12:54Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 37,
          "stops": 1869,
          "trips": 717,
          "stop_times": 19740
        },
        "pan_dataset_slug": "jeu-de-donnee-spl-estival-2025",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "karouest",
      "name": "Kar'Ouest",
      "city": "Le Port",
      "region": "La Réunion",
      "timezone": "Indian/Reunion",
      "attribution": "SEMTO / Kar'Ouest — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:13:19Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 76,
          "stops": 2283,
          "trips": 4297,
          "stop_times": 129431
        },
        "pan_dataset_slug": "reseau-karouest",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "cacem",
      "name": "Réseau urbain CACEM (Martinique)",
      "city": "Fort-de-France",
      "region": "Martinique",
      "timezone": "America/Martinique",
      "attribution": "Martinique Transport / Réseau urbain CACEM (Martinique) — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:23:59Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 60,
          "stops": 2255,
          "trips": 11146,
          "stop_times": 268385
        },
        "pan_dataset_slug": "gtfs-urbain-de-la-zone-centre",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "ext.saemartinique.ovh",
          "samples": 0,
          "ok": 0,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 1,
          "header_age_seconds": null,
          "no_header_timestamp": 0,
          "entities": null,
          "trip_join": null,
          "stop_updates_timed": null,
          "cancelled": null,
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "sudlib",
      "name": "Sud Lib (CAESM)",
      "city": "Le Marin",
      "region": "Martinique",
      "timezone": "America/Martinique",
      "attribution": "Martinique Transport / Sud Lib (CAESM) — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:10:58Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 96,
          "stops": 851,
          "trips": 2573,
          "stop_times": 35245
        },
        "pan_dataset_slug": "gtfs-urbain-de-la-zone-sud",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "cam",
      "name": "Compagnie des Autobus de Monaco",
      "city": "Monaco",
      "region": "Monaco",
      "timezone": "Europe/Monaco",
      "attribution": "Compagnie des Autobus de Monaco — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T01:07:16Z",
        "age_hours": 8.0,
        "timetable_ends_on": "2026-10-21",
        "days_left": 36,
        "counts": {
          "lines": 13,
          "stops": 97,
          "trips": 7437,
          "stop_times": 103329
        },
        "pan_dataset_slug": "gtfs-3",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "altobus",
      "name": "Altobus",
      "city": "Alençon",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Communauté urbaine d'Alençon / Altobus (agrégat Atoumod) — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T18:07:35Z",
        "age_hours": 15.0,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 20,
          "stops": 233,
          "trips": 1996,
          "stop_times": 55905
        },
        "pan_dataset_slug": "base-de-donnees-multimodale-des-reseaux-de-transport-public-normands",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 372,
          "trip_join": {
            "n": 12,
            "of": 372
          },
          "stop_updates_timed": {
            "n": 7417,
            "of": 7418
          },
          "cancelled": {
            "n": 0,
            "of": 372
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "astuce",
      "name": "Astuce",
      "city": "Rouen",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Métropole Rouen Normandie / Astuce — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-13T23:08:18Z",
        "age_hours": 34.0,
        "timetable_ends_on": "2027-08-29",
        "days_left": 348,
        "counts": {
          "lines": 111,
          "stops": 3700,
          "trips": 13301,
          "stop_times": 344441
        },
        "pan_dataset_slug": "donnees-statiques-et-temps-reel-du-reseau-astuce-metropole-rouen-normandie",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.mrn.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 0,
          "trip_join": {
            "n": 0,
            "of": 0
          },
          "stop_updates_timed": {
            "n": 0,
            "of": 0
          },
          "cancelled": {
            "n": 0,
            "of": 0
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.mrn.cityway.fr",
          "samples": 1,
          "ok": 0,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 1,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": null,
          "no_header_timestamp": 0,
          "entities": null,
          "with_position": null,
          "with_trip_id": null,
          "with_route_id": null,
          "trip_join": null
        }
      },
      "engine_observed": []
    },
    {
      "network": "bybus",
      "name": "Bybus",
      "city": "Bayeux",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Bayeux Intercom / Bybus (agrégat Atoumod) — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T18:07:45Z",
        "age_hours": 15.0,
        "timetable_ends_on": "2027-03-31",
        "days_left": 197,
        "counts": {
          "lines": 3,
          "stops": 56,
          "trips": 35,
          "stop_times": 622
        },
        "pan_dataset_slug": "base-de-donnees-multimodale-des-reseaux-de-transport-public-normands",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "capcotentin",
      "name": "Cap Cotentin",
      "city": "Cherbourg-en-Cotentin",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'agglomération Le Cotentin / Cap Cotentin — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:06:25Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-06-27",
        "days_left": 285,
        "counts": {
          "lines": 35,
          "stops": 620,
          "trips": 6959,
          "stop_times": 181001
        },
        "pan_dataset_slug": "horaires-theoriques-et-en-temps-reel-des-bus-et-autocars-circulant-sur-le-reseau-cap-cotentin",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "app.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 98,
          "trip_join": {
            "n": 45,
            "of": 49
          },
          "stop_updates_timed": {
            "n": 1339,
            "of": 1395
          },
          "cancelled": {
            "n": 0,
            "of": 49
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "app.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 98,
          "with_position": {
            "n": 49,
            "of": 49
          },
          "with_trip_id": {
            "n": 49,
            "of": 49
          },
          "with_route_id": {
            "n": 49,
            "of": 49
          },
          "trip_join": {
            "n": 45,
            "of": 49
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "deepmob",
      "name": "DeepMob",
      "city": "Dieppe",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Syndicat mixte Atoumod / DeepMob — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:24:10Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-05-31",
        "days_left": 258,
        "counts": {
          "lines": 13,
          "stops": 226,
          "trips": 1432,
          "stop_times": 17531
        },
        "pan_dataset_slug": "deepmob-dieppe-maritime",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 79,
          "no_header_timestamp": 0,
          "entities": 29,
          "trip_join": {
            "n": 29,
            "of": 29
          },
          "stop_updates_timed": {
            "n": 763,
            "of": 763
          },
          "cancelled": {
            "n": 0,
            "of": 29
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 9,
          "with_position": {
            "n": 9,
            "of": 9
          },
          "with_trip_id": {
            "n": 9,
            "of": 9
          },
          "with_route_id": {
            "n": 9,
            "of": 9
          },
          "trip_join": {
            "n": 9,
            "of": 9
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "lia",
      "name": "LiA",
      "city": "Le Havre",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Réseau de transport en commun Le Havre Seine Métropole LiA — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T04:09:18Z",
        "age_hours": 4.9,
        "timetable_ends_on": "2026-10-31",
        "days_left": 46,
        "counts": {
          "lines": 63,
          "stops": 1095,
          "trips": 10934,
          "stop_times": 263901
        },
        "pan_dataset_slug": "reseau-de-transport-en-commun-lia-gtfs-siri",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "opendata.transports-lia.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 60,
          "no_header_timestamp": 0,
          "entities": 332,
          "trip_join": {
            "n": 332,
            "of": 332
          },
          "stop_updates_timed": {
            "n": 6804,
            "of": 6854
          },
          "cancelled": {
            "n": 0,
            "of": 332
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "opendata.transports-lia.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 19,
          "no_header_timestamp": 0,
          "entities": 95,
          "with_position": {
            "n": 95,
            "of": 95
          },
          "with_trip_id": {
            "n": 95,
            "of": 95
          },
          "with_route_id": {
            "n": 95,
            "of": 95
          },
          "trip_join": {
            "n": 95,
            "of": 95
          }
        },
        "alerts": {
          "host": "opendata.transports-lia.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 19,
          "no_header_timestamp": 0,
          "entities": 1,
          "informed_resolved": {
            "n": 0,
            "of": 0
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "slam",
      "name": "SLAM",
      "city": "Saint-Lô",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Saint-Lô Agglo / SLAM (agrégat Atoumod) — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T18:07:52Z",
        "age_hours": 15.0,
        "timetable_ends_on": "2028-06-30",
        "days_left": 654,
        "counts": {
          "lines": 3,
          "stops": 88,
          "trips": 209,
          "stop_times": 4935
        },
        "pan_dataset_slug": "base-de-donnees-multimodale-des-reseaux-de-transport-public-normands",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 372,
          "trip_join": {
            "n": 11,
            "of": 372
          },
          "stop_updates_timed": {
            "n": 7417,
            "of": 7418
          },
          "cancelled": {
            "n": 0,
            "of": 372
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "transurbain",
      "name": "Transurbain",
      "city": "Évreux",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Syndicat mixte Atoumod / Transurbain — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:27:36Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2027-07-04",
        "days_left": 292,
        "counts": {
          "lines": 10,
          "stops": 357,
          "trips": 3674,
          "stop_times": 70848
        },
        "pan_dataset_slug": "transurbain-evreux-portes-de-normandie",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 107,
          "no_header_timestamp": 0,
          "entities": 43,
          "trip_join": {
            "n": 43,
            "of": 43
          },
          "stop_updates_timed": {
            "n": 585,
            "of": 585
          },
          "cancelled": {
            "n": 0,
            "of": 43
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 65,
          "no_header_timestamp": 0,
          "entities": 20,
          "with_position": {
            "n": 20,
            "of": 20
          },
          "with_trip_id": {
            "n": 20,
            "of": 20
          },
          "with_route_id": {
            "n": 20,
            "of": 20
          },
          "trip_join": {
            "n": 20,
            "of": 20
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 85745,
          "no_header_timestamp": 0,
          "entities": 1,
          "informed_resolved": {
            "n": 1,
            "of": 1
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "twisto",
      "name": "Twisto",
      "city": "Caen",
      "region": "Normandie",
      "timezone": "Europe/Paris",
      "attribution": "Caen la mer / Twisto (agrégat Atoumod) — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T18:08:02Z",
        "age_hours": 15.0,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 67,
          "stops": 1417,
          "trips": 6957,
          "stop_times": 221731
        },
        "pan_dataset_slug": "base-de-donnees-multimodale-des-reseaux-de-transport-public-normands",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "transgironde",
      "name": "Cars Région Gironde",
      "city": "Gironde",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Nouvelle-Aquitaine Mobilités / Cars Région Gironde (ex-TransGironde) — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T20:09:15Z",
        "age_hours": 12.9,
        "timetable_ends_on": "2027-09-11",
        "days_left": 361,
        "counts": {
          "lines": 93,
          "stops": 5900,
          "trips": 1897,
          "stop_times": 39171
        },
        "pan_dataset_slug": "arrets-horaires-et-parcours-theoriques-des-reseaux-naq-gir-nva-m-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "idelis",
      "name": "Idelis",
      "city": "Pau",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Pau Béarn Pyrénées Mobilités / Idelis — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:19Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-07-04",
        "days_left": 292,
        "counts": {
          "lines": 23,
          "stops": 822,
          "trips": 5195,
          "stop_times": 166879
        },
        "pan_dataset_slug": "fichier-des-donnees-theoriques-du-reseau-idelis-au-format-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "libeo",
      "name": "Libéo",
      "city": "Brive-la-Gaillarde",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Nouvelle-Aquitaine Mobilités / Libéo — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:07:35Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-06-28",
        "days_left": 286,
        "counts": {
          "lines": 12,
          "stops": 583,
          "trips": 4179,
          "stop_times": 111857
        },
        "pan_dataset_slug": "arrets-horaires-et-parcours-theoriques-des-reseaux-naq-bri-nva-m-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "mobius",
      "name": "Möbius",
      "city": "Angoulême",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "STGA - réseau Möbius — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:25:17Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 67,
          "stops": 2117,
          "trips": 12172,
          "stop_times": 144467
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-reseau-mobius",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 76,
          "no_header_timestamp": 0,
          "entities": 59,
          "trip_join": {
            "n": 59,
            "of": 59
          },
          "stop_updates_timed": {
            "n": 1304,
            "of": 1540
          },
          "cancelled": {
            "n": 0,
            "of": 59
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "perimouv",
      "name": "Périmouv",
      "city": "Périgueux",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Nouvelle-Aquitaine Mobilités / Périmouv — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:07:39Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 79,
          "stops": 1314,
          "trips": 2281,
          "stop_times": 32316
        },
        "pan_dataset_slug": "arrets-horaires-et-parcours-theoriques-des-reseaux-naq-per-nva-m-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "tanlib",
      "name": "Tanlib",
      "city": "Niort",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Nouvelle-Aquitaine Mobilités / Tanlib — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T04:09:03Z",
        "age_hours": 125.0,
        "timetable_ends_on": "2027-07-03",
        "days_left": 291,
        "counts": {
          "lines": 23,
          "stops": 903,
          "trips": 2795,
          "stop_times": 63986
        },
        "pan_dataset_slug": "arrets-horaires-et-parcours-theoriques-des-reseaux-naq-nio-nva-m-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "tbm",
      "name": "TBM",
      "city": "Bordeaux",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Bordeaux Métropole / TBM — Licence Ouverte (XtraData, GTFS, GTFS-RT, SIRI Lite)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T02:08:56Z",
        "age_hours": 31.0,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 128,
          "stops": 7390,
          "trips": 37654,
          "stop_times": 1490995
        },
        "pan_dataset_slug": "offres-de-services-bus-tram-et-scolaire-au-format-gtfs-netex-gtfs-rt-siri-lite",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "bdx.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 5,
          "no_header_timestamp": 0,
          "entities": 2250,
          "trip_join": {
            "n": 856,
            "of": 2240
          },
          "stop_updates_timed": {
            "n": 77506,
            "of": 79813
          },
          "cancelled": {
            "n": 71,
            "of": 2240
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "bdx.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 5,
          "no_header_timestamp": 0,
          "entities": 400,
          "with_position": {
            "n": 400,
            "of": 400
          },
          "with_trip_id": {
            "n": 400,
            "of": 400
          },
          "with_route_id": {
            "n": 392,
            "of": 400
          },
          "trip_join": {
            "n": 68,
            "of": 400
          }
        },
        "alerts": {
          "host": "bdx.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 105,
          "informed_resolved": {
            "n": 179,
            "of": 179
          }
        }
      },
      "engine_observed": [
        {
          "source": "tbm:mecatran:general-message",
          "last_ok_at": "2026-09-15T07:31:05+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tbm:xtradata:sv_arret_p",
          "last_ok_at": "2026-09-14T02:09:18+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tbm:xtradata:sv_cours_a",
          "last_ok_at": "2026-09-15T07:31:07+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tbm:xtradata:sv_horai_a",
          "last_ok_at": "2026-09-15T07:31:07+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tbm:xtradata:sv_ligne_a",
          "last_ok_at": "2026-09-14T02:09:16+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tbm:xtradata:sv_messa_a",
          "last_ok_at": "2026-09-15T07:31:06+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tbm:xtradata:sv_vehic_p",
          "last_ok_at": "2026-09-12T12:30:59+00:00",
          "last_error_at": null,
          "state": "ok"
        }
      ]
    },
    {
      "network": "tcl-limoges",
      "name": "TCL Limoges",
      "city": "Limoges",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Nouvelle-Aquitaine Mobilités / TCL Limoges — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:54Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 47,
          "stops": 1651,
          "trips": 5657,
          "stop_times": 142109
        },
        "pan_dataset_slug": "arrets-horaires-et-parcours-theoriques-des-reseaux-naq-lim-nva-m-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "tempobus",
      "name": "Tempo Bus",
      "city": "Agen",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Tempo Bus — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:23:17Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 70,
          "stops": 1325,
          "trips": 1979,
          "stop_times": 33429
        },
        "pan_dataset_slug": "agen-gtfs-urbain",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "txiktxak",
      "name": "Txik Txak",
      "city": "Bayonne",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Syndicat des Mobilités Pays Basque-Adour / Txik Txak — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-12T03:10:12Z",
        "age_hours": 77.9,
        "timetable_ends_on": "2027-07-04",
        "days_left": 292,
        "counts": {
          "lines": 45,
          "stops": 2775,
          "trips": 6011,
          "stop_times": 204276
        },
        "pan_dataset_slug": "offre-transport-du-reseau-txik-txak",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "app.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 7,
          "no_header_timestamp": 0,
          "entities": 415,
          "trip_join": {
            "n": 415,
            "of": 415
          },
          "stop_updates_timed": {
            "n": 12581,
            "of": 13152
          },
          "cancelled": {
            "n": 0,
            "of": 415
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "app.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 7,
          "informed_resolved": {
            "n": 8,
            "of": 8
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "vitalis",
      "name": "Vitalis",
      "city": "Poitiers",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Grand Poitiers Open Data / Vitalis — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T08:09:43Z",
        "age_hours": 24.9,
        "timetable_ends_on": "2026-11-22",
        "days_left": 68,
        "counts": {
          "lines": 235,
          "stops": 2667,
          "trips": 4509,
          "stop_times": 113427
        },
        "pan_dataset_slug": "mobilite-offre-de-transport-du-reseau-bus-gtfs-gtfs-rt",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "yelo",
      "name": "Yélo",
      "city": "La Rochelle",
      "region": "Nouvelle-Aquitaine",
      "timezone": "Europe/Paris",
      "attribution": "Nouvelle-Aquitaine Mobilités / Yélo — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-09T21:09:59Z",
        "age_hours": 131.9,
        "timetable_ends_on": "2027-04-30",
        "days_left": 227,
        "counts": {
          "lines": 119,
          "stops": 1520,
          "trips": 4509,
          "stop_times": 81446
        },
        "pan_dataset_slug": "arrets-horaires-et-parcours-theoriques-des-reseaux-naq-lro-nva-m-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "rodez",
      "name": "Agglobus Rodez",
      "city": "Rodez",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Open Data Rodez Agglomération / Agglobus Rodez — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:30:46Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 22,
          "stops": 314,
          "trips": 2526,
          "stop_times": 51411
        },
        "pan_dataset_slug": "transport-du-reseau-urbain-agglobus-et-de-transports-scolaires-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "alesy",
      "name": "Ales'Y",
      "city": "Alès",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Syndicat Mixte du Bassin d'Alès - Réseau Ales'Y — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-11T22:07:22Z",
        "age_hours": 83.0,
        "timetable_ends_on": "2028-12-31",
        "days_left": 838,
        "counts": {
          "lines": 121,
          "stops": 2581,
          "trips": 1570,
          "stop_times": 26458
        },
        "pan_dataset_slug": "horaires-theoriques-des-lignes-urbaines-et-interurbaines-sur-le-reseau-alesy-gtfs",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "alesy.plateforme-2cloud.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 24,
          "no_header_timestamp": 0,
          "entities": 270,
          "trip_join": {
            "n": 270,
            "of": 270
          },
          "stop_updates_timed": {
            "n": 5359,
            "of": 5361
          },
          "cancelled": {
            "n": 0,
            "of": 270
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "alesy.plateforme-2cloud.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 10,
          "no_header_timestamp": 0,
          "entities": 17,
          "with_position": {
            "n": 17,
            "of": 17
          },
          "with_trip_id": {
            "n": 17,
            "of": 17
          },
          "with_route_id": {
            "n": 17,
            "of": 17
          },
          "trip_join": {
            "n": 17,
            "of": 17
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "alliance",
      "name": "Alliance",
      "city": "Auch",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Zenbus / Alliance — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:09Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-01-02",
        "days_left": 109,
        "counts": {
          "lines": 8,
          "stops": 236,
          "trips": 1208,
          "stop_times": 21236
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-du-reseau-alliance-auch-gtfs-gtfs-rt",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 16,
          "trip_join": {
            "n": 6,
            "of": 6
          },
          "stop_updates_timed": {
            "n": 61,
            "of": 61
          },
          "cancelled": {
            "n": 0,
            "of": 6
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 16,
          "with_position": {
            "n": 6,
            "of": 6
          },
          "with_trip_id": {
            "n": 6,
            "of": 6
          },
          "with_route_id": {
            "n": 6,
            "of": 6
          },
          "trip_join": {
            "n": 6,
            "of": 6
          }
        },
        "alerts": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 16,
          "informed_resolved": {
            "n": 0,
            "of": 0
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "beemob",
      "name": "beeMob",
      "city": "Béziers",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Réseau beeMob - Transports en commun de l'Agglomération Béziers Méditerranée — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T18:07:53Z",
        "age_hours": 111.0,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 29,
          "stops": 611,
          "trips": 2585,
          "stop_times": 65720
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-du-reseau-de-transports-beemob-beziers-mediterranee",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "feed-beemob-beziers.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 86,
          "trip_join": {
            "n": 86,
            "of": 86
          },
          "stop_updates_timed": {
            "n": 2473,
            "of": 2488
          },
          "cancelled": {
            "n": 0,
            "of": 86
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "feed-beemob-beziers.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 36,
          "with_position": {
            "n": 36,
            "of": 36
          },
          "with_trip_id": {
            "n": 36,
            "of": 36
          },
          "with_route_id": {
            "n": 36,
            "of": 36
          },
          "trip_join": {
            "n": 36,
            "of": 36
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "capbus",
      "name": "Cap'Bus",
      "city": "Agde",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération Hérault Méditerranée / Cap'Bus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:09:33Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 6,
          "stops": 258,
          "trips": 846,
          "stop_times": 18412
        },
        "pan_dataset_slug": "gtfs-capbus",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 15,
          "trip_join": {
            "n": 8,
            "of": 8
          },
          "stop_updates_timed": {
            "n": 118,
            "of": 118
          },
          "cancelled": {
            "n": 0,
            "of": 8
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 15,
          "with_position": {
            "n": 7,
            "of": 7
          },
          "with_trip_id": {
            "n": 7,
            "of": 7
          },
          "with_route_id": {
            "n": 7,
            "of": 7
          },
          "trip_join": {
            "n": 7,
            "of": 7
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "citibus",
      "name": "Citibus",
      "city": "Narbonne",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Le Grand Narbonne Communauté d'Agglomération / Citibus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:28:23Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 72,
          "stops": 714,
          "trips": 5816,
          "stop_times": 138772
        },
        "pan_dataset_slug": "offre-de-transport-communaute-dagglomeration-le-grand-narbonne",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "feed-citibus-narbonne.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 62,
          "trip_join": {
            "n": 8,
            "of": 32
          },
          "stop_updates_timed": {
            "n": 523,
            "of": 523
          },
          "cancelled": {
            "n": 0,
            "of": 32
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "feed-citibus-narbonne.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 62,
          "with_position": {
            "n": 30,
            "of": 30
          },
          "with_trip_id": {
            "n": 30,
            "of": 30
          },
          "with_route_id": {
            "n": 30,
            "of": 30
          },
          "trip_join": {
            "n": 7,
            "of": 30
          }
        },
        "alerts": {
          "host": "notifytest.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 1,
          "informed_resolved": {
            "n": 2,
            "of": 2
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "libellus",
      "name": "Libellus",
      "city": "Castres",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "CA  de CASTRES - MAZAMET / Libellus — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:28:42Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 12,
          "stops": 428,
          "trips": 771,
          "stop_times": 21308
        },
        "pan_dataset_slug": "offre-de-transport-du-reseau-libellus-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "libea",
      "name": "libéA",
      "city": "Albi",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'agglomération de l'Albigeois / libéA — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:21:29Z",
        "age_hours": 156.7,
        "timetable_ends_on": "2027-07-03",
        "days_left": 291,
        "counts": {
          "lines": 10,
          "stops": 513,
          "trips": 1662,
          "stop_times": 42989
        },
        "pan_dataset_slug": "offre-de-transports-du-grand-albigeois-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "lio",
      "name": "liO Occitanie",
      "city": "Occitanie",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Région Occitanie / Pyrénées Méditerranée / liO Occitanie — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T22:08:31Z",
        "age_hours": 11.0,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 310,
          "stops": 12169,
          "trips": 7823,
          "stop_times": 128805
        },
        "pan_dataset_slug": "reseau-lio-occitanie",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "lio.2cloud.app",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 101,
          "trip_join": {
            "n": 101,
            "of": 101
          },
          "stop_updates_timed": {
            "n": 2063,
            "of": 2099
          },
          "cancelled": {
            "n": 0,
            "of": 101
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "lio.2cloud.app",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 22,
          "no_header_timestamp": 0,
          "entities": 100,
          "with_position": {
            "n": 94,
            "of": 100
          },
          "with_trip_id": {
            "n": 94,
            "of": 94
          },
          "with_route_id": {
            "n": 94,
            "of": 94
          },
          "trip_join": {
            "n": 94,
            "of": 94
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "max",
      "name": "Max Mende Mobilités",
      "city": "Mende",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Zenbus / Max Mende Mobilités — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T07:09:40Z",
        "age_hours": 25.9,
        "timetable_ends_on": "2027-08-28",
        "days_left": 347,
        "counts": {
          "lines": 6,
          "stops": 123,
          "trips": 266,
          "stop_times": 3865
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-du-reseau-max-mende-mobilites-bus-gtfs-gtfs-rt",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 4,
          "trip_join": {
            "n": 2,
            "of": 2
          },
          "stop_updates_timed": {
            "n": 19,
            "of": 19
          },
          "cancelled": {
            "n": 0,
            "of": 2
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "zenbus.net",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 4,
          "with_position": {
            "n": 2,
            "of": 2
          },
          "with_trip_id": {
            "n": 2,
            "of": 2
          },
          "with_route_id": {
            "n": 2,
            "of": 2
          },
          "trip_join": {
            "n": 2,
            "of": 2
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "rtca",
      "name": "RTCA",
      "city": "Carcassonne",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Carcassonne Agglo / RTCA — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T20:10:22Z",
        "age_hours": 108.9,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 56,
          "stops": 960,
          "trips": 1199,
          "stop_times": 21882
        },
        "pan_dataset_slug": "reseau-rtca",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "sankeo",
      "name": "Sankéo",
      "city": "Perpignan",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Sankéo — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T09:10:22Z",
        "age_hours": 23.9,
        "timetable_ends_on": "2026-09-27",
        "days_left": 12,
        "counts": {
          "lines": 38,
          "stops": 1693,
          "trips": 7350,
          "stop_times": 207449
        },
        "pan_dataset_slug": "gtfs-sankeo",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "eur.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 48,
          "no_header_timestamp": 0,
          "entities": 127,
          "trip_join": {
            "n": 127,
            "of": 127
          },
          "stop_updates_timed": {
            "n": 2912,
            "of": 3069
          },
          "cancelled": {
            "n": 0,
            "of": 127
          },
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "sete",
      "name": "Sète Agglopôle Mobilité",
      "city": "Sète",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Sète Agglopole Méditerranée / Sète Agglopôle Mobilité — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-12T07:08:17Z",
        "age_hours": 74.0,
        "timetable_ends_on": "2027-04-04",
        "days_left": 201,
        "counts": {
          "lines": 23,
          "stops": 518,
          "trips": 2997,
          "stop_times": 60007
        },
        "pan_dataset_slug": "reseau-bus-sete-agglopole-mobilite",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "sete.ceccli.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 6,
          "no_header_timestamp": 0,
          "entities": 132,
          "trip_join": {
            "n": 132,
            "of": 132
          },
          "stop_updates_timed": {
            "n": 2063,
            "of": 2063
          },
          "cancelled": {
            "n": 0,
            "of": 132
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "sete.ceccli.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 6,
          "no_header_timestamp": 0,
          "entities": 45,
          "with_position": {
            "n": 45,
            "of": 45
          },
          "with_trip_id": {
            "n": 34,
            "of": 45
          },
          "with_route_id": {
            "n": 34,
            "of": 45
          },
          "trip_join": {
            "n": 34,
            "of": 34
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tam",
      "name": "TaM",
      "city": "Montpellier",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Montpellier Méditerranée Métropole / TaM — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T06:09:45Z",
        "age_hours": 2.9,
        "timetable_ends_on": "2026-10-16",
        "days_left": 31,
        "counts": {
          "lines": 19,
          "stops": 1575,
          "trips": 8701,
          "stop_times": 202005
        },
        "pan_dataset_slug": "offre-de-transport-tam-en-temps-reel-gtfs-rt-urbain-et-suburbain",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "data.montpellier3m.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 43,
          "no_header_timestamp": 0,
          "entities": 373,
          "trip_join": {
            "n": 370,
            "of": 373
          },
          "stop_updates_timed": {
            "n": 7225,
            "of": 7287
          },
          "cancelled": {
            "n": 0,
            "of": 373
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "data.montpellier3m.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 23,
          "no_header_timestamp": 0,
          "entities": 131,
          "with_position": {
            "n": 131,
            "of": 131
          },
          "with_trip_id": {
            "n": 131,
            "of": 131
          },
          "with_route_id": {
            "n": 131,
            "of": 131
          },
          "trip_join": {
            "n": 129,
            "of": 131
          }
        },
        "alerts": {
          "host": "data.montpellier3m.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 23,
          "no_header_timestamp": 0,
          "entities": 0,
          "informed_resolved": {
            "n": 0,
            "of": 0
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tango",
      "name": "Tango",
      "city": "Nîmes",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Tango — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:31:31Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 88,
          "stops": 1133,
          "trips": 26830,
          "stop_times": 523286
        },
        "pan_dataset_slug": "offre-de-transport-du-reseau-tango-de-nimes-metropole-gtfs-gtfs-rt",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "gtfs.bus-tracker.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 30,
          "no_header_timestamp": 0,
          "entities": 193,
          "trip_join": {
            "n": 193,
            "of": 193
          },
          "stop_updates_timed": {
            "n": 2468,
            "of": 2468
          },
          "cancelled": {
            "n": 0,
            "of": 193
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "gtfs.bus-tracker.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 30,
          "no_header_timestamp": 0,
          "entities": 75,
          "with_position": {
            "n": 75,
            "of": 75
          },
          "with_trip_id": {
            "n": 75,
            "of": 75
          },
          "with_route_id": {
            "n": 75,
            "of": 75
          },
          "trip_join": {
            "n": 75,
            "of": 75
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tisseo",
      "name": "Tisséo",
      "city": "Toulouse",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Tisséo Collectivités — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T08:10:07Z",
        "age_hours": 0.9,
        "timetable_ends_on": "2026-10-07",
        "days_left": 22,
        "counts": {
          "lines": 126,
          "stops": 5725,
          "trips": 34345,
          "stop_times": 754170
        },
        "pan_dataset_slug": "tisseo-reseau-transport-urbain-toulousain",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.tisseo.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 1,
          "no_header_timestamp": 0,
          "entities": 1444,
          "trip_join": {
            "n": 1195,
            "of": 1387
          },
          "stop_updates_timed": {
            "n": 23177,
            "of": 23426
          },
          "cancelled": {
            "n": 195,
            "of": 1387
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "api.tisseo.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 1,
          "no_header_timestamp": 0,
          "entities": 1444,
          "informed_resolved": {
            "n": 37,
            "of": 48
          }
        }
      },
      "engine_observed": [
        {
          "source": "tisseo:v2:journeys",
          "last_ok_at": "2026-09-09T13:02:00+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tisseo:v2:messages",
          "last_ok_at": "2026-09-15T09:05:37+00:00",
          "last_error_at": null,
          "state": "ok"
        },
        {
          "source": "tisseo:v2:stops_schedules",
          "last_ok_at": "2026-09-15T09:05:37+00:00",
          "last_error_at": "2026-09-15T02:45:34+00:00",
          "state": "ok"
        }
      ]
    },
    {
      "network": "tlp",
      "name": "TLP Mobilités",
      "city": "Tarbes",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "TLP Mobilités — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:18:54Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2026-10-16",
        "days_left": 31,
        "counts": {
          "lines": 26,
          "stops": 675,
          "trips": 4160,
          "stop_times": 84123
        },
        "pan_dataset_slug": "horaires-theoriques-du-reseau-tarbes-lourdes-tlp-mobilites-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "transpor",
      "name": "Transp'Or",
      "city": "Mauguio",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Transp'Or - Pays de l'Or Agglomération — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:09:52Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2030-01-31",
        "days_left": 1234,
        "counts": {
          "lines": 6,
          "stops": 349,
          "trips": 172,
          "stop_times": 4323
        },
        "pan_dataset_slug": "offre-transport-en-commun-du-reseau-transpor-gtfs",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 26,
          "no_header_timestamp": 0,
          "entities": 13,
          "trip_join": {
            "n": 12,
            "of": 12
          },
          "stop_updates_timed": {
            "n": 357,
            "of": 733
          },
          "cancelled": {
            "n": 0,
            "of": 12
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 26,
          "no_header_timestamp": 0,
          "entities": 9,
          "with_position": {
            "n": 7,
            "of": 9
          },
          "with_trip_id": {
            "n": 7,
            "of": 7
          },
          "with_route_id": {
            "n": 7,
            "of": 7
          },
          "trip_join": {
            "n": 7,
            "of": 7
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "montauban",
      "name": "Transports Montalbanais",
      "city": "Montauban",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Société d'économie Mixte des Transports Montalbanais / Transports Montalbanais — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:10:21Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-08-29",
        "days_left": 348,
        "counts": {
          "lines": 44,
          "stops": 773,
          "trips": 1471,
          "stop_times": 33342
        },
        "pan_dataset_slug": "gtfs-de-la-societe-de-transport-urbain-du-grand-montauban-semtm",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "evidence",
      "name": "Évidence",
      "city": "Cahors",
      "region": "Occitanie",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération du Grand Cahors / Évidence — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:13:01Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2026-10-31",
        "days_left": 46,
        "counts": {
          "lines": 13,
          "stops": 179,
          "trips": 568,
          "stop_times": 9998
        },
        "pan_dataset_slug": "donnees-gtfs-du-reseau-de-transports-public-du-grand-cahors",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "aleop",
      "name": "Aléop",
      "city": "Pays de la Loire",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "Région des Pays de la Loire / Aléop — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T07:09:12Z",
        "age_hours": 26.0,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 139,
          "stops": 9783,
          "trips": 4612,
          "stop_times": 58833
        },
        "pan_dataset_slug": "arrets-horaires-et-circuits-des-lignes-de-transports-aleop-1",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 122,
          "trip_join": {
            "n": 34,
            "of": 122
          },
          "stop_updates_timed": {
            "n": 1262,
            "of": 1267
          },
          "cancelled": {
            "n": 1,
            "of": 122
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 12,
          "no_header_timestamp": 0,
          "entities": 29,
          "with_position": {
            "n": 29,
            "of": 29
          },
          "with_trip_id": {
            "n": 29,
            "of": 29
          },
          "with_route_id": {
            "n": 29,
            "of": 29
          },
          "trip_join": {
            "n": 29,
            "of": 29
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 2,
          "no_header_timestamp": 0,
          "entities": 36,
          "informed_resolved": {
            "n": 53,
            "of": 79
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "choletbus",
      "name": "Choletbus",
      "city": "Cholet",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "Transports Publics du Choletais / Choletbus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T11:09:11Z",
        "age_hours": 22.0,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 19,
          "stops": 664,
          "trips": 1490,
          "stop_times": 24973
        },
        "pan_dataset_slug": "horaires-theoriques-reseau-choletbus",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "app.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 22,
          "no_header_timestamp": 0,
          "entities": 66,
          "trip_join": {
            "n": 66,
            "of": 66
          },
          "stop_updates_timed": {
            "n": 1471,
            "of": 1472
          },
          "cancelled": {
            "n": 0,
            "of": 66
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "app.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 2,
          "informed_resolved": {
            "n": 4,
            "of": 4
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "impulsyon",
      "name": "Impulsyon",
      "city": "La Roche-sur-Yon",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "La Roche-sur-Yon Agglomération / Impulsyon — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:09:37Z",
        "age_hours": 156.9,
        "timetable_ends_on": "2027-06-27",
        "days_left": 285,
        "counts": {
          "lines": 19,
          "stops": 500,
          "trips": 5819,
          "stop_times": 166041
        },
        "pan_dataset_slug": "reseau-de-transport-impulsyon-a-la-roche-sur-yon",
        "last_error": null
      },
      "realtime": {
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 1,
          "no_header_timestamp": 0,
          "entities": 4,
          "informed_resolved": {
            "n": 7,
            "of": 7
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "irigo",
      "name": "Irigo",
      "city": "Angers",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "Angers Loire Métropole / Irigo — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-15T04:09:04Z",
        "age_hours": 5.0,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 103,
          "stops": 1772,
          "trips": 8478,
          "stop_times": 292484
        },
        "pan_dataset_slug": "angers-loire-metropole-reseau-irigo-gtfs-gtfs-rt-siri",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 50,
          "no_header_timestamp": 0,
          "entities": 212,
          "trip_join": {
            "n": 212,
            "of": 212
          },
          "stop_updates_timed": {
            "n": 4710,
            "of": 4710
          },
          "cancelled": {
            "n": 0,
            "of": 212
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 4,
          "no_header_timestamp": 0,
          "entities": 190,
          "with_position": {
            "n": 190,
            "of": 190
          },
          "with_trip_id": {
            "n": 190,
            "of": 190
          },
          "with_route_id": {
            "n": 190,
            "of": 190
          },
          "trip_join": {
            "n": 190,
            "of": 190
          }
        },
        "alerts": {
          "host": "notify.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 17,
          "informed_resolved": {
            "n": 23,
            "of": 23
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "lila-presquile",
      "name": "Lila Presqu'île",
      "city": "Guérande",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "Transdev CapAtlantique Mobilités • Lila Presqu'île / Lila Presqu'île — Open Database License (ODbL)",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T15:09:32Z",
        "age_hours": 17.9,
        "timetable_ends_on": "2026-12-18",
        "days_left": 94,
        "counts": {
          "lines": 122,
          "stops": 1900,
          "trips": 1395,
          "stop_times": 28947
        },
        "pan_dataset_slug": "reseau-urbain-scolaire-lila-presquile",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 0,
          "trip_join": {
            "n": 0,
            "of": 0
          },
          "stop_updates_timed": {
            "n": 0,
            "of": 0
          },
          "cancelled": {
            "n": 0,
            "of": 0
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 0,
          "with_position": {
            "n": 0,
            "of": 0
          },
          "with_trip_id": {
            "n": 0,
            "of": 0
          },
          "with_route_id": {
            "n": 0,
            "of": 0
          },
          "trip_join": {
            "n": 0,
            "of": 0
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "naolib",
      "name": "Naolib",
      "city": "Nantes",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "Nantes Métropole / Naolib — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:02:24Z",
        "age_hours": 157.1,
        "timetable_ends_on": "2026-12-08",
        "days_left": 84,
        "counts": {
          "lines": 96,
          "stops": 3633,
          "trips": 172259,
          "stop_times": 4305096
        },
        "pan_dataset_slug": "reseau-de-transports-collectifs-naolib",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 0,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 1,
          "samples_night": 0,
          "header_age_seconds": null,
          "no_header_timestamp": 0,
          "entities": null,
          "trip_join": null,
          "stop_updates_timed": null,
          "cancelled": null,
          "no_trip_id": 0
        }
      },
      "engine_observed": []
    },
    {
      "network": "setram",
      "name": "Setram",
      "city": "Le Mans",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "SETRAM — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:27:28Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2026-11-28",
        "days_left": 74,
        "counts": {
          "lines": 66,
          "stops": 1799,
          "trips": 9715,
          "stop_times": 214207
        },
        "pan_dataset_slug": "gtfs-du-reseau-des-transports-bus-et-tramway-setram-circulant-sur-le-territoire-le-mans-metropole",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "eur.mecatran.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 225,
          "trip_join": {
            "n": 225,
            "of": 225
          },
          "stop_updates_timed": {
            "n": 5244,
            "of": 5362
          },
          "cancelled": {
            "n": 0,
            "of": 225
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 76,
          "with_position": {
            "n": 76,
            "of": 76
          },
          "with_trip_id": {
            "n": 75,
            "of": 76
          },
          "with_route_id": {
            "n": 75,
            "of": 76
          },
          "trip_join": {
            "n": 75,
            "of": 75
          }
        },
        "alerts": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 1,
          "informed_resolved": {
            "n": 1,
            "of": 1
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tul",
      "name": "TUL",
      "city": "Laval",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "LAVAL Agglomération / TUL — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:16:54Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 23,
          "stops": 720,
          "trips": 7188,
          "stop_times": 218714
        },
        "pan_dataset_slug": "offre-de-transport-du-reseau-de-laval-agglomeration-gtfs",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "yceo",
      "name": "Ycéo",
      "city": "Saint-Nazaire",
      "region": "Pays de la Loire",
      "timezone": "Europe/Paris",
      "attribution": "Saint-Nazaire agglo - La CARENE / Ycéo — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T18:10:34Z",
        "age_hours": 14.9,
        "timetable_ends_on": "2027-07-02",
        "days_left": 290,
        "counts": {
          "lines": 139,
          "stops": 2305,
          "trips": 4130,
          "stop_times": 118124
        },
        "pan_dataset_slug": "yceo-arrets-horaires-et-lignes-urbaines-et-scolaires-gtfs-1",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "aixenbus",
      "name": "Aix en bus",
      "city": "Aix-en-Provence",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Métropole d'Aix-Marseille-Provence / Aix en bus — Licence Ouverte 2.0",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T19:07:14Z",
        "age_hours": 14.0,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 63,
          "stops": 1110,
          "trips": 4325,
          "stop_times": 114594
        },
        "pan_dataset_slug": "reseaux-de-transports-en-commun-de-la-metropole-daix-marseille-provence-et-des-bouches-du-rhone",
        "last_error": null
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "envia",
      "name": "Envia",
      "city": "Arles",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "ENVIA — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:28:29Z",
        "age_hours": 156.6,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 29,
          "stops": 784,
          "trips": 3383,
          "stop_times": 89335
        },
        "pan_dataset_slug": "donnees-statiques-et-temps-reels-reseau-envia",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "accm.plateforme-2cloud.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 29,
          "no_header_timestamp": 0,
          "entities": 74,
          "trip_join": {
            "n": 68,
            "of": 74
          },
          "stop_updates_timed": {
            "n": 1974,
            "of": 1977
          },
          "cancelled": {
            "n": 0,
            "of": 74
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "accm.plateforme-2cloud.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 28,
          "no_header_timestamp": 0,
          "entities": 20,
          "with_position": {
            "n": 19,
            "of": 20
          },
          "with_trip_id": {
            "n": 19,
            "of": 19
          },
          "with_route_id": {
            "n": 19,
            "of": 19
          },
          "trip_join": {
            "n": 17,
            "of": 19
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "envibus",
      "name": "Envibus",
      "city": "Antibes",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération Sophia Antipolis (CASA) / Envibus — Open Database License (ODbL)",
      "samples_taken": 0,
      "static": {
        "state": "never_ingested",
        "refreshed_at": null,
        "age_hours": null,
        "timetable_ends_on": null,
        "days_left": null,
        "counts": null,
        "pan_dataset_slug": "arrets-horaires-et-parcours-theoriques-des-bus-du-reseau-des-transports-publics-envibus",
        "last_error": {
          "reason": "timeout",
          "host": "open-share.agglo-casa.fr"
        }
      },
      "realtime": {},
      "engine_observed": []
    },
    {
      "network": "gap",
      "name": "L'Agglo en Bus",
      "city": "Gap",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Communauté d'Agglomération Gap-Tallard-Durance / L'Agglo en Bus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:16:31Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 14,
          "stops": 346,
          "trips": 577,
          "stop_times": 10799
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reels-du-reseau-de-transports-lagglo-en-bus-communaute-dagglomeration-gap-tallard-durance",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "gtfs-rt.infra-hubup.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 0,
          "trip_join": {
            "n": 0,
            "of": 0
          },
          "stop_updates_timed": {
            "n": 0,
            "of": 0
          },
          "cancelled": {
            "n": 0,
            "of": 0
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "gtfs-rt.infra-hubup.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 0,
          "with_position": {
            "n": 0,
            "of": 0
          },
          "with_trip_id": {
            "n": 0,
            "of": 0
          },
          "with_route_id": {
            "n": 0,
            "of": 0
          },
          "trip_join": {
            "n": 0,
            "of": 0
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "lebus-esterel",
      "name": "Le Bus",
      "city": "Fréjus",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Estérel Côte d'Azur Agglomération / Le Bus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:08:23Z",
        "age_hours": 157.0,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 29,
          "stops": 970,
          "trips": 3132,
          "stop_times": 75300
        },
        "pan_dataset_slug": "reseau-transport-urbain-le-bus",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 217,
          "trip_join": {
            "n": 189,
            "of": 189
          },
          "stop_updates_timed": {
            "n": 4684,
            "of": 4684
          },
          "cancelled": {
            "n": 0,
            "of": 189
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 9,
          "no_header_timestamp": 0,
          "entities": 217,
          "with_position": {
            "n": 28,
            "of": 28
          },
          "with_trip_id": {
            "n": 28,
            "of": 28
          },
          "with_route_id": {
            "n": 28,
            "of": 28
          },
          "trip_join": {
            "n": 28,
            "of": 28
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "rla",
      "name": "Lignes d'Azur",
      "city": "Nice",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Métropole Nice Côte d'Azur / Lignes d'Azur — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-09T07:10:52Z",
        "age_hours": 145.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 112,
          "stops": 4545,
          "trips": 18849,
          "stop_times": 458857
        },
        "pan_dataset_slug": "donnees-statiques-et-dynamiques-du-reseau-de-transport-lignes-dazur",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 36,
          "no_header_timestamp": 0,
          "entities": 932,
          "trip_join": {
            "n": 932,
            "of": 932
          },
          "stop_updates_timed": {
            "n": 16103,
            "of": 16103
          },
          "cancelled": {
            "n": 0,
            "of": 932
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "ara-api.enroute.mobi",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 51,
          "no_header_timestamp": 0,
          "entities": 213,
          "with_position": {
            "n": 213,
            "of": 213
          },
          "with_trip_id": {
            "n": 213,
            "of": 213
          },
          "with_route_id": {
            "n": 213,
            "of": 213
          },
          "trip_join": {
            "n": 213,
            "of": 213
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "orizo",
      "name": "Orizo",
      "city": "Avignon",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Grand Avignon / Orizo — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:19:41Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2026-10-18",
        "days_left": 33,
        "counts": {
          "lines": 68,
          "stops": 987,
          "trips": 6805,
          "stop_times": 142102
        },
        "pan_dataset_slug": "reseau-orizo-grand-avignon",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "api.maas-fr.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 7,
          "no_header_timestamp": 0,
          "entities": 221,
          "trip_join": {
            "n": 221,
            "of": 221
          },
          "stop_updates_timed": {
            "n": 4587,
            "of": 4587
          },
          "cancelled": {
            "n": 0,
            "of": 221
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "api.maas-fr.cityway.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 77,
          "with_position": {
            "n": 77,
            "of": 77
          },
          "with_trip_id": {
            "n": 77,
            "of": 77
          },
          "with_route_id": {
            "n": 77,
            "of": 77
          },
          "trip_join": {
            "n": 77,
            "of": 77
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "palmbus",
      "name": "Palmbus",
      "city": "Cannes",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Palmbus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-11T20:08:44Z",
        "age_hours": 85.0,
        "timetable_ends_on": "2027-01-03",
        "days_left": 110,
        "counts": {
          "lines": 47,
          "stops": 1525,
          "trips": 33146,
          "stop_times": 976654
        },
        "pan_dataset_slug": "horaires-theoriques-et-temps-reel-gtfs-gtfs-rt-du-reseau-palmbus-cannes-pays-de-lerins",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 45,
          "no_header_timestamp": 0,
          "entities": 183,
          "trip_join": {
            "n": 183,
            "of": 183
          },
          "stop_updates_timed": {
            "n": 2598,
            "of": 2692
          },
          "cancelled": {
            "n": 4,
            "of": 183
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 45,
          "no_header_timestamp": 0,
          "entities": 81,
          "with_position": {
            "n": 81,
            "of": 81
          },
          "with_trip_id": {
            "n": 81,
            "of": 81
          },
          "with_route_id": {
            "n": 81,
            "of": 81
          },
          "trip_join": {
            "n": 81,
            "of": 81
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "rtm",
      "name": "RTM",
      "city": "Marseille",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Métropole d'Aix-Marseille-Provence / RTM — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T09:09:11Z",
        "age_hours": 24.0,
        "timetable_ends_on": "2026-11-12",
        "days_left": 58,
        "counts": {
          "lines": 125,
          "stops": 2754,
          "trips": 44911,
          "stop_times": 1012742
        },
        "pan_dataset_slug": "reseaux-de-transports-en-commun-de-la-metropole-daix-marseille-provence-et-des-bouches-du-rhone",
        "last_error": null
      },
      "realtime": {
        "alerts": {
          "host": "api-mobilite.rbgl.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 192,
          "no_header_timestamp": 0,
          "entities": 77,
          "informed_resolved": {
            "n": 496,
            "of": 703
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "mistral",
      "name": "Réseau Mistral",
      "city": "Toulon",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Métropole Toulon Provence Méditerranée / Réseau Mistral — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T19:07:22Z",
        "age_hours": 14.0,
        "timetable_ends_on": "2026-11-30",
        "days_left": 76,
        "counts": {
          "lines": 99,
          "stops": 2016,
          "trips": 11654,
          "stop_times": 383815
        },
        "pan_dataset_slug": "reseau-de-transport-urbain-de-la-metropole-toulon-provence-mediterranee",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "feed-rdtpm-toulon.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 67,
          "no_header_timestamp": 0,
          "entities": 510,
          "trip_join": {
            "n": 483,
            "of": 510
          },
          "stop_updates_timed": {
            "n": 15060,
            "of": 15228
          },
          "cancelled": {
            "n": 0,
            "of": 510
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "feed-rdtpm-toulon.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 78,
          "no_header_timestamp": 0,
          "entities": 186,
          "with_position": {
            "n": 186,
            "of": 186
          },
          "with_trip_id": {
            "n": 185,
            "of": 186
          },
          "with_route_id": {
            "n": 185,
            "of": 186
          },
          "trip_join": {
            "n": 184,
            "of": 185
          }
        },
        "alerts": {
          "host": "notify.ratpdev.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 8,
          "informed_resolved": {
            "n": 21,
            "of": 21
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "tedbus",
      "name": "TEDbus",
      "city": "Draguignan",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Dracénie Provence Verdon agglomération / TEDbus — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-08T20:16:52Z",
        "age_hours": 156.8,
        "timetable_ends_on": "2027-08-31",
        "days_left": 350,
        "counts": {
          "lines": 14,
          "stops": 478,
          "trips": 441,
          "stop_times": 11914
        },
        "pan_dataset_slug": "reseau-tedbus-lignes-regulieres-dracenie-provence-verdon-agglomeration",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 15,
          "trip_join": {
            "n": 7,
            "of": 7
          },
          "stop_updates_timed": {
            "n": 189,
            "of": 193
          },
          "cancelled": {
            "n": 0,
            "of": 7
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 3,
          "no_header_timestamp": 0,
          "entities": 15,
          "with_position": {
            "n": 7,
            "of": 7
          },
          "with_trip_id": {
            "n": 7,
            "of": 7
          },
          "with_route_id": {
            "n": 7,
            "of": 7
          },
          "trip_join": {
            "n": 7,
            "of": 7
          }
        },
        "alerts": {
          "host": "pysae.com",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 4,
          "no_header_timestamp": 0,
          "entities": 15,
          "informed_resolved": {
            "n": 1,
            "of": 1
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "zest",
      "name": "Zest",
      "city": "Menton",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Keolis Menton Riviera / Zest — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-10T20:10:27Z",
        "age_hours": 108.9,
        "timetable_ends_on": "2027-07-04",
        "days_left": 292,
        "counts": {
          "lines": 53,
          "stops": 778,
          "trips": 3113,
          "stop_times": 74109
        },
        "pan_dataset_slug": "horaires-reseau-zest",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 0,
          "no_header_timestamp": 0,
          "entities": 72,
          "trip_join": {
            "n": 72,
            "of": 72
          },
          "stop_updates_timed": {
            "n": 1758,
            "of": 1858
          },
          "cancelled": {
            "n": 0,
            "of": 72
          },
          "no_trip_id": 0
        },
        "vehicle_positions": {
          "host": "proxy.transport.data.gouv.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 8,
          "no_header_timestamp": 0,
          "entities": 19,
          "with_position": {
            "n": 19,
            "of": 19
          },
          "with_trip_id": {
            "n": 19,
            "of": 19
          },
          "with_route_id": {
            "n": 19,
            "of": 19
          },
          "trip_join": {
            "n": 19,
            "of": 19
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "zou-proximite",
      "name": "ZOU ! Proximité",
      "city": "Provence-Alpes-Côte d'Azur",
      "region": "Provence-Alpes-Côte d'Azur",
      "timezone": "Europe/Paris",
      "attribution": "Région Provence-Alpes-Côte-d'Azur / ZOU ! Proximité — Licence Ouverte 2.0",
      "samples_taken": 1,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T10:10:28Z",
        "age_hours": 22.9,
        "timetable_ends_on": "2026-12-31",
        "days_left": 107,
        "counts": {
          "lines": 124,
          "stops": 6189,
          "trips": 3324,
          "stop_times": 103696
        },
        "pan_dataset_slug": "lignes-des-reseaux-transport-zou-provence-alpes-cote-d-azur-proximite-3-3",
        "last_error": null
      },
      "realtime": {
        "trip_updates": {
          "host": "proxy-data.zou.maregionsud.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 16,
          "no_header_timestamp": 0,
          "entities": 2171,
          "trip_join": {
            "n": 2171,
            "of": 2171
          },
          "stop_updates_timed": {
            "n": 63990,
            "of": 63990
          },
          "cancelled": {
            "n": 0,
            "of": 2171
          },
          "no_trip_id": 0
        },
        "alerts": {
          "host": "proxy-data.zou.maregionsud.fr",
          "samples": 1,
          "ok": 1,
          "failures": {
            "timeout": 0,
            "connection": 0,
            "http_4xx": 0,
            "http_5xx": 0,
            "decode_error": 0,
            "budget": 0
          },
          "rate_limited": 0,
          "samples_night": 0,
          "header_age_seconds": 53,
          "no_header_timestamp": 0,
          "entities": 21,
          "informed_resolved": {
            "n": 74,
            "of": 104
          }
        }
      },
      "engine_observed": []
    },
    {
      "network": "idfm",
      "name": "Île-de-France Mobilités",
      "city": "Paris",
      "region": "Île-de-France",
      "timezone": "Europe/Paris",
      "attribution": "Île-de-France Mobilités — Licence Mobilités (PRIM); arrêts et lignes: Licence Ouverte 2.0; tracés: ODbL",
      "samples_taken": 0,
      "static": {
        "state": "ok",
        "refreshed_at": "2026-09-14T17:07:56Z",
        "age_hours": 16.0,
        "timetable_ends_on": null,
        "days_left": null,
        "counts": {
          "lines": 2120,
          "stops": 55961,
          "trips": null,
          "stop_times": null
        },
        "pan_dataset_slug": null,
        "last_error": null,
        "timetable_ends_on_reason": "not_gtfs"
      },
      "realtime": {},
      "engine_observed": [
        {
          "source": "idfm:navitia",
          "last_ok_at": "2026-09-15T08:31:40+00:00",
          "last_error_at": "2026-09-08T23:59:48+00:00",
          "state": "ok"
        },
        {
          "source": "idfm:siri:general-message",
          "last_ok_at": "2026-09-15T08:31:40+00:00",
          "last_error_at": "2026-09-14T22:34:37+00:00",
          "state": "ok"
        },
        {
          "source": "idfm:siri:stop-monitoring",
          "last_ok_at": "2026-09-15T08:31:33+00:00",
          "last_error_at": "2026-09-14T23:59:58+00:00",
          "state": "ok"
        }
      ]
    }
  ]
}
