Overview

MalwareBazaar is a free platform by abuse.ch where security researchers share malware samples along with metadata like file hashes, tags, and threat actor attribution. You can query samples by hash, download files, and search by malware family or tag. It is a go-to resource for threat intelligence and incident response workflows.

Beginner Tip

The API uses POST requests with a JSON body containing a query field — read the docs at bazaar.abuse.ch/api carefully because the request format differs from typical REST APIs.

Available Data

The kind of data this API exposes, based on its documentation. We could not call the endpoint to confirm the exact field names.

stock price and symbol
open/close/high/low values
trading volume
market cap
historical price data

Example Response

Illustrative shape only — we were not able to call this endpoint (it requires credentials or exposes no public sample URL), so the fields below show the kind of data this API returns rather than a recorded response.

JSON Response · Illustrative
{
  "url": "https://example.com",
  "safe": true,
  "threat_level": "none",
  "categories": [
    "clean"
  ],
  "scan_date": "2025-01-15T10:00:00Z"
}

Field Reference

query_status Result of the query: ok, no_results, or an error string
data[].sha256_hash SHA256 hash of the malware sample, used as the primary identifier
data[].file_name Original filename of the malware sample as submitted
data[].file_type Detected file type such as exe, dll, or docm
data[].tags Researcher-applied tags identifying malware family or behavior, e.g. ransomware, emotet
data[].first_seen ISO 8601 timestamp when the sample was first submitted to MalwareBazaar

Implementation Example

Calls a real endpoint of this API. Replace any placeholder credentials with your own key.

Request
const url = "https://mb-api.abuse.ch/api/v1/";
// Replace headers or query params with the values required by this API.
const response = await fetch(url, {
  headers: {
  "X-API-Key": "YOUR_API_KEY"
  }
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

Generated guidance based on this API's documentation, not observed by us. Treat it as a starting point and check against the provider's own error reference.

"query_status": "no_results" The hash or search term returned no matching samples
Verify the hash is correct and try alternate hash types (MD5, SHA1, SHA256); not all malware is in the database
"query_status": "illegal_search" The query field contains an unsupported value or the JSON body is malformed
Use only documented query types like get_info, get_file, or query; validate your JSON before sending
Connection timeout Download requests for large samples can time out on slow connections
Increase your HTTP client timeout to at least 30 seconds when downloading binary samples

Metadata Score Breakdown

Estimated from metadata — endpoint not independently tested

This score is estimated from observable metadata — HTTPS support, authentication model, declared CORS, and documentation reachability — because the API requires authentication or exposes no publicly testable endpoint. The five-signal breakdown is only shown for live-tested APIs.

Metadata estimate · endpoint not independently tested

Technical Specifications

Auth API Key
HTTPS REQUIRED
CORS UNKNOWN
Category Anti-malware
Difficulty Intermediate
Listing details not endpoint-verified

Related Tags

Similar APIs

View All →