HEROIC API Reference (v7)

Need Help? Just drop us an email with your queries to support@heroic.com and we'll get back to you.

Introduction

HEROIC offers a powerful suite of enterprise-grade APIs designed to detect and investigate exposed data across billions of breach records. With tens of billions of compromised records indexed, the HEROIC API allows you to search and retrieve breach data across multiple identity types and sources.

1. Access Requirements

To use the HEROIC API, you must have an active HEROIC Enterprise Account. Click here to sign up.

> Base URL

The Base URL for our APIs is:

https://api.heroic.com/v7
> Obtaining the API key

To obtain a key:

  • Log into your HEROIC Enterprise account.
  • Go to API Key Management.
  • Create or manage your API keys.
> Authentication

All requests must include an API key in the header:

x-api-key: YOUR_API_KEY

Your API key should be kept secure and never exposed in client-side code or public repositories.

> Rate Limiting

API requests are subject to rate limiting:

  • Standard Plan: 1,000 requests per hour
  • Enterprise Plan: 10,000 requests per hour
  • Bulk Operations: Contact support for higher limits

2. Data Privacy & Compliance

HEROIC is committed to data privacy and regulatory compliance:

> Data Handling
  • All PII is automatically masked in API responses
  • Data is encrypted in transit and at rest
  • Access logs are maintained for security auditing
  • Data retention follows GDPR and CCPA requirements
> Compliance Standards
  • GDPR: Full compliance with EU data protection regulations
  • CCPA: California Consumer Privacy Act compliance
  • SOC 2: Type II certified for security controls
  • ISO 27001: Information security management certified

3. API Operations

The HEROIC API supports multiple endpoints for breach data access and search capabilities.

https://api.heroic.com/v7/breaches
https://api.heroic.com/v7/breaches/{uuid}
https://api.heroic.com/v7/breach-search
https://api.heroic.com/v7/credit-card-search

3.1 GET /breaches

Returns metadata about breach sources including breach name, data types leaked, country of origin, and record counts. Useful for audit trails or breach intelligence overviews.

> Endpoint:
https://api.heroic.com/v7/breaches
> Query Parameters
Parameter Required Description
number_of_records No Limit the number of results returned
> Request Example:
GET /v7/breaches
x-api-key: YOUR_API_KEY
> Response Example:
{
  "uuid": "de4860a0-dddb-11e9-bc89-7d2ff98b46e3",
  "source_name": "XSS.IS Combolist",
  "site_domain": "xss.is",
  "date_leaked": "28-Feb-2019",
  "breach_type": "database",
  "site_categories": "Combo List",
  "site_country": "United States",
  "site_language": "English",
  "password_types": "Plaintext",
  "leaked_data_types": "Email Address, Username, Plaintext Password",
  "description": "Credential dump from XSS.IS, commonly shared among attackers",
  "heroic_article_url": null,
  "pwned_count": 2472611041
}

4. Request & Response Schema Details

  • Response structures are consistent across endpoints.
  • Always returned as JSON.
  • Fields include string, number, boolean, timestamp, or null.
  • Pagination tokens (when present) use paging_token.
> Response Format

All API responses follow a consistent structure:

  • Success responses: Return data directly or in a data field
  • Error responses: Include error and message fields
  • Pagination: Large result sets include paging_token for continuation
  • Rate limiting: Headers include X-RateLimit-Remaining and X-RateLimit-Reset
> Pagination

For endpoints returning large datasets:

  • Use paging_token parameter to continue from where you left off
  • Tokens are valid for 24 hours
  • Maximum 1000 records per request
  • Set number_of_records to limit results

5. Error Handling

Code Error category Description Resolution
403 Authentication Failed Invalid API credentials. Ensure a valid API key is specified.
404 Path not found The API path does not exist. Check the API route.
405 Invalid input Invalid input provided. Check your input.
422 Validation Error Validation failed. Read the error message and correct your data.
500 Internal server error Server error. Contact HEROIC support.

6. HTTP Status Codes

Code Description
200 OK – request succeeded
400 Bad Request – missing or invalid params
401 Unauthorized – missing or invalid API key
404 Not Found – no records found
429 Too Many Requests – rate limited
500+ Server errors – try again or contact support

6. PII Masking

HEROIC is committed to protecting sensitive personal information (PII) in all API responses. To ensure privacy and compliance, all PII fields such as credit card numbers, SSNs, and passwords are masked or redacted in the data returned by our APIs.

  • Credit card numbers: Randomly masked to show up to 6 digits (e.g., 543210XXXXXX1234).
  • SSNs: Only last 2 digits are visible (e.g., 123-456-78**).
  • Passwords: Only last 2 characters are visible (e.g., admin@12**).

This masking ensures that sensitive data cannot be reconstructed or misused, while still allowing for effective breach investigation and analysis. If you require access to unmasked data for legitimate security or compliance reasons, please contact HEROIC support for more information on our data access policies.

8. Data Dictionary

Breach Metadata

Field Type Description
uuid string Unique identifier for the breach
source_name string Name/title of the breach source
site_domain string Domain of the breached site
date_leaked string Date the data was leaked
breach_type string Type of breach (e.g., database)
site_categories string Tags/categories describing the site
site_country string Country where the breach originated
site_language string Primary language of the breached site
password_types string Type of password leaked (e.g., plaintext)
leaked_data_types string Types of data exposed in the breach
description string Summary of the breach
heroic_article_url string Link to HEROIC article (nullable)
pwned_count integer Number of identities exposed in the breach

Identity-Level Record

Field Type Description
email string Leaked email address
email_domain string Domain portion of the leaked email
username string Leaked username
password string Plaintext password if exposed
password_hash string Hashed password if exposed
phone_number string Leaked phone number
ip_address string Leaked IP address
social_security_number string Leaked social security number (if available)
hack_source_uuid string Corresponding breach UUID
severity string Risk severity (e.g., Low, Medium, High)