A proof of concept app that stores the full graph network (officers, persons with significant control) of a UK company in Neo4j using the Companies House Public Data API.
Graph company data of Waterstones Booksellers Limited (00610095)
MacOS (using brew
)
brew install [email protected] uv
Ubuntu/Debian
# Python
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.13 python3.13-venv pipx
pipx ensurepath
# uv
pipx install uv
From the root of the project execute:
uv sync
Generate an API key using the Companies House API guidelines.
# Companies House
COMPANIES_HOUSE_API_KEY="change_me"
COMPANIES_HOUSE_BASE_URL="https://api.company-information.service.gov.uk"
# Neo4j
NEO4J_URI="bolt://localhost:7687"
NEO4J_USER="neo4j"
NEO4J_PASSWORD="your_password"
docker compose up -d neo4j
uv run main.py COMPANY_NUMBER
uv run ruff check src/*
uv run ruff format src/*