IROPO is an animal-welfare advocacy project focused on documenting and tracking people who have harmed animals using public and official data sources.
🚧 Work in progress: the project is actively being built. The current focus is developing a data-mining and scraping pipeline to gather offender data for each city and state across the United States. The code is not yet functional or ready for general use.
IROPO stands for the International Registry of Pet Offenders. The long-term concept is a registry that lists people who have caused harm or affliction to animals, with the goal of supporting animal-welfare advocacy and accountability.
The repository currently holds work-in-progress code, research notes, reference material, and sample source files that shape the data pipeline and the future direction of the project.
This repository is an active work in progress and not yet a finished website or production data service. It is currently being used to:
The current priority is data aggregation work across the US, starting city-by-city and state-by-state with states already represented in this repository.
The project objectives that guide the work here are:
Known data sources and references already present in this repository include:
localAndStateAgencies-NC.xlsx, localAndStateAgencies-ND.xlsx, and localAndStateAgencies-NY.xlsxOffenders/An ORI is a nine-character Originating Agency Identifier used in NCIC and related criminal-justice reporting systems to identify a reporting agency. The working notes in this repository use ORIs to look up agencies and query the FBI API.
| Path | Purpose |
|---|---|
README.md |
Project overview, status, and roadmap |
CONTRIBUTING.md |
Contributor guidance for this repository |
iropo.org.md |
Working notes about sources, ORIs, and API research |
api-test.py |
Script that reads an agency spreadsheet and queries the FBI API by ORI (in development) |
api-test-columns.py |
Script for inspecting spreadsheet columns (in development) |
localAndStateAgencies-*.xlsx |
Agency and ORI lists for states currently being explored |
Offenders/ |
FBI demographic spreadsheets related to offender data |
*.pdf, *.rtf |
Reference material and manuals used during research |
.github/workflows/ |
Workflow-dispatch jobs for the Python scripts |
The Python files in this repository are part of the data-collection work that is still being built. They are not ready for general or widespread use yet and may be incomplete or change significantly as development continues. Setup and usage instructions will be added here once the scripts are stable enough to run reliably.
.env file for development and GitHub Actions secrets for automation.The diagram below shows the intended data flow and the high-level steps for growing the project: from gathering source data, through normalization and verification into a single source of truth, and on to presenting it publicly and gathering feedback. Most of this pipeline is still being built.
flowchart TD
%% External data sources
FBI[FBI Crime Data API<br/>api.usa.gov]
AG[Per-state agency<br/>spreadsheets and ORIs]
OFF[FBI offender<br/>demographic data]
PUB[Other public and<br/>court records]
%% Enabling resources
FUND[Funding, hosting<br/>and volunteers]
%% Processes / growth steps
P1([1 - Collect and scrape<br/>city / state by ORI])
P2([2 - Normalize and<br/>import to schema])
P3([3 - Verify, review and<br/>record provenance])
P4([4 - Choose framework and<br/>surface on iropo.org])
P5([5 - Build public<br/>browse / search UI])
P6([6 - Promote and<br/>gather feedback])
%% Data stores
RAW[(Raw collected data)]
SOT[(Source-of-truth<br/>datastore)]
%% End users
USERS
FBI --> P1
AG --> P1
OFF --> P1
PUB --> P1
P1 --> RAW
RAW --> P2
P2 --> P3
P3 --> SOT
SOT --> P4
P4 --> P5
P5 --> USERS
USERS --> P6
P6 -.->|feedback and leads| P1
FUND -.->|enables| P1
FUND -.->|enables| P4
FUND -.->|enables| P5
The following checklist tracks the work based on the current objectives and the repository’s present state.
iropo.org.Contributions are welcome. Helpful contributions may include:
Please start with CONTRIBUTING.md and follow the community expectations in CODE_OF_CONDUCT.md. If you want to help shape the project process further, open an issue to discuss it.
Because this project concerns information about identifiable people and alleged or adjudicated harm to animals, contributors should work carefully and conservatively:
These points are not legal advice; they are considerations that should be addressed before any public registry is treated as authoritative.
This project is licensed under CC0-1.0.
If you want to help, use GitHub issues or pull requests for now. Additional contact or community channels can be added here later if the project adopts a mailing list, GitHub Discussions, or another option.