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

20 runnable examples in examples/ — single-provider reads, a Street Manager Open Data receiver, a Section 50 write-path connector (sandbox-verified, not production), a UK-first works_near join pattern over a documented four-provider subset (deliberately example code, not an SDK export — see docs/concepts/common-model.md), two cross-provider comparisons/maps, a real-time AV last-mile router that reroutes around live roadworks, 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.

Metadata

Release files for streetworks 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for streetworks 0.11.0
File Size Uploaded Provenance Actions
streetworks-0.11.0.tar.gz 22.6 MB With provenance Details for streetworks-0.11.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for streetworks 0.11.0
File Interpreter ABI Platform Actions
streetworks-0.11.0-py3-none-any.whl Python 3 none any Details for streetworks-0.11.0-py3-none-any.whl

Total release size: 23.5 MB

Release files / streetworks-0.11.0.tar.gz

Download URL streetworks-0.11.0.tar.gz
Size 22.6 MB
Tags Source
SHA-256 checksum
How to use checksums
78000387a97ab321d7ef47ea1a651a3b9105989cf7c0d7b435994e6f1f8d73de
BLAKE2b-256 checksum
How to use checksums
3dcc8388344233f67ea35f49eeeb48a49b6a2debbc49b3a75eac6719a21dafec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / streetworks-0.11.0-py3-none-any.whl

Download URL streetworks-0.11.0-py3-none-any.whl
Size 980.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a328077c8ebf26a4dfba7ad7a48095b53241e47c643e7adfa5beff7dc2e0bb2
BLAKE2b-256 checksum
How to use checksums
406596afaf33dc71ac1e2fc1dafd93d582ef60af34f6eb6a8b0d74e4efdf50da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Security for streetworks 0.11.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for streetworks-0.11.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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