Skip to main content

OpenCTI client for Python

Website readthedocs Number of PyPI downloads Slack Status

The official OpenCTI Python client helps developers to use the OpenCTI API by providing easy to use methods and utils. This client is also used by some OpenCTI components.

Install

To install the latest Python client library, please use pip:

$ pip3 install pycti

Local development

# Fork the current repository, then clone your fork
$ git clone https://github.com/YOUR-USERNAME/opencti.git
$ cd client-python
$ git remote add upstream https://github.com/OpenCTI-Platform/opencti.git
# Create a branch for your feature/fix
$ git checkout -b [branch-name]
# Create a virtualenv
$ cd client-python
$ python3 -m venv .venv
$ source .venv/bin/activate
# Install the client-python and dependencies for the development and the documentation
$ python3 -m pip install -e .[dev,doc]
# Set up the git hook scripts
$ pre-commit install
# Create your feature/fix
# Create tests for your changes
$ pytest
# Push you feature/fix on Github
$ git add [file(s)]
$ git commit -m "[descriptive message]"
$ git push origin [branch-name]
# Open a pull request

Install the package locally

$ pip install -e .

Documentation

Client usage

To learn about how to use the OpenCTI Python client and read some examples and cases, refer to the client documentation.

API reference

To learn about the methods available for executing queries and retrieving their answers, refer to the client API Reference.

Tests

Install dependencies

$ pip install -r ./test-requirements.txt

pytest is used to launch the tests.

Launch tests

Prerequisite

Your OpenCTI API should be running. Your conftest.py should be configured with your API url, your token, and if applicable, your mTLS cert/key.

Launching

Unit tests

$ pytest ./tests/01-unit/

Integration testing

$ pytest ./tests/02-integration/

Example testing:

OpenCTI must be running

cd examples
# Configure with you local instance of OpenCTI
export OPENCTI_API_URL="http://localhost:4000"
export OPENCTI_API_TOKEN="xxxxxxxxxxxxxxxxxxxxxx"

#Run one example file
python get_indicators_of_malware.py

About

OpenCTI is a product designed and developed by the company Filigran.

Metadata

Release files for pycti 7.261030.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycti 7.261030.0
File Size Uploaded Provenance Actions
pycti-7.261030.0.tar.gz 282.6 kB Without provenance Details for pycti-7.261030.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pycti 7.261030.0
File Interpreter ABI Platform Actions
pycti-7.261030.0-py3-none-any.whl Python 3 none any Details for pycti-7.261030.0-py3-none-any.whl

Total release size: 659.3 kB

Release files / pycti-7.261030.0.tar.gz

Download URL pycti-7.261030.0.tar.gz
Size 282.6 kB
Tags Source
SHA-256 checksum
How to use checksums
75e5a75d4c3ec5b4e0d1e7aa2d2d2862097f0d87c9ad190388cd3f51df482acb
BLAKE2b-256 checksum
How to use checksums
9b5b7e2878c2f9a3a05ea41d2ccfbf4abd4c1b034719bdb59b89e346d29438f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Release files / pycti-7.261030.0-py3-none-any.whl

Download URL pycti-7.261030.0-py3-none-any.whl
Size 376.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5f322602a7397decc1543dc67591d740afe140f41f928f628f0ef7da80e498c
BLAKE2b-256 checksum
How to use checksums
acd014ba0e873eaef563e103590da0264cdd87507561962a6864cc02bff709c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Security for pycti 7.261030.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

7.261030.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page