The official OpenShock Python SDK to integrate with an OpenShock backend easily. Provides a typed REST API client with planned support for live WebSocket connections.
pip install openshockfromopenshockimportOpenShockClientclient=OpenShockClient(api_token="your-api-token")
# Get backend infoinfo=client.meta.backend_info()
print(f"OpenShock {info.version}")
# List your shockersshockers=client.shockers.list_own()
# Send a vibrate commandfromopenshockimportControlclient.shockers.control([
Control(id="shocker-uuid", type="Vibrate", intensity=50, duration=1000)
])
client.close()Or use as a context manager:
withOpenShockClient(api_token="your-api-token") asclient:
stats=client.meta.online_stats()
print(f"Devices online: {stats.devices_online}")| Resource | Description | Example |
|---|---|---|
client.meta | Backend info and stats | client.meta.backend_info() |
client.account | User info and API tokens | client.account.user_self() |
client.devices | Hub (device) management | client.devices.list() |
client.shockers | Shocker CRUD, control, logs | client.shockers.control(...) |
client.shares | Public share links and codes | client.shares.list_public() |
client.user_shares | User-to-user shares (V2) | client.user_shares.get() |
client.sessions | Login session management | client.sessions.list() |
For hub/device endpoints, use OpenShockHubClient:
fromopenshockimportOpenShockHubClienthub=OpenShockHubClient(hub_token="device-token")
lcg=hub.hub.assign_lcg()
print(f"Connect to {lcg.host}:{lcg.port}")Two client types for two auth schemes:
OpenShockClient(api_token=...)— User API token (OpenShockTokenheader)OpenShockHubClient(hub_token=...)— Device token (DeviceTokenheader)
Create API tokens at openshock.app under Settings > API Tokens.
All responses are parsed into typed dataclasses:
fromopenshockimport (
BackendInfo, Stats, User, Token, Device, Shocker,
ShockerPermissions, ShockerLimits, ShockerLog, Control,
Session, PublicShare, UserShares, ShareInvite, PauseReason,
)To connect to a self-hosted instance:
client=OpenShockClient(
api_token="your-token",
base_url="https://api.your-instance.com",
)git clone https://github.com/OpenShock/SDK.Python.git
cd SDK.Python
pip install -e ".[dev]"# Format
ruff format .# Lint
ruff check .# Type check
mypy openshock/
# Test
pytest