Skip to main content

Biometric Fetch 🚀

The ultimate universal wrapper for fetching attendance & user data from 50+ biometric devices.
(ZKTeco, eSSL, SecureEye, Hikvision, Suprema, IDEMIA, Nitgen, and more!)


What is Biometric Fetch?

Historically, interacting with biometric machines requires downloading confusing vendor SDKs, dealing with messy DLL segmentation faults, studying raw Socket connections, or writing massive API XML wrappers.

biometric-fetch solves this by acting as a universal "Factory Pattern". You write 3 lines of Python code using one standard interface, and we automatically handle the underlying protocol (TCP/IP, REST API, or SDK Binding) securely under the hood.

We even natively convert all raw device logs directly into beautiful Pandas DataFrames! 📊

⚙️ Installation

Install effortlessly via PyPI:

pip install biometric-fetch

(This automatically installs our dependencies: pyzk, pandas, requests, and openpyxl)


⚡ Quick Start

1. Connecting via TCP/IP (ZKTeco, eSSL, Secureye, etc)

The most common biometric devices run on port 4370.

from biometric_fetch import BiometricDevice

# The factory seamlessly invokes the TCP/IP backend
device = BiometricDevice(brand="zkteco", ip="192.168.1.201")
device.connect()

# Fetch array of User Objects
users = device.get_users()
print(users)

2. Outputting as Pandas DataFrames! 🐼

Stop looping through messy strings. Enable as_dataframe=True to immediately deploy data analytics.

df = device.get_attendance(as_dataframe=True)

# You now have a clean, formatted table of all punches
print(df.head())
# df.to_csv("attendance_logs.csv") # One-line export!

🔌 Advanced Protocols Supported

The wrapper natively understands completely different networking protocols under the exact same class commands!

Accessing REST APIs (Hikvision, Suprema)

Many modern IP access control panels require complex HTTP Digest Auth and Token sessions. We map that directly:

# Hikvision uses ISAPI JSON structures under the hood
hik_device = BiometricDevice(brand="hikvision", ip="192.168.1.100", api_key="admin_password123!")
hik_device.connect()

attendance_df = hik_device.get_attendance(as_dataframe=True)

Accessing C-SDK DLLs (Nitgen, IDEMIA)

Requires physical .dll loading? We use ctypes.WinDLL to bind memory safely without Segment Faulting your Python instance.

# Natively looks for C:\Windows\System32\NBioBSP.dll or SecuAPI.dll
sdk_device = BiometricDevice(brand="nitgen", ip="192.168.1.50")

💾 Offline USB Extraction

If a network cable breaks, staff pull the data via Pen Drive. biometric-fetch parses raw machine outputs natively:

from biometric_fetch import usb

# Point it to your USB folder. It automatically hunts for .csv and .dat logs!
usb_logs = usb.read_usb("D:/Biometric_Exports", as_dataframe=True)
print(usb_logs)

Enterprise Ready (Zero-Crash Guarantee)

This library is built for stable deployment in HR environments.

  • Fail-Safe: If a device IP unexpectedly goes offline, your application won't suffer a stack-trace crash. The library safely catches the timeout and returns a standard Empty DataFrame!
  • Semantic Logging: No messy print() statements. Customize the silent logging module so you can record device drops behind the scenes.

🤝 Supported Brands Roadmap

Protocol Architecture Tested Brands
TCP/IP (pyzk wrapper) ZKTeco, eSSL, SecureEye, Realtime, BioMax, FingerTec
HTTP/REST APIs Hikvision (ISAPI), Suprema (BioStar), Matrix, HID, Anviz
C/C++ SDK Bindings IDEMIA, Nitgen, Fujitsu, Cogent

License: MIT Authors: Rishabh & Shreya

Metadata

Release files for biometric-fetch 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for biometric-fetch 0.1.0
File Size Uploaded
biometric_fetch-0.1.0.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for biometric-fetch 0.1.0
File Interpreter ABI Platform
biometric_fetch-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.6 kB

Release files / biometric_fetch-0.1.0.tar.gz

Download URL biometric_fetch-0.1.0.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4aee69f616cd162b276b460f87ca64551a06a26e683fe6acbe24106b11f61318
BLAKE2b-256 checksum
How to use checksums
011e8ca973bb0f1c7ab9ab3f2974f773ce6f1601a07a8414621e5f48771deb4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release files / biometric_fetch-0.1.0-py3-none-any.whl

Download URL biometric_fetch-0.1.0-py3-none-any.whl
Size 10.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
327e484d6d80676a571e26a92d7304581fb91a191e8b10da1af5ce1d52423c41
BLAKE2b-256 checksum
How to use checksums
427c2e2877da5bca5537989788c86658e49960f79bc1d1ab0e385ed5eafe19cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page