Skip to main content

hybridanalysis

hybridanalysis

Python library and CLI for the Hybrid Analysis (Falcon Sandbox) API v2

Python Versions License Coverage Typed Async

GitHub Stars GitHub Issues Buy Me a Coffee


Overview

hybridanalysis is a Python toolkit to submit samples to and query the Hybrid Analysis (Falcon Sandbox) service through its API v2. It ships both a synchronous and an asynchronous client with identical surfaces, a full-featured CLI, and a typed exception hierarchy — covering every current (non-deprecated) endpoint across all ten API tags.

Key Features

Feature Description
Full API coverage Every current v2 endpoint across feed, key, overview, quick-scan, submit, report, search, file-collection, abuse-reports, system
Sync + Async HybridAnalysisClient (httpx) and AsyncHybridAnalysisClient (httpx async) with the same methods
CLI + Library Use as the hybridanalysis command-line tool or as a Python package
Rich search Query by domain, host/IP, URL, malware family, tag, MITRE ATT&CK technique, hash-similarity and more
File submission Full sandbox and quick-scan multipart uploads
Multiple output formats JSON, token-efficient TOON, and SARIF 2.1.0 for analysis results (--format)
Flexible config Environment variables or a local TOML file

Supported Surface

Clients      HybridAnalysisClient (sync), AsyncHybridAnalysisClient (async)
Tags         feed · key · overview · quick-scan · submit · report
             search · file-collection · abuse-reports · system
Downloads    sample, pcap, certificate, dropped files, memory strings (bytes/text)
Config       HYBRIDANALYSIS env var · ~/.config/hybridanalysis/config.toml
Errors       AuthenticationError · NotFoundError · RateLimitError · APIError
             NetworkError · ConfigError (all subclass HybridAnalysisError)

Installation

From PyPI

pip install hybridanalysis

From Source

git clone https://github.com/seifreed/hybridanalysis.git
cd hybridanalysis
python3.14 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt  # runtime + dev tooling; use `pip install -e .` for runtime only

Requires Python 3.14+. Runtime dependencies are httpx, click, and toon-format.


Configuration

The API key is resolved from, in order:

  1. The HYBRIDANALYSIS environment variable.

  2. A local TOML file — ./.hybridanalysis.toml or ~/.config/hybridanalysis/config.toml:

    [hybridanalysis]
    api_key = "your-api-key"
    # base_url   = "https://hybrid-analysis.com/api/v2"  # optional
    # user_agent = "Falcon Sandbox"                      # optional
    # timeout    = 60                                    # optional, seconds
    

Every field also has an environment variable that takes precedence over the file: HYBRIDANALYSIS_URL, HYBRIDANALYSIS_USER_AGENT, and HYBRIDANALYSIS_TIMEOUT.


Quick Start

export HYBRIDANALYSIS="your-api-key"

# System / key info
hybridanalysis system version
hybridanalysis key current

# Submit a sample and poll its report
hybridanalysis submit file sample.exe environment_id=160
hybridanalysis report summary <job-id>

Usage

Command Line Interface

# Look up a hash (any format -> SHA256) and its reports
hybridanalysis search hash <md5|sha1|sha256>

# Search by behaviour / infrastructure
hybridanalysis search terms host=8.8.8.8
hybridanalysis search terms vx_family=nemucod verdict=5
hybridanalysis search terms uses_technique=T1055

# Submit for analysis
hybridanalysis submit file sample.exe environment_id=160
hybridanalysis quick-scan file sample.exe --scan-type all

# Download binary artifacts (to a file, or stdout when --out is omitted)
hybridanalysis report pcap <job-id> --out capture.pcap
hybridanalysis overview sample <sha256> --out sample.gz

--api-key, --base-url, and --config override the resolved configuration. python -m hybridanalysis works as an alternative to the hybridanalysis command.

Output Formats

Every JSON-returning command accepts -f / --format:

hybridanalysis overview get <sha256> --format toon    # token-efficient JSON
hybridanalysis report summary <job-id> --format sarif # SARIF 2.1.0 findings
Format Available on Description
json all commands (default) Indented JSON.
toon all commands TOON — a compact, lossless JSON encoding that uses fewer tokens.
sarif analysis commands (feed, overview, search, quick-scan, report) SARIF 2.1.0: the verdict and each signatures[] entry become results, with levels derived from the verdict / threat level. The artifact location is taken from the command's SHA256 / report-id argument.

Command Groups

Command Description
hybridanalysis system Instance version, environments, action scripts, stats, config, queue
hybridanalysis key API key info and submission quota
hybridanalysis feed Recent detonation and quick-scan feeds
hybridanalysis overview Aggregated report for a SHA256 (+ sample download)
hybridanalysis search Hash lookup and multi-field term search
hybridanalysis quick-scan Quick scans of files/URLs and result retrieval
hybridanalysis submit Sandbox submission of files, URLs and dropped files
hybridanalysis report Report state/summary and artifact downloads
hybridanalysis file-collection Create, search, and manage file collections
hybridanalysis abuse-reports Request report deletion; removed-hash feed

Python Library

Synchronous

from hybridanalysis import HybridAnalysisClient

with HybridAnalysisClient.from_env() as client:
    print(client.system.version())

    # Submit a file and poll its report
    submitted = client.submit.file("sample.exe", environment_id="160")
    job_id = submitted["job_id"]
    print(client.report.state(job_id))
    print(client.report.summary(job_id))

    # Download binary artifacts (returned as bytes)
    pcap = client.report.pcap(job_id)

    # Search (verdict is numeric 1-5, 5 = malicious)
    client.search.terms(filetype="peexe", verdict="5")

Asynchronous

import asyncio
from hybridanalysis import AsyncHybridAnalysisClient

async def main():
    async with AsyncHybridAnalysisClient.from_env() as client:
        print(await client.system.version())
        results = await asyncio.gather(*(client.overview.get(h) for h in hashes))

asyncio.run(main())

Errors raise subclasses of HybridAnalysisError: AuthenticationError, NotFoundError, RateLimitError, APIError, NetworkError, and ConfigError.


Requirements


Support the Project

If this project is useful in your workflows, you can support development:

Buy Me A Coffee

License

This project is licensed under the MIT license. See LICENSE.

Attribution


Built for practical malware analysis and security automation

Download files

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

Source Distribution

hybridanalysis-0.1.1.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

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

hybridanalysis-0.1.1-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file hybridanalysis-0.1.1.tar.gz.

File metadata

  • Download URL: hybridanalysis-0.1.1.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for hybridanalysis-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b4dfd3bbf6192f2b7847f7c182a7c94b98a7d10ec856c557715a4adcc0e9383c
MD5 66ff5fe669bf2118c26d8aaf1684f82b
BLAKE2b-256 9b02b09ce465073914bea652a97f44593ac086b0fe0f7bac41fdee45df9aad31

See more details on using hashes here.

Provenance

The following attestation bundles were made for hybridanalysis-0.1.1.tar.gz:

Publisher: release.yml on seifreed/hybridanalysis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hybridanalysis-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: hybridanalysis-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for hybridanalysis-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 33c91419a75db3b2aa4f075ad958b1b99e8b955c29869ef778a9c46e155b6cfe
MD5 0f8029a105719dae240cadca82545b02
BLAKE2b-256 d247f7bbd59ede102b5eb6fcd748fc890b4c07dbb20dbd7bec3e9cb5a75d69e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hybridanalysis-0.1.1-py3-none-any.whl:

Publisher: release.yml on seifreed/hybridanalysis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.2

2 files

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

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