openfisca serve

usage: openfisca serve
       [-e [EXTENSIONS [EXTENSIONS ...]]]
       [-r [REFORMS [REFORMS ...]]]
       [-p PORT]
       [--tracker-url TRACKER_URL]
       [--tracker-idsite TRACKER_IDSITE]
       [--tracker-token TRACKER_TOKEN]
       [--welcome-message WELCOME_MESSAGE]

Named Arguments

-c, --country-package

country package to use. If not provided, an automatic detection will be attempted by scanning the python packages installed in your environment which name contains the word “openfisca”.

-e, --extensions

extensions to load

-r, --reforms

reforms to apply to the country package

-p, --port

port to serve on (use –bind to specify host and port)


tracking service url


tracking service id site


tracking service authentication token


welcome message users will get when visiting the API root

-f, --configuration-file

configuration file

Additional arguments

openfisca serve uses gunicorn under the hood. In addition to the arguments listed above, you can use any gunicorn arguments when running openfisca serve (e.g. --reload, --workers, --timeout, --bind). See:

gunicorn --help


Basic use

openfisca serve --country-package openfisca_france

Serving extensions

openfisca serve --country-package openfisca_france --extensions openfisca_paris

Serving reforms

openfisca serve --country-package openfisca_france --reforms openfisca_france.reforms.plf2015.plf2015

Using a configuration file

You can setup openfisca serve using a configuration file. Be careful as parameters with a ‘-’ in their name on command line change to an ‘_’ when used from the config file. See this example of configuration:

port = 4000
workers = 4
bind = '{}'.format(port)
country_package = 'openfisca_france'
extensions = ['openfisca_paris']

Command line:

openfisca serve --configuration-file

Using gunicorn directly

If for any reason you nedd to run gunicorn directly, you can. See this example of gunicorn application:

from openfisca_core.scripts import build_tax_benefit_system
from import create_app

country_package = 'openfisca_france'
extensions = ['openfisca_paris']
reforms = ['openfisca_france.reforms.plf2015.plf2015']

tax_benefit_system = build_tax_benefit_system(
    country_package_name = country_package,
    extensions = extensions,
    reforms = reforms,

application = create_app(tax_benefit_system)

Command line:

gunicorn app --bind --workers=4