OpenTripPlanner
An open source multi-modal trip planner, focusing on travel by scheduled public transportation in combination with bicycling, walking, and mobility services including bike share and ride hailing.
https://github.com/opentripplanner/opentripplanner
Category: Consumption
Sub Category: Mobility and Transportation
Keywords from Contributors
public-transport mobility-as-a-service gtfs-flex gtfs-realtime bike-sharing transportation transit-data mobility carshare bikeshare
Last synced: about 9 hours ago
JSON representation
Repository metadata
An open source multi-modal trip planner
- Host: GitHub
- URL: https://github.com/opentripplanner/opentripplanner
- Owner: opentripplanner
- License: other
- Created: 2011-07-18T16:15:38.000Z (over 14 years ago)
- Default Branch: dev-2.x
- Last Pushed: 2026-02-13T08:26:57.000Z (6 days ago)
- Last Synced: 2026-02-13T11:56:16.832Z (6 days ago)
- Language: Java
- Homepage: http://www.opentripplanner.org
- Size: 211 MB
- Stars: 2,542
- Watchers: 140
- Forks: 1,092
- Open Issues: 148
- Releases: 11
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Publiccode: publiccode.yml
README.md
Overview
OpenTripPlanner (OTP) is an open source multi-modal trip planner, focusing on travel by scheduled
public transportation in combination with bicycling, walking, and mobility services including bike
share and ride hailing. Its server component runs on any platform with a Java virtual machine (
including Linux, Mac, and Windows). It exposes GraphQL APIs that can be accessed by various
clients including open source Javascript components and native mobile applications. It builds its
representation of the transportation network from open data in open standard file formats (primarily
GTFS and OpenStreetMap). It applies real-time updates and alerts with immediate visibility to
clients, finding itineraries that account for disruptions and service changes.
Note that this branch contains OpenTripPlanner 2, the second major version of OTP, which has
been under development since 2018 and is now the dominant one and the only one being supported.
Development
OpenTripPlanner is a collaborative project incorporating code, translation, and documentation from
contributors around the world. We welcome new contributions.
Further development guidelines can be
found in the documentation.
Contributing Guidelines
See CONTRIBUTING.md
Development History
The OpenTripPlanner project was launched by Portland, Oregon's transport agency
TriMet (http://trimet.org/) in July of 2009. As of this writing in September 2025, it has been in
development for over 16 years. See the main documentation for an overview
of OTP history and a list
of cities and regions using OTP around
the world.
Measuring OTP Performance
We run a speed test (included in the code) to measure the performance for every PR merged into OTP.
More information about how to set up and run it.
Repository Layout
The main Java server code is in application/src/main/. OTP also includes a Javascript client
based on the MapLibre mapping library in client/src/. This client is now used for testing, with
most major deployments building custom clients from reusable components. The Maven build produces a
unified ("shaded") JAR file at otp-shaded/target/otp-shaded-VERSION.jar containing all necessary
code and dependencies to run OpenTripPlanner.
Additional information and instructions are available in
the main documentation, including a
quick introduction.
Getting in Touch
The fastest way to get help is to use our Gitter chat room where most of the core developers
are. Bug reports may be filed via the Github issue tracker. The OpenTripPlanner mailing list
is used almost exclusively for project announcements. The mailing list and issue tracker are not
intended for support questions or discussions. Please use the chat for this purpose. Other details
of project governance can be found in the main documentation.
OTP Ecosystem
- awesome-transit Community list of transit APIs,
apps, datasets, research, and software.
Owner metadata
- Name: OpenTripPlanner Project
- Login: opentripplanner
- Email:
- Kind: organization
- Description:
- Website: opentripplanner.org
- Location: worldwide
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/3007066?v=4
- Repositories: 19
- Last ynced at: 2024-03-26T04:32:28.316Z
- Profile URL: https://github.com/opentripplanner
GitHub Events
Total
- Create event: 157
- Commit comment event: 1
- Release event: 2
- Issues event: 289
- Watch event: 203
- Delete event: 145
- Issue comment event: 1687
- Push event: 764
- Pull request review comment event: 1997
- Pull request event: 860
- Pull request review event: 2795
- Fork event: 53
Last Year
- Create event: 157
- Commit comment event: 1
- Release event: 2
- Issues event: 289
- Watch event: 203
- Delete event: 145
- Issue comment event: 1687
- Push event: 764
- Pull request review comment event: 1997
- Pull request event: 860
- Pull request review event: 2795
- Fork event: 53
Committers metadata
Last synced: 2 days ago
Total Commits: 25,888
Total Committers: 254
Avg Commits per committer: 101.921
Development Distribution Score (DDS): 0.803
Commits in past year: 3,481
Committers in past year: 36
Avg Commits per committer in past year: 96.694
Development Distribution Score (DDS) in past year: 0.707
| Name | Commits | |
|---|---|---|
| Leonard Ehrenfried | m****l@l****o | 5095 |
| Thomas Gran | t****n@g****m | 3322 |
| Andrew Byrd | a****w@f****t | 2808 |
| Hannes Junnila | h****a@g****m | 1245 |
| novalis | n****s@o****g | 1042 |
| Joel Lappalainen | l****8@g****m | 1027 |
| OTP Changelog Bot | c****t@o****g | 829 |
| Gard Mellemstrand | g****d@e****g | 699 |
| Laurent Grégoire | l****e@g****m | 638 |
| David Turner | n****s@n****g | 584 |
| renovate[bot] | 2****] | 559 |
| Vincent Paturet | v****t@e****g | 472 |
| Vesa Meskanen | v****n@c****m | 454 |
| Matthew Wigginton Conway | m****t@i****g | 445 |
| Zsombor Welker | z****r@r****o | 380 |
| Michael Tsang | m****l@a****p | 377 |
| Ville Pihlava | v****a@c****m | 374 |
| Avi Flamholz | f****z@r****m | 303 |
| Marko Burjek | s****o@g****m | 255 |
| Jorden Verwer | j****r@g****m | 230 |
| Brandon Martin-Anderson | b****l@g****m | 229 |
| OTP Serialization Version Bot | s****t@o****g | 207 |
| Tom Erik Støwer | t****r@g****m | 203 |
| David Emory | d****y@c****m | 202 |
| Hannes Junnila | h****s@k****m | 181 |
| David Emory | d****y@o****g | 180 |
| Henrik Abrahamsson | h****n@d****e | 171 |
| Nicholas Bergson-Shilcock | me@n****t | 169 |
| jkoelewijn | g****t@j****l | 155 |
| OTP Bot | b****t@o****g | 136 |
| and 224 more... | ||
Committer domains:
- entur.org: 8
- hbt.de: 7
- cgi.com: 6
- purplescout.se: 3
- fastmail.net: 3
- openplans.org: 3
- opentripplanner.org: 3
- skanetrafiken.se: 3
- kyyti.com: 3
- iki.fi: 3
- camsys.com: 3
- calendar42.com: 2
- ibigroup.com: 2
- localhost.localdomain: 2
- ruter.no: 2
- hsl.fi: 2
- decerno.se: 2
- conveyal.com: 2
- goabout.com: 2
- goeuropa.eu: 2
- rideamigos.com: 2
- allyapp.com: 2
- webvalto.hu: 2
- dev.opentripplanner.org: 1
- konink.de: 1
- interline.io: 1
- ci.opentripplanner.org: 1
- greenbird.com: 1
- karreman.org: 1
- raumobil.com: 1
- whereismytransport.com: 1
- west.nl: 1
- unipoltech.it: 1
- totenkopf.lv: 1
- equalexperts.com: 1
- ubuntu.com: 1
- leonard.io: 1
- novalis.org: 1
- indicatrix.org: 1
- realcity.io: 1
- aubin.app: 1
- ridewithvia.com: 1
- nicholasbs.net: 1
- jkoelewijn.nl: 1
- onebusaway.org: 1
- frankpurcell.com: 1
- arcadis.com: 1
- tri-met.org: 1
- soprasteria.com: 1
- cgi.fi: 1
- danielheppner.com: 1
- capraconsulting.no: 1
- moovitapp.com: 1
- markupartist.com: 1
- adesso-sweden.se: 1
- spaetfruehstuecken.org: 1
- begerad.de: 1
- qq.com: 1
- ytausch.de: 1
- shuster.house: 1
- shaunmcdonald.me.uk: 1
- tinet.org: 1
- mail.ru: 1
- pascal-lab.ch: 1
- here.com: 1
- frachet.ca: 1
- mail.com: 1
- modulaweb.fr: 1
- whizziwig.com: 1
- sidewalklabs.com: 1
- routerank.com: 1
- andrey.se: 1
- kartoteket.as: 1
- omnitrans.nl: 1
- analyst.ovh.net: 1
- netfarm.it: 1
- ddeop.(none): 1
- david.(none): 1
- 2xminteractive.com: 1
- jetsli.de: 1
- vladvesa.ro: 1
- phoops.it: 1
- foofactory.fi: 1
- door2door.io: 1
- mail.utoronto.ca: 1
- netlight.com: 1
- graspit.co.uk: 1
- majki.org: 1
- ianrees.net: 1
- mfdz.de: 1
- deskbookers.com: 1
- zonion.org: 1
- mbta.com: 1
- karhm.com: 1
- yahoo.co.uk: 1
- montel.fi: 1
- blablacar.com: 1
- dwld.info: 1
- giroll.org: 1
- inetum.world: 1
- idirect.net: 1
- geo.uzh.ch: 1
- student.tudelft.nl: 1
- gmx.de: 1
- mvanlaar.net: 1
- cassee.net: 1
- unwire.com: 1
- thomhubers.nl: 1
- live.at: 1
- eljakim.nl: 1
Issue and Pull Request metadata
Last synced: 12 days ago
Total issues: 400
Total pull requests: 1,886
Average time to close issues: 5 months
Average time to close pull requests: 23 days
Total issue authors: 104
Total pull request authors: 77
Average comments per issue: 2.49
Average comments per pull request: 2.18
Merged pull request: 1,339
Bot issues: 6
Bot pull requests: 518
Past year issues: 103
Past year pull requests: 654
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 8 days
Past year issue authors: 33
Past year pull request authors: 32
Past year average comments per issue: 1.02
Past year average comments per pull request: 1.76
Past year merged pull request: 417
Past year bot issues: 0
Past year bot pull requests: 183
Top Issue Authors
- miklcct (78)
- t2gran (41)
- leonardehrenfried (40)
- vpaturet (25)
- BredeD (20)
- optionsome (14)
- andtry (8)
- vesameskanen (7)
- VillePihlava (7)
- renovate[bot] (6)
- habrahamsson-skanetrafiken (6)
- hbruch (6)
- fpurcell (6)
- flaktack (5)
- eibakke (4)
Top Pull Request Authors
- renovate[bot] (516)
- leonardehrenfried (407)
- t2gran (179)
- vpaturet (102)
- miklcct (94)
- optionsome (89)
- habrahamsson-skanetrafiken (55)
- flaktack (49)
- eibakke (37)
- testower (37)
- VillePihlava (30)
- tkalvas (28)
- vesameskanen (26)
- gmellemstrand (23)
- abyrd (15)
Top Issue Labels
- Stale (88)
- Entur (35)
- bug (25)
- Roadmap (24)
- new feature (24)
- Bug (24)
- New Feature (15)
- Skanetrafiken (10)
- HSL (9)
- IBI (8)
- technical debt (8)
- RealTimeUpdate (7)
- improvement (7)
- routeRank (7)
- +Roadmap (6)
- NeTEx (5)
- TriMet (5)
- skip changelog (5)
- Improvement (5)
- Regression (5)
- OTP Debug UI (4)
- Technical Debt (4)
- Real-Time Update (4)
- !Bug (4)
- NVBW (3)
- Skip Changelog (3)
- GTFS (2)
- documentation (2)
- Vehicle Rental (2)
- !New Feature (2)
Top Pull Request Labels
- Skip Changelog (663)
- skip changelog (325)
- Technical Debt (153)
- Improvement (123)
- Bug (114)
- bump serialization id (110)
- Entur Test (99)
- technical debt (77)
- +Skip Changelog (63)
- improvement (63)
- Sandbox (60)
- IBI (53)
- OTP Debug UI (48)
- Documentation (44)
- bug (43)
- sandbox (42)
- RealTimeUpdate (42)
- Real-Time Update (42)
- New Feature (36)
- !Improvement (35)
- Entur test (33)
- !Technical Debt (32)
- GTFS (32)
- documentation (25)
- !Bug (24)
- new feature (22)
- Skanetrafiken (21)
- config change (18)
- +Bump Serialization Id (16)
- NeTEx (16)
Package metadata
- Total packages: 10
- Total downloads: unknown
- Total docker downloads: 98
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 8 (may contain duplicates)
- Total versions: 64
proxy.golang.org: github.com/opentripplanner/OpenTripPlanner
- Homepage:
- Documentation: https://pkg.go.dev/github.com/opentripplanner/OpenTripPlanner#section-documentation
- Licenses: other
- Latest release: v2.8.1+incompatible (published 5 months ago)
- Last Synced: 2026-02-18T04:32:56.786Z (1 day ago)
- Versions: 15
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.528%
- Average: 6.747%
- Dependent repos count: 6.966%
proxy.golang.org: github.com/opentripplanner/opentripplanner
- Homepage:
- Documentation: https://pkg.go.dev/github.com/opentripplanner/opentripplanner#section-documentation
- Licenses: other
- Latest release: v2.8.1+incompatible (published 5 months ago)
- Last Synced: 2026-02-12T10:52:21.194Z (7 days ago)
- Versions: 15
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.528%
- Average: 6.747%
- Dependent repos count: 6.966%
repo1.maven.org: org.opentripplanner:otp
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org
- Documentation: https://appdoc.app/artifact/org.opentripplanner/otp/
- Licenses: GNU Lesser General Public License
- Latest release: 2.6.0 (published over 1 year ago)
- Last Synced: 2026-01-09T21:32:16.831Z (about 1 month ago)
- Versions: 14
- Dependent Packages: 0
- Dependent Repositories: 8
- Docker Downloads: 98
-
Rankings:
- Docker downloads count: 5.144%
- Forks count: 5.343%
- Stargazers count: 8.324%
- Dependent repos count: 8.616%
- Average: 15.46%
- Dependent packages count: 49.872%
repo1.maven.org: org.opentripplanner:gtfs-realtime-protobuf
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org/gtfs-realtime-protobuf
- Documentation: https://appdoc.app/artifact/org.opentripplanner/gtfs-realtime-protobuf/
- Licenses: GNU Lesser General Public License
- Latest release: 2.8.1 (published 5 months ago)
- Last Synced: 2026-01-09T21:32:47.509Z (about 1 month ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 31.969%
- Average: 38.837%
- Dependent packages count: 45.705%
repo1.maven.org: org.opentripplanner:utils
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org
- Documentation: https://appdoc.app/artifact/org.opentripplanner/utils/
- Licenses: GNU Lesser General Public License
- Latest release: 2.8.1 (published 5 months ago)
- Last Synced: 2026-02-16T12:31:38.178Z (3 days ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 31.969%
- Average: 38.837%
- Dependent packages count: 45.705%
repo1.maven.org: org.opentripplanner:raptor
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org
- Documentation: https://appdoc.app/artifact/org.opentripplanner/raptor/
- Licenses: GNU Lesser General Public License
- Latest release: 2.8.1 (published 5 months ago)
- Last Synced: 2026-02-15T03:04:14.795Z (4 days ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 31.969%
- Average: 38.837%
- Dependent packages count: 45.705%
repo1.maven.org: org.opentripplanner:application
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org
- Documentation: https://appdoc.app/artifact/org.opentripplanner/application/
- Licenses: GNU Lesser General Public License
- Latest release: 2.8.1 (published 5 months ago)
- Last Synced: 2026-02-15T05:23:48.152Z (4 days ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 31.969%
- Average: 38.837%
- Dependent packages count: 45.705%
repo1.maven.org: org.opentripplanner:otp-root
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org
- Documentation: https://appdoc.app/artifact/org.opentripplanner/otp-root/
- Licenses: GNU Lesser General Public License
- Latest release: 2.8.1 (published 5 months ago)
- Last Synced: 2026-02-15T10:46:03.442Z (4 days ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 31.969%
- Average: 38.837%
- Dependent packages count: 45.705%
repo1.maven.org: org.opentripplanner:integration-test
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org
- Documentation: https://appdoc.app/artifact/org.opentripplanner/integration-test/
- Licenses: GNU Lesser General Public License
- Latest release: 2.8.1 (published 5 months ago)
- Last Synced: 2026-02-15T11:06:36.890Z (4 days ago)
- Versions: 2
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 31.969%
- Average: 38.837%
- Dependent packages count: 45.705%
repo1.maven.org: org.opentripplanner:otp-shaded
The OpenTripPlanner multimodal journey planning system
- Homepage: https://opentripplanner.org
- Documentation: https://appdoc.app/artifact/org.opentripplanner/otp-shaded/
- Licenses: GNU Lesser General Public License
- Latest release: 2.8.1 (published 5 months ago)
- Last Synced: 2026-02-17T02:32:22.798Z (2 days ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 31.969%
- Average: 38.837%
- Dependent packages count: 45.705%
Dependencies
- actions/checkout v3.3.0 composite
- actions/checkout v3.1.0 composite
- actions/checkout v3 composite
- actions/setup-java v3 composite
- actions/setup-node v3 composite
- al-cheb/configure-pagefile-action v1.3 composite
- codecov/codecov-action v3.1.1 composite
- actions/stale v6.0.1 composite
- actions/checkout v3.1.0 composite
- actions/setup-java v3 composite
- actions/upload-artifact v3 composite
- stCarolas/setup-maven v.4.5 composite
- actions/checkout v3.1.0 composite
- com.google.cloud:libraries-bom 26.22.0 import
- ch.poole:OpeningHoursParser 0.27.1
- ch.qos.logback:logback-classic 1.4.11
- com.azure.resourcemanager:azure-resourcemanager-servicebus 2.24.0
- com.azure:azure-core 1.36.0
- com.azure:azure-messaging-servicebus 7.13.2
- com.beust:jcommander 1.82
- com.conveyal:kryo-tools 1.5.0
- com.fasterxml.jackson.core:jackson-annotations 2.15.2
- com.fasterxml.jackson.core:jackson-core 2.15.2
- com.fasterxml.jackson.core:jackson-databind 2.15.2
- com.fasterxml.jackson.datatype:jackson-datatype-jdk8 2.15.2
- com.fasterxml.jackson.datatype:jackson-datatype-jsr310 2.15.2
- com.google.cloud:google-cloud-pubsub
- com.google.cloud:google-cloud-storage
- com.google.dagger:dagger 2.48
- com.google.guava:guava 32.1.2-jre
- com.google.protobuf:protobuf-java
- com.googlecode.json-simple:json-simple 1.1.1
- com.graphql-java:graphql-java 21.1
- com.graphql-java:graphql-java-extended-scalars 21.0
- com.microsoft.azure:azure-servicebus 3.6.7
- de.javakaffee:kryo-serializers 0.45
- edu.ucar:netcdf4 5.5.3
- io.github.ci-cmg:mapbox-vector-tile 4.0.6
- io.micrometer:micrometer-registry-prometheus 1.11.4
- jakarta.annotation:jakarta.annotation-api
- jakarta.validation:jakarta.validation-api
- jakarta.ws.rs:jakarta.ws.rs-api
- jakarta.xml.bind:jakarta.xml.bind-api 3.0.1
- net.java.dev.jets3t:jets3t 0.9.4
- net.logstash.logback:logstash-logback-encoder 7.4
- net.objecthunter:exp4j 0.4.8
- net.sourceforge.javacsv:javacsv 2.0
- org.apache.httpcomponents.client5:httpclient5 5.2.1
- org.apache.lucene:lucene-core 9.7.0
- org.apache.lucene:lucene-queryparser 9.7.0
- org.apache.lucene:lucene-suggest 9.7.0
- org.asynchttpclient:async-http-client 2.12.3
- org.eclipse.paho:org.eclipse.paho.client.mqttv3 1.2.5
- org.entur.gbfs:gbfs-java-model 3.0.9
- org.entur:netex-java-model 2.0.14
- org.entur:siri-java-model 1.22
- org.entur:siri-protobuf-mapper 1.0.3
- org.geotools:gt-coverage 29.2
- org.geotools:gt-geojson-core 29.2
- org.geotools:gt-geotiff 29.2
- org.geotools:gt-opengis 29.2
- org.glassfish.jaxb:jaxb-runtime 3.0.2
- org.glassfish.jersey.containers:jersey-container-grizzly2-http 3.1.3
- org.glassfish.jersey.core:jersey-server 3.1.3
- org.glassfish.jersey.inject:jersey-hk2 3.1.3
- org.glassfish.jersey.media:jersey-media-json-jackson 3.1.3
- org.onebusaway:onebusaway-gtfs 1.4.5
- org.openstreetmap.osmosis:osmosis-osm-binary 0.48.3
- org.processing:core 2.2.1
- org.slf4j:jul-to-slf4j 2.0.9
- org.slf4j:slf4j-api 2.0.9
- com.tngtech.archunit:archunit 1.1.0 test
- commons-cli:commons-cli 1.5.0 test
- io.github.origin-energy:java-snapshot-testing-junit5 2.3.0 test
- io.micrometer:micrometer-registry-influx 1.11.4 test
- org.apache.commons:commons-compress 1.24.0 test
- org.junit.jupiter:junit-jupiter-api 5.10.0 test
- org.junit.jupiter:junit-jupiter-params 5.10.0 test
- org.mockito:mockito-core 5.5.0 test
- @graphql-codegen/add 5.0.0
- @graphql-codegen/cli 4.0.1
- @graphql-codegen/java 3.3.6
- @graphql-codegen/java-resolvers 2.3.6
- graphql 16.8.1
- 439 dependencies
- mkdocs ==1.5.2
- mkdocs-material ==9.1.17
- mkdocs-no-sitemap-plugin ==0.0.1
Score: 18.13511110540684