Python SDK for the AccessGrid API
Project description
AccessGrid SDK
A Python SDK for interacting with the AccessGrid.com API. This SDK provides a simple interface for managing NFC key cards and enterprise templates. Full docs at https://www.accessgrid.com/docs
Installation
pip install accessgrid
Quick Start
from accessgrid import AccessGrid
account_id = os.environ.get('ACCOUNT_ID')
secret_key = os.environ.get('SECRET_KEY')
client = AccessGrid(account_id, secret_key)
API Reference
Access Cards
Provision a new card
card = client.access_cards.provision(
card_template_id="0xd3adb00b5",
employee_id="123456789",
allow_on_multiple_devices=True,
full_name="Employee name",
email="employee@yourwebsite.com",
phone_number="+19547212241",
classification="full_time",
start_date="2025-01-31T22:46:25.601Z",
expiration_date="2025-04-30T22:46:25.601Z",
employee_photo="[image_in_base64_encoded_format]"
)
Update a card
card = client.access_cards.update(
card_id="0xc4rd1d",
employee_id="987654321",
full_name="Updated Employee Name",
classification="contractor",
expiration_date="2025-02-22T21:04:03.664Z",
employee_photo="[image_in_base64_encoded_format]"
)
List NFC keys / Access passes
# List all cards for a template
cards = client.access_cards.list(template_id="0xd3adb00b5")
for card in cards:
print(card) # Outputs: AccessCard(name='Employee Name', id='0xc4rd1d', state='active')
# Filter cards by state
active_cards = client.access_cards.list(template_id="0xd3adb00b5", state="active")
Manage card states
# Suspend a card
client.access_cards.suspend(card_id="0xc4rd1d")
# Resume a card
client.access_cards.resume(card_id="0xc4rd1d")
# Unlink a card
client.access_cards.unlink(card_id="0xc4rd1d")
# Delete a card
client.access_cards.delete(card_id="0xc4rd1d")
Enterprise Console
Create a template
template = client.console.create_template(
name="Employee NFC key",
platform="apple",
use_case="employee_badge",
protocol="desfire",
allow_on_multiple_devices=True,
watch_count=2,
iphone_count=3,
design={
"background_color": "#FFFFFF",
"label_color": "#000000",
"label_secondary_color": "#333333",
"background_image": "[image_in_base64_encoded_format]",
"logo_image": "[image_in_base64_encoded_format]",
"icon_image": "[image_in_base64_encoded_format]"
},
support_info={
"support_url": "https://help.yourcompany.com",
"support_phone_number": "+1-555-123-4567",
"support_email": "support@yourcompany.com",
"privacy_policy_url": "https://yourcompany.com/privacy",
"terms_and_conditions_url": "https://yourcompany.com/terms"
}
)
Update a template
template = client.console.update_template(
card_template_id="0xd3adb00b5",
name="Updated Employee NFC key",
allow_on_multiple_devices=True,
watch_count=2,
iphone_count=3,
support_info={
"support_url": "https://help.yourcompany.com",
"support_phone_number": "+1-555-123-4567",
"support_email": "support@yourcompany.com",
"privacy_policy_url": "https://yourcompany.com/privacy",
"terms_and_conditions_url": "https://yourcompany.com/terms"
}
)
Read a template
template = client.console.read_template(card_template_id="0xd3adb00b5")
Get event logs
from datetime import datetime, timedelta
events = client.console.event_log(
card_template_id="0xd3adb00b5",
filters={
"device": "mobile", # "mobile" or "watch"
"start_date": (datetime.now() - timedelta(days=30)).isoformat(),
"end_date": datetime.now().isoformat(),
"event_type": "install"
}
)
Configuration
The SDK can be configured with custom options:
client = AccessGrid(
account_id,
secret_key
)
Error Handling
The SDK throws errors for various scenarios including:
- Missing required credentials
- API request failures
- Invalid parameters
- Server errors
Example error handling:
try:
card = client.access_cards.provision(
# ... parameters
)
except AccessGridError as error:
print(f'Failed to provision card: {str(error)}')
Requirements
- Python 3.7 or higher
- Required packages:
- requests
- cryptography
- python-dateutil
Security
The SDK automatically handles:
- Request signing using HMAC-SHA256
- Secure payload encoding
- Authentication headers
- HTTPS communication
Never expose your secret_key in source code. Always use environment variables or a secure configuration management system.
License
MIT License - See LICENSE file for details.
Project details
Release history Release notifications | RSS feed
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 accessgrid-0.1.6.tar.gz.
File metadata
- Download URL: accessgrid-0.1.6.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
140f9b132541c21020f64015dfc5f683d25ec2a7821e55f7bab0237ea795712c
|
|
| MD5 |
dc589de69e62ebce34aeec4bac1c8d0f
|
|
| BLAKE2b-256 |
a28595d4c57e512aee8f1a030a6ebd96c0c5a35035311fd332aa1a5aaa5c1eb9
|
File details
Details for the file accessgrid-0.1.6-py3-none-any.whl.
File metadata
- Download URL: accessgrid-0.1.6-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eaee3700f08ec7ea90685dcbb8ea4dde36b900a9e6882618da32ca841ed1198
|
|
| MD5 |
12774e3c4dfd4b988c6a4b79993d9386
|
|
| BLAKE2b-256 |
bb20a783414967725c3d61b55656be7bfacc94d416e47e0a9e21dcabac76f479
|