Skip to content

About

Project Information

NJ Legislature API is a Python client library for interacting with the New Jersey Legislature's API. It provides a comprehensive, type-safe interface to access legislative data.

Features

  • Complete coverage of NJ Legislature API endpoints
  • Type-safe data models using Pydantic
  • Built-in caching and rate limiting
  • Comprehensive documentation
  • CLI tool for quick access
  • Extensive test coverage

Author

Andrew McAllister - AMcAllister@njleg.org

Repository

License

This project is licensed under the MIT License.

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new features
  4. Run the test suite (make test)
  5. Submit a pull request

Development

Setup

# Clone repository
git clone https://github.com/mcala/nj_legislative_api.git
cd nj_legislative_api

# Install with development dependencies
uv sync --dev

Running Tests

make test        # Run tests
make test-cov    # Run with coverage
make check       # Run all checks

Code Quality

make format      # Format code
make lint        # Run linters
make type        # Type checking

Technology Stack

  • Python 3.13+: Modern Python features
  • httpx: Async-capable HTTP client
  • Pydantic: Data validation and settings
  • Typer: CLI framework
  • Rich: Terminal formatting
  • pytest: Testing framework
  • mkdocs: Documentation generation

Roadmap

  • [ ] Async support for high-performance applications
  • [ ] Webhook support for real-time updates
  • [ ] DataFrame export utilities
  • [ ] Extended CLI commands
  • [ ] GraphQL endpoint support
  • [ ] WebSocket streaming for live sessions

Acknowledgments

  • New Jersey Legislature for providing the public API
  • Open source Python community
  • All contributors and users

Disclaimer

This is an unofficial client library and is not affiliated with or endorsed by the New Jersey Legislature.