Admin - Package

Query package inventory for your admin account.

Get Packages

List package rows with owned license counts.

Endpoint

GET /v1/admin/packages

Query Parameters

  • id (optional): Exact package HashID match (e.g., package_abc123)
  • name (optional): Case-insensitive package name match
  • assignment_status (optional): assigned or unassigned

Filter behavior:

  • No query params returns all package rows for the authenticated admin account
  • assignment_status=assigned returns rows where assigned_licenses > 0
  • assignment_status=unassigned returns rows where unassigned_licenses > 0

Data behavior:

  • The endpoint returns one row per package id.
  • Multiple license SKUs that map to the same package are aggregated into a single package row.
  • MSP's own package is excluded from results.
  • Counts align with billing inventory semantics:
    • assigned_licenses
    • unassigned_licenses
    • total_licenses
    • pending_licenses — licenses pending from a downgrade
    • expiring_licenses — licenses expiring from a downgrade

Example Query - By Name

curl 'https://ai.hatz.ai/v1/admin/packages?name=Professional' \
  -H 'X-API-Key: $HATZ_API_KEY'

Example Query - Unassigned Packages

curl 'https://ai.hatz.ai/v1/admin/packages?assignment_status=unassigned' \
  -H 'X-API-Key: $HATZ_API_KEY'

Example Response - Unassigned Packages

[
  {
    "id": "package_abc123",
    "name": "Starter",
    "assigned_licenses": 0,
    "unassigned_licenses": 4,
    "total_licenses": 4,
    "pending_licenses": 0,
    "expiring_licenses": 0
  },
  {
    "id": "package_xyz789",
    "name": "Intro",
    "assigned_licenses": 2,
    "unassigned_licenses": 3,
    "total_licenses": 5,
    "pending_licenses": 1,
    "expiring_licenses": 0
  }
]

Example Query - No Filters (All Account Packages)

curl 'https://ai.hatz.ai/v1/admin/packages' \
  -H 'X-API-Key: $HATZ_API_KEY'

Example Response - No Filters

[
  {
    "id": "package_abc123",
    "name": "Starter",
    "assigned_licenses": 1,
    "unassigned_licenses": 0,
    "total_licenses": 1,
    "pending_licenses": 0,
    "expiring_licenses": 0
  },
  {
    "id": "package_xyz789",
    "name": "Intro",
    "assigned_licenses": 1,
    "unassigned_licenses": 4,
    "total_licenses": 5,
    "pending_licenses": 0,
    "expiring_licenses": 2
  },
  {
    "id": "package_qwe456",
    "name": "Pro",
    "assigned_licenses": 0,
    "unassigned_licenses": 2,
    "total_licenses": 2,
    "pending_licenses": 1,
    "expiring_licenses": 0
  }
]