TheDocumentation Index
Fetch the complete documentation index at: https://docs.opensourcemalware.com/llms.txt
Use this file to discover all available pages before exploring further.
anomali-feed endpoint emits a STIX 2.1 bundle designed as a direct replacement for the threat-feed → Tines → Anomali pipeline. For each verified threat in the time window, it returns one x-malicious-package Custom Object, one indicator SDO per IOC, and relationship SROs linking them.
Subscription Required: This is a paid endpoint available to Researcher Pro and Enterprise users.
- Replace your Anomali ingest pipeline: Import OSM threat intelligence directly into Anomali ThreatStream without intermediate tooling.
- Stay current with a rolling window: Poll on a schedule using the
hoursparameter to ingest only threats verified within your chosen time window. - Ingest IOC-level indicators: Receive one STIX indicator SDO per IOC attached to each threat, ready for automated detection and blocking rules.
?apikey=osm_your_token
Pro Role Required Requires the ‘pro’ role (admin/editor also qualify). Contact an administrator if you receive a 403.
Query parameters
ecosystem is required. Package registry (npm, pypi, rubygems, etc.) or the special values repositories / domains.
hours is optional. Rolling time window in hours. Integer 1–24, defaults to 1. Filters on verified_at = now() - hours.
Bundle shape
Content-Type: application/stix+json;version=2.1
Every bundle contains, in order:
- One
marking-definitionSDO for TLP:WHITE (referenced viaobject_marking_refs). - For each verified threat in the window: one
x-malicious-packageCustom Object (STIX 2.1 §11.2). Threats with zero IOCs still appear as a Custom Object with no associated indicators. - For each IOC attached to a threat (mappable types only): one indicator SDO with the appropriate STIX pattern, plus one relationship SRO (
related-to) linking the indicator to its Custom Object. The Custom Object also carries anx_object_refsarray listing all of its indicator IDs as a redundant association hint for tools that don’t process the SROs.
created_by_ref points to the stable OSM producer identity identity--b4a2a0a6-1f4e-4f2c-9c6a-7f1d2c5a0b10. The identity SDO itself is not bundled — including it triggers UUID-conflict errors in Anomali ThreatStream on repeated polls. Consumers that want to resolve the reference can register that identity once in their environment.
IOC types wallet_address, file_path, and other are skipped (no clean STIX SCO). All others are mapped as follows:
ioc_type | STIX pattern |
|---|---|
ip_address | [ipv4-addr:value = '…'] |
domain | [domain-name:value = '…'] |
url | [url:value = '…'] |
file_hash_md5 | [file:hashes.'MD5' = '…'] |
file_hash_sha1 | [file:hashes.'SHA-1' = '…'] |
file_hash_sha256 | [file:hashes.'SHA-256' = '…'] |
email_address | [email-addr:value = '…'] |
c2_server | inferred: ipv4-addr / ipv6-addr / domain-name / url |
registry_key | [windows-registry-key:key = '…'] |
github_user | [url:value = 'https://github.com/…'] |
github_repo | [url:value = 'https://github.com/…'] |
npm_user | [url:value = 'https://www.npmjs.com/~…'] |
npm_package | [url:value = 'https://registry.npmjs.org/…'] |
pypi_package | [url:value = 'https://pypi.org/project/…/'] |
wallet_address / file_path / other | skipped |
Response example
cURL example
Rate limits
- Pro users: 180 requests per minute
- Admin / Editor: 360 requests per minute
- Per-IP: 500 requests per 15 minutes

