# PyIntelOwl
[](https://badge.fury.io/py/pyintelowl)
[](https://pypi.python.org/pypi/pyintelowl/)
[](https://github.com/intelowlproject/pyintelowl/actions/workflows/pull_request_automation.yml)
[](https://codecov.io/gh/intelowlproject/pyintelowl)
[](https://www.codefactor.io/repository/github/intelowlproject/pyintelowl)
Robust Python **SDK** and **Command Line Client** for interacting with [IntelOwl](https://github.com/intelowlproject/IntelOwl)'s API.
## Features
- Easy one-time configuration with self documented help and hints along the way.
- Request new analysis for observables and files.
- Select which analyzers you want to run for every analysis you perform.
- Choose whether you want to HTTP poll for the analysis to finish or not.
- List all jobs or view one job in a prettified tabular form.
- List all tags or view one tag in a prettified tabular form.
## Demo
[](https://asciinema.org/a/z7L93lsIzOQ0Scve7hMl30mJJ?t=5)
## Installation
```bash
$ pip3 install pyintelowl
```
For development/testing, `pip3 install pyintelowl[dev]`
## Quickstart
### As Command Line Client
On successful installation, The `pyintelowl` entryscript should be directly invokable. For example,
```bash
$ pyintelowl
Usage: pyintelowl [OPTIONS] COMMAND [ARGS]...
Options:
-d, --debug Set log level to DEBUG
--version Show the version and exit.
-h, --help Show this message and exit.
Commands:
analyse Send new analysis request
analyzer-healthcheck Send healthcheck request for an analyzer...
config Set or view config variables
connector-healthcheck Send healthcheck request for a connector
jobs Manage Jobs
tags Manage tags
```
### As a library / SDK
```python
from pyintelowl import IntelOwl
obj = IntelOwl("<your_api_key>", "<your_intelowl_instance_url>", "optional<path_to_pem_file>", "optional<proxies>")
```
For more comprehensive documentation, please see https://intelowlproject.github.io/docs/pyintelowl/.
## Changelog
View [CHANGELOG.md](https://github.com/intelowlproject/pyintelowl/blob/master/.github/CHANGELOG.md).
## How to generate an API key
You need a valid API key to interact with the IntelOwl server.
Keys can be created from the "API access" section of the user's menu in the IntelOwl's GUI.

Otherwise, you can create them from the Django Admin Interface of the IntelOwl application with an administration account. Section "Durin" -> "Auth tokens"
Raw data
{
"_id": null,
"home_page": "https://github.com/intelowlproject/pyintelowl",
"name": "pyintelowl",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "intelowl sdk python command line osint threat intel malware",
"author": "Matteo Lodi",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/a9/b4/8efcfc4c239d8b1311e23432bd61a59e56e9c91c3bca1c1d568463683a1c/pyintelowl-5.0.2.tar.gz",
"platform": null,
"description": "# PyIntelOwl\n\n[](https://badge.fury.io/py/pyintelowl)\n[](https://pypi.python.org/pypi/pyintelowl/)\n\n[](https://github.com/intelowlproject/pyintelowl/actions/workflows/pull_request_automation.yml)\n[](https://codecov.io/gh/intelowlproject/pyintelowl)\n[](https://www.codefactor.io/repository/github/intelowlproject/pyintelowl)\n\nRobust Python **SDK** and **Command Line Client** for interacting with [IntelOwl](https://github.com/intelowlproject/IntelOwl)'s API.\n\n## Features\n\n- Easy one-time configuration with self documented help and hints along the way.\n- Request new analysis for observables and files.\n - Select which analyzers you want to run for every analysis you perform.\n - Choose whether you want to HTTP poll for the analysis to finish or not.\n- List all jobs or view one job in a prettified tabular form.\n- List all tags or view one tag in a prettified tabular form.\n\n## Demo\n\n[](https://asciinema.org/a/z7L93lsIzOQ0Scve7hMl30mJJ?t=5)\n\n## Installation\n\n```bash\n$ pip3 install pyintelowl\n```\n\nFor development/testing, `pip3 install pyintelowl[dev]`\n\n## Quickstart\n\n### As Command Line Client\n\nOn successful installation, The `pyintelowl` entryscript should be directly invokable. For example,\n\n```bash\n$ pyintelowl\nUsage: pyintelowl [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n -d, --debug Set log level to DEBUG\n --version Show the version and exit.\n -h, --help Show this message and exit.\n\nCommands:\n analyse Send new analysis request\n analyzer-healthcheck Send healthcheck request for an analyzer...\n config Set or view config variables\n connector-healthcheck Send healthcheck request for a connector\n jobs Manage Jobs\n tags Manage tags\n```\n\n### As a library / SDK\n\n```python\nfrom pyintelowl import IntelOwl\nobj = IntelOwl(\"<your_api_key>\", \"<your_intelowl_instance_url>\", \"optional<path_to_pem_file>\", \"optional<proxies>\")\n```\n\nFor more comprehensive documentation, please see https://intelowlproject.github.io/docs/pyintelowl/.\n\n## Changelog\n\nView [CHANGELOG.md](https://github.com/intelowlproject/pyintelowl/blob/master/.github/CHANGELOG.md).\n\n\n## How to generate an API key\n\nYou need a valid API key to interact with the IntelOwl server.\nKeys can be created from the \"API access\" section of the user's menu in the IntelOwl's GUI.\n\n\n\nOtherwise, you can create them from the Django Admin Interface of the IntelOwl application with an administration account. Section \"Durin\" -> \"Auth tokens\"\n",
"bugtrack_url": null,
"license": null,
"summary": "Robust Python SDK and CLI for IntelOwl's API",
"version": "5.0.2",
"project_urls": {
"Documentation": "https://github.com/intelowlproject/pyintelowl",
"Funding": "https://opencollective.com/intelowl-project",
"Homepage": "https://github.com/intelowlproject/pyintelowl",
"Source": "https://github.com/intelowlproject/pyintelowl",
"Tracker": "https://github.com/intelowlproject/pyintelowl/issues"
},
"split_keywords": [
"intelowl",
"sdk",
"python",
"command",
"line",
"osint",
"threat",
"intel",
"malware"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "be20738550fa9db93b5dc1901429d88744114e4c09586b2650c259a277a3871e",
"md5": "0601e5e8eecbe5f968b18d87d6ca592b",
"sha256": "c08872ece461c00bd15818e24d3c25eee4ddaa73bae61ee0eef981481d2db79a"
},
"downloads": -1,
"filename": "pyintelowl-5.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0601e5e8eecbe5f968b18d87d6ca592b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 44413,
"upload_time": "2024-08-29T09:28:45",
"upload_time_iso_8601": "2024-08-29T09:28:45.582596Z",
"url": "https://files.pythonhosted.org/packages/be/20/738550fa9db93b5dc1901429d88744114e4c09586b2650c259a277a3871e/pyintelowl-5.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a9b48efcfc4c239d8b1311e23432bd61a59e56e9c91c3bca1c1d568463683a1c",
"md5": "3ee01d81ed92a404020db71d050c84e2",
"sha256": "73652c0efd336685ff6710264799454bbb995e02cf20fec5ba5a98e2feb6f65c"
},
"downloads": -1,
"filename": "pyintelowl-5.0.2.tar.gz",
"has_sig": false,
"md5_digest": "3ee01d81ed92a404020db71d050c84e2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 41872,
"upload_time": "2024-08-29T09:28:46",
"upload_time_iso_8601": "2024-08-29T09:28:46.893591Z",
"url": "https://files.pythonhosted.org/packages/a9/b4/8efcfc4c239d8b1311e23432bd61a59e56e9c91c3bca1c1d568463683a1c/pyintelowl-5.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-29 09:28:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "intelowlproject",
"github_project": "pyintelowl",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [
{
"name": "requests",
"specs": [
[
">=",
"2.28"
]
]
},
{
"name": "geocoder",
"specs": [
[
">=",
"1.38"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"7.0"
]
]
},
{
"name": "rich",
"specs": [
[
">=",
"12.5.1"
]
]
},
{
"name": "click-creds",
"specs": [
[
">=",
"0.0.3"
]
]
},
{
"name": "typing_extensions",
"specs": [
[
">=",
"4.3.0"
]
]
}
],
"tox": true,
"lcname": "pyintelowl"
}