Skip to main content

streetworks

CI PyPI Python Licence: MIT

An open Python SDK for street works and roadworks data — the UK's registers, Europe's national feeds, the US WZDx standard, and providers across Australia and New Zealand, behind one consistent, typed, verification-first client.

We do this not because it is easy, but because it is hard.

Developed and published independently, in a personal capacity — not on behalf of, or endorsed by, any employer. See docs/governance/attribution.md for the full statement and contributor credits.

Why?

Roadworks data is published through wildly different systems — statutory registers, DATEX II, WZDx, ArcGIS, WFS, bespoke REST APIs and regional platforms. Almost every provider also has its own authentication, pagination, geometry, date formats and quirks.

streetworks solves that integration problem so you can get on with building applications instead of learning how every individual road authority happens to publish its data.

It provides one common model without pretending those sources are equivalent — preserving the differences, limitations and provenance that matter.

And, honestly, part of the fun is discovering how different organisations have chosen to put their data together.

Install

pip install streetworks            # core
pip install "streetworks[sns]"     # + SNS signature verification (cryptography)

Requires Python 3.10+. Early alpha, pre-1.0 — see docs/getting-started/installation.md for what's verified against live systems today.

Quickstart

from streetworks.streetmanager import StreetManagerClient, Environment

with StreetManagerClient("api-user@example.com", password, environment=Environment.SANDBOX) as sm:
    sm.authenticate()                                  # verify credentials
    submitted = sm.reporting.permits(status="submitted")

The fastest way to see everything working: copy the credential template, fill in what you have, and run the one-file tour — it logs in to each configured provider and retrieves a little real data (read-only). Providers you leave blank are skipped, and SRWR / OS Open USRN need no credentials at all.

cp .env.example .env      # then edit .env
python examples/quickstart.py

For connectivity checks without data retrieval: python scripts/smoke_test.py. Credential setup, environment variables and what to expect from a real run are in docs/getting-started/quickstart.md.

Coverage at a glance

UK statutory registers and gazetteers (Street Manager, DataVIA, D-TRO, SRWR, OS Open USRN), national and regional roadworks feeds and address/street registers across Europe, the US WZDx standard plus NYC/Chicago/Paris municipal permit registers, DriveBC (British Columbia, Canada), Australia (national + state), and New Zealand — and growing. Every provider carries an explicit network_scope and a confirmed (or honestly flagged unconfirmed) licence; nothing is silently assumed open.

streetworks.providers() / get_provider() let you find a provider by what it covers rather than needing to already know the module name — see docs/providers/index.md for the full coverage matrix, per-provider modules, and current Credentials-wanted scaffolds.

Coverage map, as of 09 Aug 2026. Map showing areas included in the SDK (Green - Open / Orange - Registration) as of 09 Aug 2026.

Examples

18 runnable examples in examples/ — single-provider reads, a Street Manager Open Data receiver, a Section 50 write-path connector (sandbox-verified, not production), two cross-provider comparisons/maps, and two visual showcases (a lone-worker crime-context map, an OS Open USRN terrain drape with a 3D-print export). Each one's docstring states exactly what it needs and what state it's really in — see docs/examples.md for the curated, one-line-per-example index.

Documentation

Contributing

Contributions welcome — see CONTRIBUTING.md.

Licence

MIT. Not affiliated with or endorsed by the Department for Transport or Geoplace. Street Manager documentation is © Crown copyright, available under the Open Government Licence v3.0. See docs/governance/licensing.md for the full per-provider licence index.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streetworks-0.9.0.tar.gz (21.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

streetworks-0.9.0-py3-none-any.whl (682.3 kB view details)

Uploaded Python 3

File details

Details for the file streetworks-0.9.0.tar.gz.

File metadata

  • Download URL: streetworks-0.9.0.tar.gz
  • Upload date:
  • Size: 21.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for streetworks-0.9.0.tar.gz
Algorithm Hash digest
SHA256 3400d5c4fe2c9592d3e796559763e5a4769109a85b54822425d3bd10c6d3e175
MD5 815e1b9b131b3cb406cba2e03dedfc12
BLAKE2b-256 a59369d5526987433dedc32400861ad2d0b681252a1043c42228831f4fa2e31f

See more details on using hashes here.

Provenance

The following attestation bundles were made for streetworks-0.9.0.tar.gz:

Publisher: publish.yml on KFergusonUK/StreetWorks-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file streetworks-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: streetworks-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 682.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for streetworks-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d651596878e0efbf26accfb16f6f8c7037a3ee9ccb31fd9ba6ac51eab20d3b06
MD5 97cbb0d4ace8f0c8a3d41236bf5d2038
BLAKE2b-256 1b7112b6e48143d3333f46437b9ace36c6c1aee3609f772d2179acdde81f8235

See more details on using hashes here.

Provenance

The following attestation bundles were made for streetworks-0.9.0-py3-none-any.whl:

Publisher: publish.yml on KFergusonUK/StreetWorks-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.10.0

2 files

This release

0.9.0 This release

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page