ScanMalware REST API Documentation

Complete API reference for integrating website security scanning into your applications

Getting Started

The ScanMalware API provides programmatic access to URL security scanning capabilities. All endpoints return JSON responses and use standard HTTP status codes.

🌐 Base URL

https://scanmalware.com

🚀 Quick Example

curl -X POST "https://scanmalware.com/api/v1/scan" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'
📖 Full Documentation Details

Rate Limits

Currently, there are no enforced rate limits, but please use the API responsibly.

Pagination

All search and listing endpoints support pagination to prevent database overload and improve performance. Pagination is implemented using page and limit parameters.

Paginated endpoints include:

  • /api/v1/recent - Recent scans
  • /api/v1/search - Text search
  • /api/v1/search/asn/{asn_number} - ASN search
  • /api/v1/search/favicon/{hash_value} - Favicon hash search
  • /api/v1/search/screenshot/{hash_type}/{hash_value} - Screenshot hash search
  • /api/v1/search/fuzzy/{hash_type} - Fuzzy hash search
  • /api/v1/search/similar - Similar scans search

All paginated responses include a pagination object:

"pagination": {
  "page": 1,          // Current page number
  "limit": 20,        // Items per page
  "total_items": 272, // Total number of items
  "total_pages": 14,  // Total number of pages
  "has_next": true,   // Whether there's a next page
  "has_prev": false   // Whether there's a previous page
}

Error Handling

The API uses conventional HTTP response codes to indicate success or failure. Error responses include a JSON object with error details.

{
  "error": "Invalid URL provided",
  "code": 400,
  "details": "The URL must be a valid HTTP or HTTPS URL"
}

API Endpoints

POST/api/v1/scan

Submit URL for Scanning

Submit a URL for security analysis

Parameters

NameTypeRequiredDescription
urlstringRequiredThe URL to scan
scan_typestringOptionalType of scan: "public", "unlisted", or "private" (default: "public")

Response

{
  "scan_id": "string",
  "status": "string",
  "message": "string",
  "scan_type": "string",
  "submitted_at": "string"
}

Example

Request
curl -X POST "https://scanmalware.com/api/v1/scan" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "scan_type": "public"}'
Response
{
  "scan_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "queued",
  "message": "Scan submitted successfully",
  "scan_type": "public",
  "submitted_at": "2025-08-20T16:30:00.000Z"
}