Skip to main content

Python client for the PRODAFT CATALYST API

Project description

PRODAFT CATALYST API Client

PyPI version Python Versions License: MIT Tests

A Python client for the PRODAFT CATALYST API, enabling seamless integration with OpenCTI by converting threat intelligence data into STIX 2.1 format.

Overview

This library provides a simple interface to retrieve threat intelligence from the PRODAFT CATALYST platform and convert it into STIX 2.1 format for ingestion into OpenCTI or other threat intelligence platforms.

Key Features

  • Retrieve threat intelligence from CATALYST API
  • Extract entities (malware, threat actors, tools, etc.)
  • Convert to STIX 2.1 format for OpenCTI integration
  • Support for all CATALYST observable types
  • TLP classification support (CLEAR, GREEN, AMBER, AMBER+STRICT, RED)
  • Automatic pagination for large result sets
  • Proxy and custom logging support

Installation

pip install python-catalyst

Requirements

  • Python 3.8+
  • requests
  • stix2
  • python-dateutil
  • pycti

Basic Usage

from python_catalyst import CatalystClient, PostCategory, TLPLevel
from datetime import datetime

# Initialize client
client = CatalystClient(api_key="your_api_key")

# Get threat intelligence data
content = client.get_member_content("content_id")

# Extract entities
entities = client.extract_entities_from_member_content("content_id")

# Convert to STIX format for OpenCTI
report, stix_objects = client.create_report_from_member_content(content)

Documentation

Authentication

client = CatalystClient(
    api_key="your_api_key",
    base_url="https://prod.blindspot.prodaft.com/api"
)

Content Retrieval

The client supports various methods to retrieve threat intelligence:

  • get_member_content(content_id): Get a specific content by ID
  • get_member_contents(category, tlp, page, page_size): Get paginated content
  • get_all_member_contents(category, published_on_after, search): Get all content with automatic pagination
  • get_updated_member_contents(since, max_results): Get content updated since a specific date

Entity Extraction

entities = client.extract_entities_from_member_content("content_id")

STIX Conversion

Convert CATALYST content to STIX 2.1 objects for OpenCTI integration:

# Convert to STIX format
report, stix_objects = client.create_report_from_member_content(content)

Development

Setting up the development environment

# Clone the repository
git clone https://github.com/prodaft/python-catalyst.git
cd python-catalyst

# Install development dependencies
pip install -r requirements-dev.txt

Running tests

# Run unit tests
pytest -xvs tests/ -k "not test_integration"

# Run integration tests (requires API key)
export CATALYST_API_KEY=your_api_key
pytest -xvs tests/ --run-integration

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Support

For support or feature requests, please create an issue on the GitHub repository or contact PRODAFT.

License

Distributed under the MIT License. See LICENSE for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_catalyst-0.1.6.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_catalyst-0.1.6-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file python_catalyst-0.1.6.tar.gz.

File metadata

  • Download URL: python_catalyst-0.1.6.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for python_catalyst-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f4bf093c203d58bf321f682a4940d51c19a6d7dcb90bfa3e052480ada69c8cd4
MD5 63b0c22ad5997b96d68efcdc4303d015
BLAKE2b-256 40c1c18771e2edcfe36fec9e91cd8f947def46a8024dfca08ebe1704d245995c

See more details on using hashes here.

File details

Details for the file python_catalyst-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for python_catalyst-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e2874e78dfd23cab638ac7d43d6775d003ee203b38fb336d71fb30604bbc0f69
MD5 cf807fa653c9150dd9352f5cf3d98395
BLAKE2b-256 58358b26a14264b1efa3c83cfef1724381012bb699c7c3825f61c0f183d33130

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page