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 scanning with URL validation and optional CSRF protection. Supports flexible URL input formats: - Full URLs: https://example.com, http://example.com - Domain only: example.com (will try https://, https://www., http://, http://www.) - With path: example.com/page (will prepend protocol)

Parameters

NameTypeRequiredDescription
urlstringRequired
scan_typestringOptional
optionsstringOptional
csrf_tokenstringOptional

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"
}