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 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 -e ".[dev]"

Requires Python 3.14+. Runtime dependencies are httpx and click.


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.0.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.0-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hybridanalysis-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 47fa6d8751f10189a8db5097d3c6f21239d7f657651635c78c3c14b08036991f
MD5 8a415c4306c50bff1fee01d1e1b0747f
BLAKE2b-256 f6db49d9740faef36e833b7bc81b597fe4f9538420d328c323d453273f3acfff

See more details on using hashes here.

Provenance

The following attestation bundles were made for hybridanalysis-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: hybridanalysis-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 27.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42b022cd9513518a2a59f4e0d55a1d8e281ba2bd774ed7f3e030d0ac167ddcee
MD5 d12453efdc9ee35c7602abd98cf89334
BLAKE2b-256 cdae3ef349fccd4796d11729447c73495856be80f11d7bf44f6e368dc0ffee29

See more details on using hashes here.

Provenance

The following attestation bundles were made for hybridanalysis-0.1.0-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

0.1.1

2 files

This release

0.1.0 This release

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