https://api.foxhat.org/api
Content-Type: application/json
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
page | integer | No | 0 | Page number for pagination (0-based) |
size | integer | No | 20 | Number of items per page (max: 100) |
domain | string | No | - | Filter by specific domain name |
exposureType | enum | No | - | Filter by exposure type |
severity | enum | No | - | Filter by severity level (LOW , MEDIUM , HIGH , CRITICAL ) |
status | enum | No | - | Filter by exposure status (ACTIVE , RESOLVED , INVESTIGATING ) |
source | string | No | - | Filter by data source |
subdomain | string | No | - | Filter by specific subdomain |
startDate | string | No | - | Filter exposures from this date (ISO 8601 format) |
endDate | string | No | - | Filter exposures until this date (ISO 8601 format) |
sortBy | string | No | detectedAt | Sort field (detectedAt , severity , domain , email ) |
sortDir | string | No | desc | Sort direction (asc , desc ) |
{
"exposures": [
{
"id": "exposure_123",
"email": "user@example.com",
"password": "password123",
"domain": "example.com",
"source": "data_breach",
"severity": "HIGH",
"status": "ACTIVE",
"detectedAt": "2024-01-15T10:30:00Z",
"exposureType": "CREDENTIAL_LEAK",
"subdomain": "mail.example.com",
"breachName": "Example Corp Breach 2024",
"lastUpdated": "2024-01-15T10:30:00Z"
}
],
"totalElements": 1,
"totalPages": 1,
"currentPage": 0,
"domainName": "example.com",
"user_id": "user123",
"api_key_usage_count": "incremented"
}
Field | Type | Description |
---|---|---|
exposures | array | Array of exposure objects |
totalElements | integer | Total number of exposures matching the criteria |
totalPages | integer | Total number of pages available |
currentPage | integer | Current page number (0-based) |
domainName | string | Domain name associated with the API key |
user_id | string | User ID associated with the API key |
api_key_usage_count | string | Indicates that API key usage was incremented |
Field | Type | Description |
---|---|---|
id | string | Unique exposure identifier |
email | string | Exposed email address |
password | string | Exposed password (may be hashed) |
domain | string | Associated domain |
source | string | Source of the exposure (e.g., "data_breach") |
severity | enum | Severity level (LOW , MEDIUM , HIGH , CRITICAL ) |
status | enum | Current status (ACTIVE , RESOLVED , INVESTIGATING ) |
detectedAt | string | ISO 8601 timestamp when exposure was detected |
exposureType | enum | Type of exposure |
subdomain | string | Specific subdomain if applicable |
breachName | string | Name of the breach or source |
lastUpdated | string | ISO 8601 timestamp of last update |
Parameter | Type | Required | Description |
---|---|---|---|
exposureId | string | Yes | Unique identifier of the exposure |
{
"id": "exposure_123",
"email": "user@example.com",
"password": "password123",
"domain": "example.com",
"source": "data_breach",
"severity": "HIGH",
"status": "ACTIVE",
"detectedAt": "2024-01-15T10:30:00Z",
"exposureType": "CREDENTIAL_LEAK",
"subdomain": "mail.example.com",
"breachName": "Example Corp Breach 2024",
"lastUpdated": "2024-01-15T10:30:00Z",
"additionalData": {
"ipAddress": "192.168.1.1",
"userAgent": "Mozilla/5.0...",
"location": "United States"
},
"relatedExposures": [
{
"id": "exposure_124",
"email": "user@example.com",
"domain": "example.com",
"severity": "MEDIUM"
}
],
"domainName": "example.com",
"user_id": "user123",
"api_key_usage_count": "incremented"
}
Field | Type | Description |
---|---|---|
additionalData | object | Additional metadata about the exposure |
relatedExposures | array | Array of related exposures for the same email/domain |
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
domain | string | No | - | Filter statistics by specific domain |
startDate | string | No | - | Start date for statistics (ISO 8601 format) |
endDate | string | No | - | End date for statistics (ISO 8601 format) |
{
"totalExposures": 1247,
"activeExposures": 892,
"resolvedExposures": 355,
"severityBreakdown": {
"CRITICAL": 45,
"HIGH": 234,
"MEDIUM": 567,
"LOW": 401
},
"statusBreakdown": {
"ACTIVE": 892,
"RESOLVED": 355,
"INVESTIGATING": 0
},
"domainBreakdown": [
{
"domain": "example.com",
"count": 1000,
"percentage": 80.2
},
{
"domain": "subdomain.example.com",
"count": 247,
"percentage": 19.8
}
],
"trendsData": {
"last30Days": 156,
"last7Days": 23,
"last24Hours": 5
},
"topSources": [
{
"source": "data_breach_2024",
"count": 456,
"percentage": 36.6
},
{
"source": "credential_dump",
"count": 234,
"percentage": 18.8
}
],
"domainName": "example.com",
"user_id": "user123",
"api_key_usage_count": "incremented"
}
Field | Type | Description |
---|---|---|
totalExposures | integer | Total number of exposures |
activeExposures | integer | Number of active exposures |
resolvedExposures | integer | Number of resolved exposures |
severityBreakdown | object | Count of exposures by severity level |
statusBreakdown | object | Count of exposures by status |
domainBreakdown | array | Breakdown of exposures by domain |
trendsData | object | Exposure trends over different time periods |
topSources | array | Most common sources of exposures |
LOW
- Low risk exposuresMEDIUM
- Medium risk exposuresHIGH
- High risk exposures requiring attentionCRITICAL
- Critical exposures requiring immediate actionACTIVE
- Exposure is currently active and unresolvedRESOLVED
- Exposure has been addressed and resolvedINVESTIGATING
- Exposure is under investigationCREDENTIAL_LEAK
- Username/password combinationsEMAIL_EXPOSURE
- Email addresses in data breachesPERSONAL_INFO
- Personal information exposureFINANCIAL_DATA
- Financial information exposureCORPORATE_DATA
- Corporate data exposuredetectedAt
- Sort by detection timestampseverity
- Sort by severity leveldomain
- Sort by domain nameemail
- Sort by email addresslastUpdated
- Sort by last update timestampasc
- Ascending orderdesc
- Descending orderStatus Code | Description | Example Response |
---|---|---|
200 | Success | Data returned successfully |
400 | Bad Request | Invalid parameters or malformed request |
401 | Unauthorized | Invalid or missing API key |
403 | Forbidden | API key doesn't have access to requested resource |
404 | Not Found | Exposure ID not found |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Server error occurred |
{
"error": {
"code": "INVALID_API_KEY",
"message": "The provided API key is invalid or expired",
"timestamp": "2024-01-15T10:30:00Z",
"requestId": "req_123456789"
}
}
Error Code | Description | Resolution |
---|---|---|
INVALID_API_KEY | API key is invalid or expired | Check your API key and ensure it's active |
INSUFFICIENT_PERMISSIONS | API key lacks required permissions | Contact support to upgrade permissions |
RATE_LIMIT_EXCEEDED | Too many requests in time window | Implement rate limiting in your application |
INVALID_PARAMETERS | Request parameters are invalid | Check parameter format and values |
EXPOSURE_NOT_FOUND | Specified exposure ID doesn't exist | Verify the exposure ID is correct |