Domains
Cross-Entity Search
Search across all entity types for a domain in a single request.
https://api.cyborux.com
GET
/api/domain/{domain_name}/searchPath Parameters
string
string
integer
integer
string
Authorizationheader
Bearer <token>API key authentication — use your Cyborux API key as a Bearer token.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
domain_name | string | The domain name (e.g. example.com). |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | — | Required. Search query (1–200 characters). Matched against email addresses, names, filenames, subdomains, usernames, and related domain names. |
page? | integer | 1 | Page number for each entity result set. |
per_page? | integer | 50 | Items per page per entity type. Maximum 100. |
sort_by? | string | risk_level | Sort field for all result sets. Accepted values: risk_level, discovered_at. |
Response
Each entity type returns its own items array and a total count. The pagination parameters apply uniformly across all entity types.
{
"query": "john",
"total_matches": 8,
"results": {
"emails": {
"count": 2,
"items": [
{
"id": 1201,
"email": "john.smith@example.com",
"is_leaked": true,
"spoofable": false,
"registered_services": ["LinkedIn"],
"linked_person_id": 18,
"email_type": "corporate",
"risk_level": "medium",
"breach_count": 3
}
],
"pagination": { "page": 1, "per_page": 50, "total": 2, "total_pages": 1, "has_more": false }
},
"people": {
"count": 1,
"items": [
{
"id": 18,
"name": "John Smith",
"role": "CTO",
"avatar": null,
"social_profiles": ["https://linkedin.com/in/jsmith"],
"email_count": 2,
"file_count": 1,
"username_count": 1,
"password_count": 0,
"risk_level": "high"
}
],
"pagination": { "page": 1, "per_page": 50, "total": 1, "total_pages": 1, "has_more": false }
},
"files": {
"count": 1,
"items": [
{
"name": "john-smith-report.pdf",
"file_metadata": { "author": "John Smith", "company": "Example Corp", "created_date": "2025:01:15" },
"software_used": ["Microsoft Word"],
"file_size_bytes": 45200,
"people_count": 1,
"risk_level": "info"
}
],
"pagination": { "page": 1, "per_page": 50, "total": 1, "total_pages": 1, "has_more": false }
},
"subdomains": {
"count": 2,
"items": [
{
"subdomain": "john-dev.example.com",
"takeover": null,
"is_active": true,
"service": null,
"technology_count": 3,
"risk_level": "medium",
"is_internal": false,
"has_login_page": false,
"is_dev": true
}
],
"pagination": { "page": 1, "per_page": 50, "total": 2, "total_pages": 1, "has_more": false }
},
"usernames": {
"count": 1,
"items": [
{
"username": "jsmith_dev",
"has_password": true,
"profiles": ["https://github.com/jsmith_dev"],
"people_id": 18,
"risk_level": "medium"
}
],
"pagination": { "page": 1, "per_page": 50, "total": 1, "total_pages": 1, "has_more": false }
},
"related_domains": {
"count": 0,
"items": [],
"pagination": { "page": 1, "per_page": 50, "total": 0, "total_pages": 0, "has_more": false }
}
}
}| Status | Detail |
|---|---|
401 | Not authenticated. |
403 | Forbidden — you do not have access to this domain. |
404 | Domain not found. |
422 | Validation error — q is missing, empty, or exceeds 200 characters. |
{
"detail": "Not authenticated."
}curl -X GET "https://api.cyborux.com/api/domain/example.com/search?q=john&page=1&per_page=10&sort_by=risk_level" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch(
"https://api.cyborux.com/api/domain/example.com/search?q=john&page=1&per_page=10&sort_by=risk_level",
{ headers: { "Authorization": "Bearer YOUR_API_KEY" } }
);
const data = await res.json();import requests
response = requests.get(
"https://api.cyborux.com/api/domain/example.com/search",
params={"q": "john", "page": 1, "per_page": 10, "sort_by": "risk_level"},
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = response.json()