Skip to main content

voter-tools

PyPI Tests Changelog License

Tools for online voter registration in the United States of America.

Contains a command-line tool (vote) and a python library (voter_tools) to:

  1. Check voter registration status in key states, currently including:
    • Georgia
    • Michigan
    • Pennsylvania
    • Wisconsin
  2. Perform online voter registration (OVR) directly with key states, via their APIs. We currently support the Pennsylvania OVR API with plans to support Michigan and Washington states in the future.

Installation

Install this library using pip:

pip install voter-tools

Command-line usage

Check registration of a single voter

To check whether a voter is registered:

vote check <first-name> <last-name> <zip> <dob YYYY-MM-DD> [--details]

This will tell you whether the user is registered to vote. You can request extra details (registration date, current status, etc.) with the --details flag. Not all states support all details.

Check registration of multiple voters in bulk

There is also a tool to check every record in a CSV file:

vote check-csv <input-file.csv> [--details]

A new CSV is written to stdout with the same fields as the input CSV plus extras related to the registration check.

Interact with the Pennsylvania API

The vote command contains a number of sub-commands for interacting directly with the Pennsylvania state API.

For instance, to invoke the API's "get available languages" call:

> vote pa get-languages
languages=(Language(code='LANGENG', name='English'), Language(code='LANGSPN', name='Spanish'), Language(code='LANGTCN', name='Chinese'))

Use vote pa --help for details on available subcommands.

Development

To contribute to this library, first checkout the code. Then create a new virtual environment:

cd voter-tools
python -m venv .venv
source .venv/bin/activate

Now install the dependencies and test dependencies:

pip install -e '.[dev]'

To run tests:

make test

To run a full lint/typecheck/test pass:

make check

State-specific documents

We've collected state-specific documents in the docs directory and will try to keep them up-to-date as state APIs change.

Metadata

Release files for voter-tools 0.0.23

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

Source distribution (sdist)

Source distribution for voter-tools 0.0.23
File Size Uploaded
voter_tools-0.0.23.tar.gz 660.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for voter-tools 0.0.23
File Interpreter ABI Platform
voter_tools-0.0.23-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / voter_tools-0.0.23.tar.gz

Download URL voter_tools-0.0.23.tar.gz
Size 660.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4913ae2b3498e084258fdeb6ea1eb2b52e0629dcdd7950e4e2e8e417994ec53a
BLAKE2b-256 checksum
How to use checksums
24f27166e7aba9b11bc39d80854aade7b24c628c0e2b330c93790e351ddec194
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 May 29, 2025.

Transparency log

Release files / voter_tools-0.0.23-py3-none-any.whl

Download URL voter_tools-0.0.23-py3-none-any.whl
Size 670.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d5977989a32def50dbbc1970020c9d37b2419e0cd0cf5c7032075913a68bc4e3
BLAKE2b-256 checksum
How to use checksums
11143006bbd16b129afacbc63c2574f529e56fd00c8e3098568eee2a2e77b3b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 May 29, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.23 This release

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.14

2 release files

0.0.12

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release 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