Jamf API Builder

v1.5.4 BETA

Visual API command builder for Jamf Pro

What it generates

Jamf API Command Builder assembles requests for Jamf Pro Classic API and Pro API endpoints, including multi-step workflows. It emits curl, Python, or URL output with placeholders that must be replaced with values from your own Jamf Pro environment.

Available at no cost in any modern web browser. JavaScript is required to generate output.

Supported vocabulary

Example output

curl -s -X GET \
  "https://yourserver.jamfcloud.com/api/v3/computer-prestages" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

When to use it

Use it to inspect request shape and endpoint parameters before running an administrative action. Do not paste production bearer tokens, passwords, or device passcodes into a shared command.

How encrypted sharing works

Changelog

Changelog

v1.5.4

  • CSV bulk mode: columns are now matched by header name (not position), so CSV column order no longer matters; mapped columns can be substituted into JSON request bodies (not just URL path parameters), and the script warns when a required path parameter has no mapped column
  • Corrected payload schemas against Jamf's OpenAPI: static-group create/update now use the top-level assignments array of computer IDs (not a members/serial-number structure); the Computer PreStage create/update endpoints use /api/v3 with the full set of required fields (including the nested locationInformation and purchasingInformation objects and deviceEnrollmentProgramInstanceId)

v1.5.3

  • Corrected Pro API endpoint paths verified against Jamf's official API index: static computer/mobile-device groups now use /api/v2/…/static-groups (the bare paths are read-only lists); removed the non-existent Pro os-x-configuration-profiles (macOS profiles are Classic-API only); replaced the non-existent app-store-apps with Volume Purchasing (VPP) locations; MDM "Get Command Status" now uses the filtered list (there is no per-UUID path)
  • Python "Get Bearer Token" now authenticates with credentials instead of a circular bearer header
  • Inventory-preload CSV endpoints now generate a multipart file upload (-F file=@… / files=) instead of an empty JSON body; Classic MDM-command endpoints no longer emit a spurious body; Classic writes print the XML response
  • Corrected payload schemas: managed software update updateAction uses the DOWNLOAD_INSTALL family (not DOWNLOAD_AND_INSTALL); MDM commandType uses valid v2 values (SHUT_DOWN_DEVICE, no UNMANAGE_DEVICE/BLANK_PUSH); inventory-preload drops the invalid "Apple TV" device type
  • Chain builder: presets now bake their field values (managementId, command type) into the request body so they actually take effect; fixed presets that used the wrong operation or an unsupported nested iteration; query values are always URL-encoded; step list-detection covers filtered lists, not just "Get All"

v1.5.2

  • Basic Auth now generates a two-step token flow (mint a bearer token, then call the endpoint) — Jamf Pro 11.5+ rejects Basic Auth on resource endpoints, accepting it only to obtain a token
  • Python output for JSON bodies now uses json.loads() so true/false/null are valid (previously raised NameError)
  • Chain Python now wires captured step values into request bodies, iterates the correct field (e.g. general.managementId), and handles payload-driven iteration
  • The "Get Bearer Token" call now uses credentials (-u) instead of a circular bearer header
  • Managed Software Update plans: removed the invalid INSTALL_ASAP action and default specificVersion to "NA" unless versionType is SPECIFIC_VERSION
  • Chain bodies that reference a captured value more than once now substitute every occurrence; the bearer-token lifetime note no longer hard-codes a duration (tokens are short-lived — check the token response's expires value)

v1.5.1

  • Updated the deprecation note on the Jamf Pro API /api/v1/computers-inventory endpoints: the v1 Computer Inventory endpoints are deprecated in favor of the newer /api/v3/ (and /api/v2/) Computer Inventory endpoints. Classic /JSSResource/computers remains deprecated as of Jamf Pro 11.15.0

v1.5.0

  • Added 20 real-world chain workflow templates organized by use case: Getting Started, Offboarding, MDM Commands, Security & Compliance, Enrollment & Onboarding, Group & Scope Management, Inventory & Attributes, Policy & Deployment
  • Mass offboarding presets: CSV-driven bulk lock and bulk wipe workflows for rapid device recovery during layoffs or security incidents
  • Smart Group → Bulk MDM Command preset: resolve managementIds and send commands to all group members
  • PreStage scope management, config profile backup, policy log flush, bulk EA update, and fleet security posture report presets
  • Each preset includes a tooltip description explaining what the workflow does
  • Added section-level deprecation banner when Classic API (Legacy) is selected
  • Download buttons now fall back to data URI when Blob URLs are blocked
  • Fixed workflow card clicks redirecting to homepage instead of populating the form

v1.4.0

  • Fixed inventory preload template — removed all placeholder/sample data; empty fields now default to blank
  • Payload builder now omits empty optional fields from generated JSON instead of including them as empty strings (only required fields like serialNumber and deviceType are always included)
  • Added visible breadcrumbs and related tool cross-links

v1.3.0

  • Added token refresh template in generated chain scripts (commented, ready to uncomment)
  • Added pagination loop template for paginated endpoints in chain mode
  • Added rate limiting (sleep 0.5s) in iteration loops to prevent API throttling
  • Python output now uses requests.Session() for connection reuse
  • Fixed section parameter to use multiple &section= params instead of comma-separated
  • Added deprecation warnings inline for v1 computers-inventory endpoints
  • Added URL state sharing

v1.2.0

  • Fixed critical bug: payload variable references now use double-quoted strings so bash expands variables correctly
  • Chain builder now detects variable references in payload fields (not just URL params) and sets up proper iteration loops
  • Added managementId and serialNumber to Computers Inventory response fields — managementId is required for MDM commands
  • Iteration now extracts the correct field (e.g., general.managementId) instead of always using .id
  • Pagination warning upgraded to highlight risk of partial results in bulk operations
  • Added variable reference (📎) buttons to chain payload fields
  • Added deprecation warnings for /api/v1/computers-inventory endpoints
  • Added section query parameter to inventory endpoints for filtering response data

v1.1.1

  • Added interactive Payload Builder to chain builder steps (form fields, dropdowns, raw editor)
  • Chain-generated scripts now use actual payload templates instead of empty placeholders

v1.1.0

  • Added interactive Payload Builder with form fields, dropdowns for enum values, and boolean selectors
  • Added raw editor toggle for advanced payload editing
  • Added 7 new Pro API endpoint categories: Computer Groups, Mobile Device Groups, MDM Commands, Configuration Profiles, Inventory Preload, Managed Software Updates, App Store Apps
  • Pro API now defaults first; Classic API labeled as Legacy
  • Added CSV import for bulk operations with file upload, preview, and column mapping
  • Added Common Tasks workflow presets for scope management, MDM commands, and inventory preload
  • Fixed critical URL encoding bug where variable references were percent-encoded
  • Fixed Python-in-bash quoting issues in chain builder
  • Switched from python3 to jq for JSON parsing in generated bash scripts
  • Added error handling (HTTP status checking) to all generated scripts
  • Added chain step compatibility validation in analyzer
  • Improved credential handling with clear placeholder variables

v1.0.0

  • Initial release (Alpha)
  • Classic API support with 12 endpoint categories
  • Jamf Pro API support with 8 endpoint categories
  • Bearer Token, Basic Auth, and API Client authentication modes
  • Credential-safe design with placeholder variables
  • curl, Python, and URL-only output formats
  • Chain/Pipeline builder for multi-step API workflows
  • Common chain presets (Token→Request, Computer→Flush, Group→Command)
  • Iteration support for bulk operations
  • Safety warnings for DELETE operations and destructive MDM commands
  • Deprecation hints for legacy endpoints
  • Method color coding (GET/POST/PUT/DELETE)