{"id":24188,"library":"otxv2","title":"AlienVault OTX Python SDK","description":"Official Python SDK for AlienVault OTX (Open Threat Exchange) API. Current version 1.5.12, maintained by AT&T Cybersecurity. Provides access to pulses, indicators, and threat intelligence feeds. Release cadence is irregular with periodic bugfixes and feature additions.","status":"active","version":"1.5.12","language":"python","source_language":"en","source_url":"https://github.com/AlienVault-Labs/OTX-Python-SDK","tags":["threat intelligence","otx","alienvault","api","security"],"install":[{"cmd":"pip install otxv2","lang":"bash","label":"PyPI install"}],"dependencies":[{"reason":"HTTP client for API calls","package":"requests","optional":false},{"reason":"Date parsing for pulse timestamps","package":"python-dateutil","optional":false}],"imports":[{"note":"Module name is case-sensitive: OTXv2, not otxv2.","wrong":"from otxv2 import OTXv2","symbol":"OTXv2","correct":"from OTXv2 import OTXv2"},{"note":null,"wrong":null,"symbol":"IndicatorTypes","correct":"from OTXv2 import IndicatorTypes"}],"quickstart":{"code":"from OTXv2 import OTXv2\nfrom OTXv2 import IndicatorTypes\n\notx = OTXv2('YOUR_API_KEY')\n# Get pulses by user\npulses = otx.getall(limit=10)\nfor pulse in pulses:\n    print(pulse['name'])\n# Search for indicators\nresults = otx.search_pulses('malware')\nprint(len(results))","lang":"python","description":"Initialize with API key, fetch user pulses, and search for pulses by keyword."},"warnings":[{"fix":"Use correct case: `from OTXv2 import OTXv2`.","message":"The module name is case-sensitive: `from OTXv2 import OTXv2`, not `otxv2`. Many users incorrectly import using lowercase and get ImportError.","severity":"gotcha","affected_versions":"all"},{"fix":"Explicitly pass `limit` parameter to `getall()` or `search_pulses()` to control page size.","message":"In version 1.5.11, default page limit sizes were changed, which may cause scripts expecting a different default limit to receive fewer or more results.","severity":"breaking","affected_versions":">=1.5.11"},{"fix":"Upgrade to >=1.5.6 to use `include_inactive=True`.","message":"The `get_pulse_indicators` method's `include_inactive` parameter was added in 1.5.6. Older versions do not have it, and omitting it only returns active indicators.","severity":"deprecated","affected_versions":"<1.5.6"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from OTXv2 import OTXv2` (note capital O, T, X, v, 2).","cause":"Attempted import using all-lowercase module name.","error":"ModuleNotFoundError: No module named 'otxv2'"},{"fix":"Ensure you provide a valid API key to the OTXv2 constructor. Obtain from https://otx.alienvault.com.","cause":"Invalid or missing API key when making requests.","error":"OTXv2.exceptions.BadRequest: 400 Client Error: Bad Request"},{"fix":"Upgrade to version 1.5.8 or later: `pip install --upgrade otxv2`.","cause":"Method `search_pulses` was added in version 1.5.8. Using an older version.","error":"AttributeError: 'OTXv2' object has no attribute 'search_pulses'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}