Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Statistics Counter Module statistics_counter crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

This module ingests GTFS Realtime feeds for trip updates, vehicle positions, and service alerts, making the data available as JSON. It also provides REST endpoints to query predicted arrivals, vehicle locations, and active alerts.

Ingests GTFS Realtime feeds — trip updates, vehicle positions and service alerts — and serves them as JSON alongside the static schedule data from
GTFS Core.

Each feed is a configuration entity, so feeds deploy with your configuration instead of being clicked in by hand on every environment.

Features

  • Protobuf ingestion for all three GTFS-RT feed types, decoded and cached as JSON.
  • A refresh interval per feed, 60 seconds by default, run from cron.
  • An out-of-band refresh endpoint, so a display that asks for stale data can trigger its own update rather than waiting for the next cron run.
  • REST endpoints for predicted arrivals at a stop, vehicles on a route, and active alerts. Realtime responses are marked uncacheable by clients, so a CDN in front of the site cannot serve yesterday's predictions.
  • Hooks for feeds whose realtime identifiers differ from the static ones.

Requirements

GTFS Core 3.x. The lowa/gtfs-realtime-php library is installed by Composer.

Installation

composer require drupal/gtfs_rt

Configuration

Add feeds at Administration › GTFS › Realtime feeds (/admin/gtfs/rt/feeds). Each needs a type, the protobuf endpoint URL, and a refresh interval. For public kiosk use, grant the restful get gtfs_rt_* permissions to the anonymous role.

When realtime IDs do not match the schedule

Regional aggregators often key stops differently from the agency's own static feed — a prefixed stop code, a different agency namespace. Rather than rewriting imported data, implement the identifier hooks in your own agency module. The mapping then lives with the agency, and survives the next feed import.

Rest API

Browse the REST API in OpenAPI format here.

Maintainers

Maintained by tbcs and jpsalter, supported by FivePaths. These modules run public transit information systems in daily service. Issues and merge requests are welcome, and so are co-maintainers.

Activity

Tracked releases
2
Tracked since
Aug 2026
Latest release
4 days ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
2.0.x-dev Dev Aug 19, 2026
2.0.0 Stable Aug 19, 2026