Skip to main content
Use the check-malicious endpoint to send a single GET request with a report_type and a resource_identifier, and the API tells you whether that resource appears in the OSM threat database. The endpoint covers all supported resource types through one unified interface. Use this endpoint to:
  • Investigate a suspected threat: During an active incident or hunt, look up any resource to instantly confirm whether it’s in the database and get more info about it.
  • Enrich threat intelligence workflows: Integrate real-time malicious resource lookups into your SIEM, SOAR, or TIP to automatically flag known-bad indicators as they surface.
  • Monitor exposure across your environment: Check whether resources already in use in your organization have been flagged since you last reviewed them.
  • Vet assets before they’re installed: Query before accepting a package or extension suggested by an AI coding assistant.
  • Scan dependencies in CI/CD: Catch malicious packages before they reach production by querying OSM as part of your build pipeline.
Endpoint
Required header

Query parameters

Responses

Malicious resource found - all versions malicious

A blank version_info field or a null response also indicates that all versions are malicious.

Malicious resource found - select versions malicious

Resource not found

401 — Missing API token

401 — Invalid or inactive token

400 — Invalid or missing report_type

400 — Missing resource_identifier

400 — Invalid repository format

500 — Database query failed

Examples

The following examples use real assets from the OpenSourceMalware threat database. Each one returns "malicious": true so you can see what a full response looks like across different resource types.
Examples use $OSM_API_KEY as an environment variable. Replace it with your token directly if you haven’t set one up.

npm package: @tallyui/database

For scoped npm packages (those with an @org/name format), URL-encode the @ as %40 and the / as %2F in the resource_identifier.

VS Code extension: nrwl.angular-console

Container image: aquasec/trivy

Repository: hxxps://github[.]com/Yassin-Younis/bypass-in-app-browser

The resource_identifier must be the full repository URL including https://. URL-encode the full value before passing it as a query parameter.

Domain: server-genimi-check[.]vercel[.]app

Pass only the domain, without a protocol or path.

URL

Check a specific URL for malicious content such as phishing pages or malware delivery endpoints.

IP address

Check IP addresses associated with C2 infrastructure, attack sources, or other malicious network activity.

Crypto wallet

Check cryptocurrency wallet addresses linked to ransomware payments, extortion campaigns, or other attacks.

Using check-malicious with AI coding assistants

AI coding assistants like Claude, GitHub Copilot, and Cursor suggest and install open-source dependencies as part of their workflow, often without any malicious resource checking. Since these tools generate and execute package installation commands directly, a malicious package recommendation gets installed as fast as a legitimate one. Before accepting a dependency suggestion from an AI coding assistant, run a quick check against the OSM database. Pass the package name and ecosystem to /check-malicious and confirm the response returns "malicious": false before installing.
This is particularly important in agentic coding environments where the assistant is operating with more autonomy, writing code, resolving dependencies, and running commands with less human review at each step. The faster the assistant moves, the more important it is to have checks in the loop. You can also build this check into your workflow by wrapping your package manager commands in a simple script that queries OSM before allowing an install to proceed, giving you a lightweight safeguard without changing how you work with your AI tools.