Use the Projects API to interact with your SysReptor projects and findings.
Search projects
1234
reptor.api.projects.search()# Get all projectsreptor.api.projects.search(search_term="Web")# Search for "Web"reptor.api.projects.search(finished=False)# Include active projects only# Out: [ProjectOverview(name="Calzone Report Demo", id="41c09e60-44f1-453b-98f3-3f1875fe90fe")]
The search endpoint returns a list of ProjectOverview objects, which don't hold findings or section information (such as report fields).
If you want to interact with a specific project, specify the project id when initializing reptor. (Instead of re-initializing reptor with the project ID, you can also call reptor.api.projects.init_project("41c09e60-44f1-453b-98f3-3f1875fe90fe").)
You can, again, convert the data objects (Project and Section) to Python dictionaries.
Convert Project and Section to dict
1 2 3 4 5 6 7 8 9101112131415161718
my_project.to_dict()# Out:# {'id': '41c09e60-44f1-453b-98f3-3f1875fe90fe',# 'created': '2023-09-21T00:00:01Z',# 'details': 'https://reptortest.sysre.pt/api/v1/pentestprojects/41c09e60-44f1-453b-98f3-3f1875fe90fe',# 'findings': [{'assignee': None,# 'created': '2025-07-09T08:02:10.017137Z',# 'data': {'affected_components': ['https://example.com/alert(1)',# 'https://example.com/q=alert(1)'],# <snip>my_project.sections[1].to_dict()# Out:# {'assignee': None,# 'created': '2022-10-19T16:59:04.488000Z',# 'data': {'duration': '5 person days',# 'end_date': '2022-04-22',# 'provided_users': 'Duis autem vel eum iriure dolor in hendrerit in '# <snip>
Pentesters write their reports in markdown. If you need the data as HTML, you can use the html parameter. (Note that the method still returns JSON data. Markdown content is, however, converted to HTML.)
Download fields as HTML instead of Markdown
123
my_project=reptor.api.projects.fetch_project(html=True)my_project.findings[0].data.description.value# Out: '<p>This was originally written in markdown.</p> \n<ul>\n<li>Now</li> <li>it seems</li> <li>to be</li> <li>HTML</li>\n</ul>\n'