Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Contact informations

You are a city, a mobility provider or you simply want to know more about our MDS tools: send us a mail at

django-mds - MDS compliant mobility data service

Build Status

A City of LA MDS Specification (Mobility Data Specification) compliant implementation of the Agency API for Python/Django

Goals & non-goals


  • Ultimately MDS compliance
  • A way to test MDS ideas on a real implementation as we believe it is hard to specify a quality API without a reference implementation alongside
  • Developer-friendly to be able for all stakeholders to contribute


  • High-performance: we favor developer-friendliness over performance (this software being stateless, scaling is trivial anyway. Just the database needs to be correctly dimensioned)
  • Full-featured UI: we provide an UI with required features, but this remains an API-first software
  • Data-analysis: analysis should be done by other apps consuming the consumer API of this app (the API must be designed to allow data consumption by third-party software)

Tech & requirements

  • Python 3 with Django and GeoDjango
  • Postgresql with PostGIS
  • Swagger for interactive API documentation (available on /schema)

How to run

Test project

  • Install and configure requirements (see above)
  • Run pip install .[dev] to install dependencies
  • You need the following env variables: MDS_DB_NAME, MDS_DB_USER and MDS_DB_PASSWORD
  • To initialize the database, run python migrate
  • To start the project locally, run MDS_DEV_DEBUG=1 python runserver

A sample environment configuration is provided in .env.example


Request authentication is done through JWT bearer token as specified in MDS JWT secret key or public key should be given through environment configuration MDS_AUTH_SECRET_KEY or MDS_AUTH_PUBLIC_KEY


See dedicated README in front/


We use semantic versioning and zest.releaser for the actual release:


Just follow the steps and hit Enter to answer Yes.