McritClient class provides a Python interface to interact with the MCRIT REST API. It supports all backend operations including sample submission, querying, matching, and data management.
Installation
Install MCRIT to get the client library:Basic Usage
Initialization
Configuration
You can update credentials after initialization:Status and Version
Get Server Status
Get Server Version
Sample Submission
Submit SMDA Report
Submit Binary Sample
Submit Memory Dump
Working with Families
Get Family Information
Check if Family Exists
Modify Family
Delete Family
Working with Samples
Get Sample Information
Check if Sample Exists
Modify Sample Metadata
Delete Sample
Working with Functions
Get Function Information
Check if Function Exists
Matching and Queries
Request Matches for Sample
Query with SMDA Report
Query with Binary
Match Sample vs Sample
Cross Matching
Function-Level Matching
Query by Hash
Function vs Function Matching
Job Management
Get Job Information
Get Queue Statistics
Delete Jobs
Wait for Results
Get Results
Search
Search Families
Search Samples
Search Functions
Data Import/Export
For details on import and export operations, see the Data Import/Export Guide.Export Data
Import Data
Unique Blocks
Find Unique Blocks in Samples
Find Unique Blocks for Family
Maintenance Operations
Rebuild Index
Complete MinHashes
Recalculate Hashes
Respawn Workers
Error Handling
Raw Response Mode
Get raw HTTP responses for custom processing:Best Practices
Connection Management
Connection Management
- Reuse the same
McritClientinstance for multiple operations - Set appropriate timeouts for long-running operations
- Use API tokens for authentication in production environments
Job Management
Job Management
- Use
awaitResult()to wait for asynchronous jobs to complete - Set appropriate
sleep_timeto balance responsiveness and server load - Use
compact=Truefor large result sets to reduce memory usage
Batch Operations
Batch Operations
- Use
getFunctionsByIds()instead of multiplegetFunctionById()calls - Process samples in batches for better performance
- Use
force_recalculation=Falseto leverage cached results
Search Pagination
Search Pagination
- Use cursors for paginating through large result sets
- Keep the same
search_term,is_ascending, andsort_bywhen using cursors - Set appropriate
limitvalues to avoid overwhelming the client
See Also
- CLI Guide - Command-line interface
- Data Import/Export - Bulk data operations
- IDA Plugin - IDA Pro integration