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.

Open Referral

The Open Referral Initiative develops data standards and open platforms that make it easy to share and find information about community resources. Learn more about the initiative at


The Open Referral initiative defines two standards - the Human Services Data Specification and the Human Services Data API.

Human Services Data Specification defines a minimal set of data for publishing machine-readable directory information about health, human, and social services; their locations and accessibility details; and the organizations that provide them. Read the spec here.

The Human Services Data API specification builds upon HSDS.

A detailed FAQ about the project is found here, and additional information about the Open Referral Initiative is available at


The Human Services Data Specification and its documentation are licensed under the Creative Commons Attribution-ShareAlike (CC BY-SA) license.

We encourage you to use an open license for any data you publish using the specification.

Earlier versions were licensed under CC0.

Setup environment for docs and schema tools

Set up an environment and install Python dependencies into it:

python3 -m venv .ve    
source .ve/bin/activate
pip install -r requirements.txt

This will install everything needed to run the docs and the executable.

If you run into any errors with the docs or schema building, make sure an existing environment is up-to-date by running:

pip install --upgrade -r requirements.txt

Building datapackage.json, examples and compiled schemas

After changing any schemas the following command needs to be run: docs-all

This will update the datapackage.json file, the examples and the compiled schemas.

Building the documentation


Any change pushed to the main branch on GitHub will be built and pushed to automatically by ReadTheDocs. Build info is found at

Other branches are also built automatically, but are hidden from the flyout menu on ReadTheDocs and can only be viewed by typing the branch name into the ReadTheDocs url. Builds can be configured by admins of the 'openreferral' project on ReadTheDocs, on this page -

Building locally

This assumes a UNIX-based system with Python 3 installed.

You will need graphviz installed. For Ubuntu:

apt-get install graphviz libgraphviz-dev

Then pull in the submodule for the API documentation.

git submodule init
git submodule update

The update command should be re-run whenever there are updates to the api-specification repository.

To build the docs:

cd docs
make dirhtml

You can also use sphinx-autobuild to have an auto-refreshing local build.

pip install sphinx-autobuild
cd docs
sphinx-autobuild . _build


Examples are included with the documentation and these should match the current datapackage.json. To test:

pip install frictionless
python examples/
frictionless validate examples/all_resources/datapackage.json
frictionless validate examples/simple/datapackage.json

Everytime a new example csv is added or datapackage.json is changed, rerun:

python examples/

Everytime a new example directory is added, please add a line above and in .github/workflows/test_examples.yml.

Database Schemas

These are built automatically from the schema by a GitHub action and checked in for you.

If you want to run the build process locally for any reason, look in the following shell files for help:


The Human Services Data Specification - a data exchange format developed by the Open Referral Initiative




Code of conduct





No packages published