Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A HackerOne API client for Python

Project Description


A HackerOne API client for Python. The API closely maps to the REST API that HackerOne provides. Documentation for their API is available here.




For installation via pip:

pip install h1

For development, In the project root run:

virtualenv env
source env/bin/activate
make bootstrap

The manual approach should work as well:

python install


Initializing the Client

>>> from h1.client import HackerOneClient
>>> from h1.models import Report

Getting all reports created in the last day

HackerOneClient.find_resources() allows you to specify a resource to find (only Report is supported for now) and some criteria to filter on. The only required filter is program, which must be set to the target HackerOne program’s name. Any additional filters may be passed as kwargs, and everything in HackerOne’s filter documentation should be supported.

For example, here’s how we’d get all reports created in the past 24 hours:

>>> import datetime as dt
>>> day_ago = - dt.timedelta(days=1)
>>> listing = c.find_resources(Report, program=["test-program"], created_at__gt=day_ago)
>>> len(listing)
>>> listing[0].title
u'This is a test report!'

Getting all resolved reports in a program

Similarly, if we filter on state we can get all the resolved reports:

>>> resolved_listing = c.find_resources(Report, program=["test-program"], state=["resolved"])
>>> resolved_listing[0].title

Getting a specific report by ID

HackerOneClient.get_resource() allows you to pass a resource type (again, currently just Report,) and an ID to fetch:

>>> report = c.get_resource(Report, 110306)
>>> report.title
u'Test RCE SQLi'
>>> report.state

Tallying report counts by user

Here’s an example of using the client to figure out who your most prolific reporters are:

>>> from collections import Counter
>>> reporter_count = Counter()
>>> all_reports = c.find_resources(Report, program=["test-program"])
>>> for report in all_reports:
...     reporter_count[report.reporter] += 1
>>> print(reporter_count)
Counter({<User - bestreporter>: 21, <User - another_reporter>: 12, <User - r3p0rt3r>: 2, <User - newbie>: 1})

Running Tests

virtualenv env
source env/bin/activate
make bootstrap
make test

Release History

This version
History Node


History Node


History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(17.7 kB) Copy SHA256 Hash SHA256
Source None Jan 13, 2017

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers