Skip to main content

Official Python SDK for the MachineID.io API

Project description

MachineID Python SDK

Official Python SDK for MachineID.

MachineID is an enforcement control plane — not an orchestrator. It provides a hard, authoritative allow / deny decision before code executes.

This SDK is designed for AI agents, workers, schedulers, and distributed systems that need centralized execution control without managing infrastructure.


Installation

pip install machineid-io

Prerequisite (Free Org Key)

MachineID provides a free organization key with no billing required.

  1. Visit https://machineid.io
  2. Create a free organization
  3. Copy your org key (starts with org_...)

Set it as an environment variable:

export MACHINEID_ORG_KEY=org_your_key_here

Quick Start (Hard Enforcement)

from machineid import MachineID

m = MachineID.from_env()
device_id = "agent-01"

# Register device (idempotent)
m.register(device_id)

# HARD GATE — MUST stop execution if denied
decision = m.validate(device_id)

if not decision["allowed"]:
    print("Execution denied:", decision["code"], decision["request_id"])
    raise SystemExit(1)

print("Execution allowed")

Validate Semantics (Critical)

validate() is the enforcement checkpoint.

You must stop execution immediately when:

decision["allowed"] is False

Validate returns authoritative decision metadata:

  • allowed — boolean enforcement decision
  • code — stable decision code (e.g. ALLOW, DEVICE_REVOKED, PLAN_NOT_ACTIVE)
  • request_id — correlation ID for logs, audits, and support

Example response:

{
  "allowed": false,
  "code": "DEVICE_REVOKED",
  "request_id": "fbf77ff5-06ed-42eb-8e07-024c32ef1e68"
}

Supported Operations

This SDK supports:

  • register(device_id)
  • validate(device_id) (POST, canonical)
  • list_devices()
  • revoke(device_id)
  • unrevoke(device_id)
  • remove(device_id)
  • usage()

All calls authenticate via the x-org-key header and return raw API JSON.


Enforcement Rules

  • register() does NOT restore revoked devices
  • Only unrevoke() restores a device
  • validate() is POST-only and authoritative
  • Decision codes are stable and intended for programmatic handling

What This SDK Does NOT Do

This SDK intentionally does NOT:

  • create organizations
  • manage billing or checkout
  • orchestrate agents
  • perform analytics or metering

It is a pure enforcement client.


Environment-Based Setup

from machineid import MachineID

m = MachineID.from_env()

Version

import machineid
print(machineid.__version__)

Documentation


License

MIT

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

machineid_io-0.1.6.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

machineid_io-0.1.6-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file machineid_io-0.1.6.tar.gz.

File metadata

  • Download URL: machineid_io-0.1.6.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for machineid_io-0.1.6.tar.gz
Algorithm Hash digest
SHA256 7b260b105d5566f12466f3d7c0881f762f05a2d2c4223ce8edf36601c72b75b8
MD5 c99dfb788197251e3bba3cc4b3f88dba
BLAKE2b-256 8d21353c5a229d3a380ddcfc73980bc940e2d85c18c0a2843c162c2d9981060d

See more details on using hashes here.

File details

Details for the file machineid_io-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: machineid_io-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for machineid_io-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 183a23d4fe506f1a46957f4d6e1fdeebe9931b31f91ad12cb30f8dd8d4b0c32b
MD5 4e8997170105a4836c617fb65f76f730
BLAKE2b-256 de147007bf3423b3fa908f9eeee316630a1dc4b76bf618e95cee7c67bb163df8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page