Halborn APIhalborn.com ↗
Access Halborn's blockchain security audit reports, findings summaries, blog posts, and whitepapers via a structured API. Search by company, date, or keyword.
What is the Halborn API?
The Halborn API provides 5 endpoints for retrieving blockchain security audit data, research publications, and blog content from halborn.com. Use get_audit_detail to pull structured findings summaries — including critical, high, medium, and low severity counts alongside percentage_addressed — for any audited project. list_audited_companies lets you search and paginate the full roster of companies Halborn has assessed, while list_reports surfaces whitepapers and security research documents.
curl -X GET 'https://api.parse.bot/scraper/e787a22f-6c4c-416d-8787-31df1bdb0c63/list_audited_companies?page=1&sort=newest&query=ripple' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace halborn-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Halborn Security API — audit research workflow."""
from parse_apis.halborn_security_api import Halborn, Sort, NotFoundError_
client = Halborn()
# List audited companies sorted by newest, capped at 5 results.
for company in client.companies.list(sort=Sort.NEWEST, limit=5):
print(company.name, company.slug)
# Drill into one company's audits via constructible resource.
ripple = client.company(slug="ripple")
audit_summary = ripple.audits.list(limit=1).first()
# Navigate from summary to full audit detail.
if audit_summary:
audit = audit_summary.details()
print(audit.title, audit.summary_stats.total_findings, audit.summary_stats.percentage_addressed)
# List recent blog posts filtered by keyword.
for post in client.blogposts.list(query="hack", limit=3):
print(post.title, post.date)
# List security whitepapers/reports.
for report in client.reports.list(limit=3):
print(report.title, report.url)
# Typed error handling for an invalid slug.
try:
bad_company = client.company(slug="nonexistent-xyz-000")
bad_company.audits.list(limit=1).first()
except NotFoundError_ as exc:
print(f"Expected error: {exc}")
print("exercised: companies.list / company.audits.list / audit_summary.details / blogposts.list / reports.list")
List audited companies with their slugs and detail URLs. Supports pagination, search by name, and sort ordering. Returns one page at a time; use the page parameter to advance.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order. Accepted values: 'newest', 'oldest'. |
| query | string | Search query to filter companies by name. |
{
"type": "object",
"fields": {
"companies": "array of company objects each containing company_name, company_slug, and url"
},
"sample": {
"data": {
"companies": [
{
"url": "https://www.halborn.com/audits/saucerswap-labs",
"company_name": "Saucerswap Labs",
"company_slug": "saucerswap-labs"
}
]
},
"status": "success"
}
}About the Halborn API
Audit Coverage
list_audited_companies returns an array of company objects, each with company_name, company_slug, and url. It accepts a query parameter for name-based filtering and a sort parameter (newest or oldest) to control ordering. The company_slug values feed directly into get_audits_by_company, which returns every audit Halborn has conducted for that company — each item includes audit_title, audit_slug, date, and url.
Audit Detail and Findings
get_audit_detail takes both a company_slug and an audit_slug and returns the most granular data available: an introduction narrative, date_of_engagement, last_updated, and a summary_stats object. That object breaks findings into total_findings, plus individual counts for critical, high, medium, low, and informational severity levels, along with percentage_addressed — useful for comparing remediation rates across projects.
Blog Posts and Reports
list_blog_posts returns paginated post records with title, slug, category, date, and url. The optional query parameter filters by keyword, making it practical for monitoring Halborn's coverage of specific protocols or vulnerability classes. list_reports pages through whitepapers and formal security reports, returning type, title, date, and url per item — helpful for tracking the publication of new research relevant to a particular ecosystem.
The Halborn API is a managed, monitored endpoint for halborn.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when halborn.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official halborn.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a dashboard tracking open critical and high findings across all audited DeFi protocols using summary_stats severity counts.
- Monitor when a specific company receives a new audit by polling get_audits_by_company on a schedule.
- Compare percentage_addressed rates across projects to assess remediation thoroughness before integrating a third-party protocol.
- Aggregate Halborn blog posts by category to surface recent research on specific vulnerability classes.
- Compile a timeline of engagement dates across audits for a portfolio of crypto assets using date_of_engagement fields.
- Search list_audited_companies with a query parameter to check whether a protocol of interest has been assessed by Halborn.
- Index whitepapers from list_reports by publication date to stay current on Halborn's formal security research.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.