API Documentation
Complete guide for using SIDEX API for URL security scanning and analysis with 6-dimension response structure.
Authentication
API Key Format
API keys follow the format: sidx_8chars_64hexhash
Authorization Header
Permissions (Scopes)
Read Only Access
View and list scans (GET requests only)
Read & Write Access
Create, view, and delete scans (full access)
Rate Limiting
Single Scan
60 requests per minute
Bulk Scan
10 requests per minute
Rate limit headers are included in all responses:
X-RateLimit-Limit- Maximum requestsX-RateLimit-Remaining- Remaining requestsX-RateLimit-Reset- Reset time (Unix timestamp)
Response Structure
6-Dimension Response Format
All scan responses return data organized into 6 dimensions. The availability of dimensions depends on your subscription plan.
security
Threat level, SSL analysis, brand impersonation, risk factors
business
Company information, industry classification, business type
technical
HTTP status, IP addresses, ASN, content type
content
Page title, meta description, forms, content analysis
trust
Domain age, SSL validation, original domain
insight
AI summary, confidence score, recommendations
Note: Dimensions not included in your subscription plan will return as null.
Endpoints
/api/v1/scansCreate Single Scan
Required Permission: read_and_write
Parameters
urlstringrequiredThe URL to scan (must be a valid URL)
scanTypestringType of scan: "quick" (default) or "deep"
timeoutnumberScan timeout in seconds (default: 30, max: 300)
Request Body
{
"url": "https://example.com",
"scanType": "quick",
"timeout": 30
}Response
{
"msg": "Quick scan started successfully",
"data": {
"linkId": "uuid-string",
"status": "pending",
"scanType": "quick",
"estimatedDuration": 30000
}
}cURL Example
curl -X POST http://localhost:3007/api/v1/scans \
-H "Authorization: Bearer sidx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"scanType": "quick",
"timeout": 30
}'/api/v1/bulkCreate Bulk Scans
Required Permission: read_and_write
Parameters
urlsstring[]requiredArray of URLs to scan (1-100 URLs)
scanTypestringType of scan: "quick" (default) or "deep"
timeoutnumberScan timeout in seconds (default: 30, max: 300)
Request Body
{
"urls": [
"https://example.com",
"https://another.com"
],
"scanType": "quick",
"timeout": 30
}Response
{
"msg": "Quick scan started for 2 URL(s)",
"data": {
"totalRequested": 2,
"totalQueued": 2,
"scanType": "quick",
"estimatedDuration": 30000,
"links": [
{
"linkId": "uuid-string",
"url": "https://example.com",
"status": "pending"
}
]
}
}cURL Example
curl -X POST http://localhost:3007/api/v1/bulk \
-H "Authorization: Bearer sidx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://example.com",
"https://another.com"
],
"scanType": "quick",
"timeout": 30
}'/api/v1/scansList Scans
Parameters
pagenumberPage number (default: 1)
perPagenumberResults per page (default: 10)
qstringSearch by URL or domain
statusstringFilter by status: pending, scanning, completed, failed
threatLevelstringFilter by threat level: critical, high, medium, low, none
dateFromstringISO 8601 date filter (from)
dateTostringISO 8601 date filter (to)
Response
{
"data": [
{
"id": "scan-id",
"url": "https://example.com",
"domain": "example.com",
"status": "completed",
"scanType": "quick",
"timeout": 30,
"redirectChain": [],
"security": {
"treatLevel": "low",
"threatScore": 15,
"threats": [],
"ssl": {
"valid": true,
"issuer": "Let's Encrypt",
"expiryDays": 89
},
"brandImpersonation": {
"risk": "none"
},
"riskFactors": []
},
"business": {
"category": "technology",
"companyName": "Example Corp",
"businessType": "corporate",
"industryClassification": "software"
},
"technical": {
"httpStatusCode": 200,
"contentType": "text/html",
"ipAddresses": [
"192.168.1.1"
],
"ipCountry": "US",
"asn": "AS12345"
},
"content": {
"pageTitle": "Example Website",
"metaDescription": "This is an example website",
"forms": [],
"gambling": false,
"adult": false
},
"trust": {
"ssl": {
"valid": true,
"issuer": "Let's Encrypt"
},
"domain": {
"age": 10,
"ageDays": 3652
},
"originalDomain": "example.com"
},
"insight": {
"summary": "The website appears safe and legitimate",
"confidence": 0.95,
"riskAssessment": "low",
"keyFindings": [
"Valid SSL certificate",
"No security threats detected"
],
"recommendations": [
"No action required"
]
},
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:35:00Z",
"completedAt": "2024-01-15T10:35:00Z"
}
],
"pagination": {
"total": 150,
"page": 1,
"perPage": 10,
"pages": 15
}
}cURL Example
curl -X GET "http://localhost:3007/api/v1/scans?page=1&perPage=10&status=completed" \
-H "Authorization: Bearer sidx_YOUR_API_KEY"/api/v1/scans/:idGet Scan Details
Parameters
idstringrequiredThe scan ID (UUID)
Response
{
"data": {
"id": "scan-id",
"url": "https://example.com",
"domain": "example.com",
"status": "completed",
"scanType": "quick",
"timeout": 30,
"redirectChain": [],
"security": {
"treatLevel": "low",
"threatScore": 15,
"threats": [],
"ssl": {
"valid": true,
"issuer": "Let's Encrypt",
"expiryDays": 89
},
"brandImpersonation": {
"risk": "none"
},
"riskFactors": []
},
"business": {
"category": "technology",
"companyName": "Example Corp",
"businessType": "corporate",
"industryClassification": "software"
},
"technical": {
"httpStatusCode": 200,
"contentType": "text/html",
"ipAddresses": [
"192.168.1.1"
],
"ipCountry": "US",
"asn": "AS12345"
},
"content": {
"pageTitle": "Example Website",
"metaDescription": "This is an example website",
"forms": [],
"gambling": false,
"adult": false
},
"trust": {
"ssl": {
"valid": true,
"issuer": "Let's Encrypt"
},
"domain": {
"age": 10,
"ageDays": 3652
},
"originalDomain": "example.com"
},
"insight": {
"summary": "The website appears safe and legitimate",
"confidence": 0.95,
"riskAssessment": "low",
"keyFindings": [
"Valid SSL certificate",
"No security threats detected"
],
"recommendations": [
"No action required"
]
},
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:35:00Z",
"completedAt": "2024-01-15T10:35:00Z"
}
}cURL Example
curl -X GET http://localhost:3007/api/v1/scans/scan-uuid \
-H "Authorization: Bearer sidx_YOUR_API_KEY"/api/v1/scans/:idDelete Scan
Required Permission: read_and_write
Parameters
idstringrequiredThe scan ID (UUID)
Response
{
"msg": "Scan deleted successfully",
"data": {
"linkId": "scan-id"
}
}cURL Example
curl -X DELETE http://localhost:3007/api/v1/scans/scan-uuid \
-H "Authorization: Bearer sidx_YOUR_API_KEY"HTTP Status Codes
OK
Request successful
Bad Request
Invalid parameters or validation failed
Unauthorized
Missing or invalid API key
Forbidden
Insufficient permissions for this resource
Too Many Requests
Rate limit exceeded. Check Retry-After header
Server Error
Internal server error
For support or questions, please contact our team.
On this page
No headings found
Help & Support