Python SDK for the Vaarhaft FraudScanner API
Project description
WARNING:
The FraudScanner is being developed and improved constantly.
Thus, the SDK is not always up to date with the current version and may break.
If you plan on using the SDK in a production environment, or encounter any issues, please contact us.
Vaarhaft FraudScanner SDK
A modern, async-friendly Python SDK for interacting with the Vaarhaft FraudScanner API.
Pre-requisites
In order to use the Vaarhaft FraudScanner API, you need to have an API key. You can obtain one by requesting it here.
Installation
pip install vaarhaft-fraudscanner
Examples
Basic Usage
"""
Basic usage example for the Vaarhaft FraudScanner SDK.
This example demonstrates how to use the FraudScannerClient to send a request to the FraudScanner API (v2)
and access some of the relevant response contents. It also shows how to use the batch functionality
to process multiple files.
"""
import asyncio
import os
from vaarhaft.fraudscanner import FraudScannerClient, ItemIdTuple, ResultItem
async def example_usage():
"""Run a basic example of using the FraudScanner SDK."""
# Create an output directory for attachments
output_dir = os.path.join(os.path.dirname(__file__), "..", "attachments")
async with FraudScannerClient(api_key="your_api_key_here", attachments_output_dir=output_dir) as client:
# Send a request to the FraudScanner API
response = await client.send(
file_path="/path/to/your/file.zip",
case_number="My Case Number 123",
issue_date="2023-10-01",
)
# Access metainformation about the request
print(f"Status code: {response.status_code}")
print(f"Request duration: {response.duration:.2f} seconds")
# Access the raw JSON response
print(f"Raw JSON response: {response.raw_json}")
# Access textual information about received attachments
print(f"Attachments: {response.attachments}")
# Access response level fields regarding the overall response, such as the session ID
print(f"Session ID: {response.sessionId}")
# Access the number of FraudScanner API tokens consumed by the request
print(f"Number of consumed tokens: {response.tokensConsumed}")
# Access the processed 'Files' results
files_mapping: dict[str, ResultItem] = response.Files
for filename, file in files_mapping.items():
print(f"File {filename} has a total suspicion level of '{file.suspicion_level}'")
# Access all items in the response
items_mapping: dict[ItemIdTuple, ResultItem] = response.get_all_items()
for id_tuple, item in items_mapping.items():
print(
f"Item in file {id_tuple.file_name} with id {id_tuple.item_uuid} and type '{item.item_type}' has suspicion level '{item.suspicion_level}'."
)
async def example_batched():
"""Run an example of using the batch functionality to process multiple files."""
# Set the output directory path for attachments
output_dir = os.path.join(os.path.dirname(__file__), "..", "attachments")
async with FraudScannerClient(api_key="your_api_key_here", attachments_output_dir=output_dir) as client:
# Process an entire directory (containing image or document files, not zips) in batches
await client.batched(
input_dir="/path/to/your/input/directory",
output_file="/path/to/your/output/file.csv", # CSV file containing an overview of the results
case_number_base="TestBatch", # Use max. 10 characters
)
if __name__ == "__main__":
asyncio.run(example_usage())
asyncio.run(example_batched())
API Reference
FraudScannerClient
The main client for interacting with the FraudScanner API. Can be used as a context manager (async with; see example above).
client = FraudScannerClient(api_key="your_api_key", attachments_output_dir="attachments")
Parameters
api_key(str): The API key for authenticating with the FraudScanner API.attachments_output_dir(str): Directory to save attachments to.
Methods
send(case_number, file_path, issue_date=None, contact_email=None): Send a request to the FraudScanner API. Returns aFraudScannerResponseobject.batched(case_number_base, input_dir, output_file, issue_date=None, contact_email=None): Send all image and document files in a directory to the FraudScanner API. The results summarized in the specified output CSV file. Useful for getting a large amount of old cases/files into the system in bulk and without much setup.
FraudScannerResponse
The response from the FraudScanner API.
Properties
Files: A dictionary of filename to file result pairs. Contains the main results of the analyses. Refer to the API documentation for details on the structure of the results.raw_json: The raw JSON data from the response.attachments: A dictionary mapping filenames to their paths on disk.status_code: The HTTP status code of the response.duration: The duration of the request in seconds.suspicion_level: The overall suspicion level of the request.caseNumber: The case number for the analysis.sessionId: The session ID for the request.modelVersions: The versions of the models used for analysis.tokensConsumed: The number of tokens that were consumed by the request.
Methods
get_all_items(type=None): Get all items from the response, optionally filtered by type (image/document).
License
This project is licensed under the MIT License.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vaarhaft_fraudscanner-0.1.10.tar.gz.
File metadata
- Download URL: vaarhaft_fraudscanner-0.1.10.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
922f3e53383fc4e25c08084b8877edfc0f27e27ede8f02f7001cb5fa06140552
|
|
| MD5 |
8fe3b7c66f0a963b998d59715210d4f1
|
|
| BLAKE2b-256 |
18d8fe79f1e28196d0253f498d8316cb743c0fd52bb2d22761d8d54b04ff8741
|
File details
Details for the file vaarhaft_fraudscanner-0.1.10-py3-none-any.whl.
File metadata
- Download URL: vaarhaft_fraudscanner-0.1.10-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d52da6aa2890f244ea6a4e7f01d9eb30e9b822e9e46f5cc8bde0d2c66611c30
|
|
| MD5 |
e453f41cd1820f009ccbf5caf8d2d354
|
|
| BLAKE2b-256 |
a8377b576f26baf8e3a68488a7395239d894e9ff9ca26e19c3407201bd1a11b5
|