Skip to main content

Query Apple Business Manager using Python

Project description

The purpose of this repo is to create a python library to easily get information using the Apple Business Manager API using Python.

A CLI command is also included, pyacm-cli.

https://developer.apple.com/documentation/applebusinessmanagerapi

Setup:

You will need to setup 2 environmental variables that are provided when creating the private key in ABM:

AXM_CLIENT_ID and AXM_KEY_ID

Place the private key in your home directory inside the .config/pyaxm folder and rename it key.pem

This location will be used to store a cached access_token that can be reused until it expires. While testing I have experienced that requesting too many access tokens will result in a response with status code 400 when trying to get a new token.

Installation:

pip install pyaxm

CLI:

pyaxm-cli -> returns commands available

pyaxm-cli devices -> returns all devices in ABM pyaxm-cli servers -> returns all servers in ABM pyaxm-cli device <serial_number> -> returns single device information pyaxm-cli server <server_id> -> returns all devices in that server pyaxm-cli mdm_server_assigned <serial_number> -> returns device assigned server id

The data returned is on CSV format so you can store it as a CSV if needed

Client:

Example usage:

axm_client = Client()

devices = axm_client.list_devices()
print(devices)

device = axm_client.get_device(device_id='SERIAL_NUMBER')
print(device)

mdm_servers = axm_client.list_mdm_servers()
print(mdm_servers)

# The MDM server ID can be extracted from listing all mdm servers
mdm_server = axm_client.list_devices_in_mdm_server(server_id="MDM_SERVER_ID")
print(mdm_server)

device_assigned_server = axm_client.list_devices_in_mdm_server(device_id='SERIAL_NUMBER')
print(device_assigned_server)

Issues:

  • need to add tests
  • not all api functionability is there

This is still a work in progress

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

pyaxm-2025.6.20.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

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

pyaxm-2025.6.20-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file pyaxm-2025.6.20.tar.gz.

File metadata

  • Download URL: pyaxm-2025.6.20.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyaxm-2025.6.20.tar.gz
Algorithm Hash digest
SHA256 30480037ba7927ea8cdb00b0c8c5cb2ee4134af88a7cbef202b8b17baa657976
MD5 ed128762609214f6a5618647a8cdfebf
BLAKE2b-256 e42ffcc67356917b79513f4ff06405a59f0530c18f02de48c47bb9bf42c57ebb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaxm-2025.6.20.tar.gz:

Publisher: release.yml on kaincenteno/pyaxm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaxm-2025.6.20-py3-none-any.whl.

File metadata

  • Download URL: pyaxm-2025.6.20-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyaxm-2025.6.20-py3-none-any.whl
Algorithm Hash digest
SHA256 1a47d5f2b5eaafda0c0d3c4c858ed7555206dc6cd841e0f6980965c04d641f43
MD5 c05041bf0fa36f408733ab1b1c126453
BLAKE2b-256 3be96886799d95b254a69018f2fe033b0d1ff8863062a4e11f9b5ec3a885d145

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaxm-2025.6.20-py3-none-any.whl:

Publisher: release.yml on kaincenteno/pyaxm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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