Your User API key will be copied in all the examples here, so you can test any example right away. Only you can see this value. You can find your User API key in your user settings.
Prefix the API key with Bearer and pass that value as the Authorization header.
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-H "X-Workbrew-API-Version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/devices.json"
curl -X GET \
-H "Authorization: Bearer " \
-H "X-Workbrew-API-Version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/devices.json"
The Swagger definition file is available here.
/workspaces/${workspace_name}/analytics.json
Returns a list of Analytics
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/analytics.json"
[
{
"device": "TC6R2DHVHG",
"command": "brew install curl",
"last_run": "2024-01-01T12:34:56Z",
"count": 2
}
]
/workspaces/${workspace_name}/analytics.csv
Returns a list of Analytics
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/analytics.csv"
device,command,last_run,count TC6R2DHVHG,brew install curl,2024-01-01T12:34:56Z,2 TC6R2DHVHG,brew install wget,2024-02-03T08:22:33Z,1 TC6R2DHVHG,brew info curl,2024-04-15T14:45:22Z,1
/workspaces/${workspace_name}/brew_commands/${brew_command_label}/runs.json
Returns a list of Brew Command Runs
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
brew_command_label
|
Brew Command Label | path | string | |
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_commands/${BREW_COMMAND_LABEL}/runs.json"
[
{
"command": "brew outdated",
"label": "outdated",
"device": "TC6R2DHVHG",
"created_at": "2023-11-01T12:34:56.000Z",
"updated_at": "2023-11-01T21:43:12.000Z",
"success": true,
"output": "curl\ngit",
"started_at": "2023-11-01T12:34:56.000Z",
"finished_at": "2023-11-01T21:43:12.000Z"
}
]
/workspaces/${workspace_name}/brew_commands/${brew_command_label}/runs.csv
Returns a list of Brew Command Runs
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
brew_command_label
|
Brew Command Label | path | string | |
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_commands/${BREW_COMMAND_LABEL}/runs.csv"
command,label,device,created_at,updated_at,success,output,started_at,finished_at brew outdated,outdated,TC6R2DHVHG,2025-07-03 12:50:45 UTC,2025-07-03 12:50:45 UTC,true,c-ares\nlibuv,2023-11-01 12:34:56 UTC,2023-11-01 21:43:12 UTC brew outdated,outdated,1234567890,2025-07-03 12:50:45 UTC,2025-07-03 12:50:45 UTC,false,python-argcomplete,2023-11-01 12:34:56 UTC,2023-11-01 21:43:12 UTC
/workspaces/${workspace_name}/brewfiles/${label}/runs.json
Returns a list of Brewfile Runs
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
label
|
Brewfile Label | path | string | |
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brewfiles/${LABEL}/runs.json"
[
{
"label": "bundle-file",
"device": "TC6R2DHVHG",
"created_at": "2023-11-01T12:34:56.000Z",
"updated_at": "2023-11-01T21:43:12.000Z",
"success": true,
"output": "Using git\n`brew bundle` complete! 1 Brewfile dependency now installed.",
"started_at": "2023-11-01T12:34:56.000Z",
"finished_at": "2023-11-01T21:43:12.000Z"
}
]
/workspaces/${workspace_name}/brewfiles/${label}/runs.csv
Returns a list of Brewfile Runs
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
label
|
Brewfile Label | path | string | |
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brewfiles/${LABEL}/runs.csv"
label,device,created_at,updated_at,success,output,started_at,finished_at bundle-file,TC6R2DHVHG,2025-07-03 12:50:45 UTC,2025-07-03 12:50:45 UTC,false,"",Not Started,Not Finished
/workspaces/${workspace_name}/brew_commands.json
Returns a list of Brew Commands
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_commands.json"
[
{
"command": "brew outdated",
"label": "outdated",
"last_updated_by_user": "mikemcquaid",
"started_at": "2023-11-01T12:34:56.000Z",
"finished_at": "2023-11-01T21:43:12.000Z",
"devices": [
"TC6R2DHVHG"
],
"run_count": 2
}
]
/workspaces/${workspace_name}/brew_commands.json
Creates a new Brew Command
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
| Name | Format | Example | Required |
|---|---|---|---|
arguments
|
install wget | ||
device_ids
|
Uuid | c206cdc6-f01c-5859-899d-7fd0a546e888,f7b3bb3c-6b3e-5e3a-bcb5-66c49e1c5fcb | |
run_after_datetime
|
Date Time | 2025-01-10T10:09 | |
recurrence
|
Once, Daily, Weekly, Monthly | once |
curl -X POST \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"arguments":"install wget"}' \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_commands.json"
{
"message": "Brew Command was successfully created."
}
{
"message": "An error occurred when trying to create Brew Command",
"errors": [
"Please upgrade your plan to get access to Brew Commands."
]
}
{
"message": "An error occurred when trying to create Brew Command",
"errors": [
"Arguments cannot include `&&`"
]
}
/workspaces/${workspace_name}/brew_commands.csv
Returns a list of Brew Commands
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_commands.csv"
command,label,last_updated_by_user,started_at,finished_at,devices,run_count brew outdated,outdated,mikemcquaid,2023-11-01 12:34:56 UTC,2023-11-01 21:43:12 UTC,"",2 brew list --versions --formula,list-versions-formula,onboarded,2023-11-01 12:34:56 UTC,Not Finished,TC6R2DHVHG,1 brew list --versions --cask,list-versions-cask,onboarding,Not Started,Not Finished,"",1 brew --version,version,mikemcquaid,Not Started,Not Finished,"",0 brew install git,install-git,mikemcquaid,Not Started,Not Finished,"",0 brew install zx,install-zx,mikemcquaid,Not Started,Not Finished,"",0 brew install node,install-node,mikemcquaid,Not Started,Not Finished,"",0 brew install deno,install-deno,mikemcquaid,Not Started,Not Finished,"",0 brew install ruby,install-ruby,mikemcquaid,Not Started,Not Finished,"",0 brew install javascript,install-javascript,mikemcquaid,Not Started,Not Finished,"",0 brew install rust,install-rust,mikemcquaid,Not Started,Not Finished,"",0 brew install golang,install-golang,mikemcquaid,Not Started,Not Finished,"",0 brew install c++,install-c++,mikemcquaid,Not Started,Not Finished,"",0 brew install nonexistent,install-nonexistent,mikemcquaid,2023-11-01 12:34:56 UTC,2023-11-01 21:43:12 UTC,"",1 brew install hello,install-hello,mikemcquaid,Not Started,Not Finished,"",0 brew upgrade curl,upgrade-curl,mikemcquaid,2024-11-01 12:34:56 UTC,2024-11-01 21:43:12 UTC,"",1 brew upgrade ack,upgrade-ack,mikemcquaid,2024-11-01 12:34:56 UTC,2024-11-01 21:43:12 UTC,"",1
/workspaces/${workspace_name}/brew_configurations.json
Returns a list of Brew Configurations
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_configurations.json"
[
{
"key": "HOMEBREW_DEVELOPER",
"value": "1",
"last_updated_by_user": "mikemcquaid",
"device_group": "All Devices"
}
]
/workspaces/${workspace_name}/brew_configurations.csv
Returns a list of Brew Configurations
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_configurations.csv"
key,value,last_updated_by_user,device_group HOMEBREW_DEVELOPER,1,mikemcquaid,All Devices HOMEBREW_API_AUTO_UPDATE_SECS,1,mikemcquaid,All Devices HOMEBREW_FORBIDDEN_FORMULAE,util-linux ruby,mikemcquaid,All Devices HOMEBREW_FORBIDDEN_CASKS,1password-cli,mikemcquaid,All Devices
/workspaces/${workspace_name}/brew_taps.json
Returns a list of Taps
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_taps.json"
[
{
"tap": "Homebrew/homebrew-core",
"devices": [
"TC6R2DHVHG",
"1234567890"
],
"formulae_installed": 10,
"casks_installed": 0,
"available_packages": "16 Formulae"
}
]
/workspaces/${workspace_name}/brew_taps.csv
Returns a list of Taps
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brew_taps.csv"
tap,devices,formulae_installed,casks_installed,available_packages Homebrew/homebrew-core,"TC6R2DHVHG, 1234567890",10,0,7388 Formulae Homebrew/homebrew-cask,TC6R2DHVHG,0,2,4901 Casks and 2411 Cask fonts apple/apple,TC6R2DHVHG,1,0,>=1 Packages workbrew/private,TC6R2DHVHG,0,1,>=1 Packages
/workspaces/${workspace_name}/casks.json
Returns a list of Casks
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/casks.json"
[
{
"name": "logi-options+",
"devices": [
"TC6R2DHVHG",
"1234567890"
],
"outdated": true,
"deprecated": "",
"homebrew_cask_version": "8.11.0_1"
}
]
/workspaces/${workspace_name}/casks.csv
Returns a list of Casks
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/casks.csv"
name,devices,outdated,deprecated,homebrew_cask_version 1password,"[""TC6R2DHVHG""]",true,"",8.10.75 1password-cli,"[""TC6R2DHVHG""]",true,"",2.31.0 logi-options+,"[""TC6R2DHVHG""]",true,"",1.89.705126 workbrew/private/workbrew,"[""TC6R2DHVHG""]",false,"",0.0.5
/workspaces/${workspace_name}/brewfiles.json
Returns a list of Brewfiles
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brewfiles.json"
[
{
"last_updated_by_user": "onboarded",
"started_at": "Not Started",
"finished_at": "Not Finished",
"devices": [],
"run_count": 1
}
]
{
"message": "Brewfiles API is not available on your current plan.",
"errors": [
"Brewfiles cannot be created or updated on a Workbrew Free subscription."
]
}
/workspaces/${workspace_name}/brewfiles.json
Creates a new Brewfile
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
| Name | Format | Example | Required |
|---|---|---|---|
label
|
my-brewfile | ||
content
|
brew "wget" | ||
device_serial_numbers
|
TC6R2DHVHG,1234567890 | ||
device_group_id
|
ddba0af6-bd3c-5abf-8311-e62dc6bd9fbc |
curl -X POST \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"label":"my-brewfile","content":"brew \"wget\""}' \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brewfiles.json"
{
"message": "Brewfile was successfully created."
}
{
"message": "Brewfiles API is not available on your current plan.",
"errors": [
"Brewfiles cannot be created or updated on a Workbrew Free subscription."
]
}
{
"message": "An error occurred when trying to create Brewfile",
"errors": [
"Please upgrade your plan to get access to Brew Commands."
]
}
/workspaces/${workspace_name}/brewfiles.csv
Returns a list of Brewfiles
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brewfiles.csv"
last_updated_by_user,started_at,finished_at,devices,run_count bundle-file,onboarded,Not Started,Not Finished,TC6R2DHVHG,1
/workspaces/${workspace_name}/brewfiles/${label}.json
Deletes a Brewfile
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
label
|
path | string |
curl -X DELETE \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brewfiles/${LABEL}.json"
{
"message": "Brewfile was successfully destroyed."
}
{
"message": "Brewfiles API is not available on your current plan.",
"errors": [
"Brewfiles cannot be created or updated on a Workbrew Free subscription."
]
}
/workspaces/${workspace_name}/brewfiles/${label}.json
Updates a Brewfile
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
label
|
path | string |
| Name | Format | Example | Required |
|---|---|---|---|
content
|
brew "wget" brew "htop" | ||
device_serial_numbers
|
1234567890 | ||
device_group_id
|
ddba0af6-bd3c-5abf-8311-e62dc6bd9fbc |
curl -X PUT \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"content":"brew \"wget\"\nbrew \"htop\""}' \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/brewfiles/${LABEL}.json"
{
"message": "Brewfile was successfully updated."
}
{
"message": "An error occurred when trying to update Brewfile",
"errors": [
"Brewfile has an invalid line: tap \"foo/bar/baz\""
]
}
{
"message": "Brewfiles API is not available on your current plan.",
"errors": [
"Brewfiles cannot be created or updated on a Workbrew Free subscription."
]
}
/workspaces/${workspace_name}/device_groups.json
Returns a list of Device Groups
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/device_groups.json"
[
{
"id": "ddba0af6-bd3c-5abf-8311-e62dc6bd9fbc",
"name": "Admin",
"devices": [
"TC6R2DHVHG"
]
}
]
/workspaces/${workspace_name}/device_groups.csv
Returns a list of Device Groups
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/device_groups.csv"
id,name,devices ddba0af6-bd3c-5abf-8311-e62dc6bd9fbc,Admin, 377d8aa2-64cd-56a6-8351-6163bcf7dca1,OSX 14,TC6R2DHVHG
/workspaces/${workspace_name}/devices.json
Returns a list of devices
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/devices.json"
[
{
"serial_number": "TC6R2DHVHG",
"groups": [
"OSX 14"
],
"mdm_user_or_device_name": "Mike's MacBook Pro",
"last_seen_at": "2023-08-25T00:00:00.000Z",
"command_last_run_at": "2024-01-01T00:00:00.000Z",
"device_type": "MacBook Pro",
"os_version": "macOS 14.0 (23A344)",
"homebrew_prefix": "/opt/homebrew",
"homebrew_version": "4.1.15-24-g5e78ba3",
"workbrew_version": "0.2.1",
"formulae_count": 9,
"casks_count": 3
}
]
/workspaces/${workspace_name}/devices.csv
Returns a list of devices
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/devices.csv"
serial_number,groups,mdm_user_or_device_name,last_seen_at," \
"command_last_run_at,device_type,os_version,homebrew_prefix,homebrew_version,workbrew_version," \
"formulae_count,casks_count
TC6R2DHVHG,"[""OSX 14""]",Mike's MacBook Pro,2023-08-25 00:00:00 UTC,2024-01-01 00:00:00 UTC,MacBook Pro," \
"macOS 14.0 (23A344),/opt/homebrew,4.1.15-24-g5e78ba3,0.2.1,9,3
1234567890,[],Never,Never,Mac mini,macOS 13,/usr/local,4.0.0,0.1.6-1-geb5f975,3,0
AB3456DG90,[],Never,Never,Unknown,Unknown,Unknown,Unknown,Unknown,0,0
d6297bb0816f4832af4067203686df26,[],Never,Never,MX33-BS1-V1,Ubuntu 5.15.0-124.134-generic 5.15.163,"\
"/home/linuxbrew/.linuxbrew,Unknown,0.9.12,0,0
/workspaces/${workspace_name}/events.json
Returns a list of audit log events
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
filter
|
Filter by actor type: user, system, or all | query |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/events.json"
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"event_type": "device.created",
"occurred_at": "2024-03-01T10:00:00Z",
"actor_id": null,
"actor_type": "User",
"target_id": null,
"target_type": "Device",
"target_identifier": "TC6R2DHVHG"
}
]
/workspaces/${workspace_name}/events.csv
Returns audit log events as CSV
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
filter
|
Filter by actor type: user, system, or all | query | string | |
download
|
Set to 1 to force download as attachment | query | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/events.csv"
id,event_type,occurred_at,actor_id,actor_type,target_id,target_type,target_identifier 123e4567-e89b-12d3-a456-426614174000,device.created,2024-03-01T10:00:00Z,,,123e4567-e89b-12d3-a456-426614174001,Device,TC6R2DHVHG
/workspaces/${workspace_name}/formulae.json
Returns a list of Formulae
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/formulae.json"
[
{
"name": "curl",
"devices": [
"TC6R2DHVHG",
"1234567890"
],
"outdated": true,
"installed_on_request": false,
"installed_as_dependency": true,
"vulnerabilities": [
"CVE-2024-2466",
"THIS-IS-AN-INVALID-CVE-001"
],
"deprecated": "",
"license": [
"curl"
],
"homebrew_core_version": "8.11.0_1"
}
]
/workspaces/${workspace_name}/formulae.csv
Returns a list of Formulae
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/formulae.csv"
name,devices,outdated,installed_on_request,installed_as_dependency,"\
"vulnerabilities,deprecated,license,homebrew_core_version
curl,"TC6R2DHVHG, 1234567890",true,false,true,"CVE-2024-11053, CVE-2024-6197, CVE-2024-7264, CVE-2024-8096, "\
"CVE-2024-9681, THIS-IS-AN-INVALID-CVE-001","",curl,8.11.1
actionlint,TC6R2DHVHG,true,false,false,"","",MIT,1.7.7
ack,TC6R2DHVHG,true,false,false,SOME-INVALID-CVE-001,"",Artistic-2.0,3.8.1
cweb,1234567890,true,false,false,"","",LicenseRef-Homebrew-cannot-represent,4.12.1
renovate,TC6R2DHVHG,true,false,false,GHSA-rqgv-292v-5qgr,"",AGPL-3.0-only,39.125.0
wget,TC6R2DHVHG,true,true,false,"CVE-2024-10524, SOME-INVALID-CVE-002","",GPL-3.0-or-later,1.25.0
zstd,1234567890,true,false,false,"","","(BSD-3-Clause OR GPL-2.0-only), BSD-2-Clause, MIT",1.5.6
apple/apple/game-porting-toolkit,TC6R2DHVHG,false,false,false,"","",,
rdup,TC6R2DHVHG,false,false,false,"",Disabled,GPL-3.0-or-later,1.1.15_2
flac,TC6R2DHVHG,false,false,false,"","","BSD-3-Clause, GPL-2.0-or-later, ISC, LGPL-2.0-or-later, " \
"LGPL-2.1-or-later, LicenseRef-Homebrew-public-domain, (GPL-2.0-or-later OR LGPL-2.1-or-later)",1.4.3
rbenv-communal-gems,TC6R2DHVHG,false,false,false,"",Deprecated,MIT,1.0.1_1
/workspaces/${workspace_name}/licenses.json
Returns a list of Licenses
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/licenses.json"
[
{
"name": "GPL-3.0-or-later",
"device_count": 2,
"formula_count": 2
}
]
/workspaces/${workspace_name}/licenses.csv
Returns a list of Licenses
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/licenses.csv"
name,device_count,formula_count GPL-3.0-or-later,2,2 MIT,2,2 LicenseRef-Homebrew-cannot-represent,1,1 BSD-3-Clause AND GPL-2.0-or-later AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-Homebrew-public-domain AND (GPL-2.0-or-later OR LGPL-2.1-or-later),1,1 (BSD-3-Clause OR GPL-2.0-only) AND BSD-2-Clause AND MIT,1,1 curl,1,1 Artistic-2.0,1,1 AGPL-3.0-only,1,1 Unknown,1,0
/workspaces/${workspace_name}/package_requests.json
Returns a list of Package Requests
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/package_requests.json"
[
{
"id": "string",
"package_name": "zoom",
"package_type": "cask",
"tap": "homebrew/cask",
"status": "pending",
"device": "TC6R2DHVHG",
"scope_type": "Device",
"scope_id": null,
"decided_by": "mikemcquaid",
"decision_reason": "Not approved for use in this workspace",
"decided_at": null,
"created_at": "string",
"updated_at": "string"
}
]
/workspaces/${workspace_name}/package_requests.csv
Returns a list of Package Requests
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/package_requests.csv"
string
/workspaces/${workspace_name}/package_requests/${id}.json
Returns a Package Request
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
id
|
Package Request ID | path | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/package_requests/${ID}.json"
{
"package_request": {
"id": "string",
"package_name": "docker",
"package_type": "cask",
"tap": "homebrew/cask",
"status": "pending",
"device": {
"id": "string",
"serial_number": "string"
},
"decision_reason": null,
"decided_at": null,
"created_at": "string",
"updated_at": "string"
}
}
/workspaces/${workspace_name}/package_requests/${id}.json
Updates a Package Request
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
id
|
Package Request ID | path | string |
| Name | Format | Example | Required |
|---|---|---|---|
package_request
|
curl -X PATCH \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"package_request":{"decision":"approved"}}' \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/package_requests/${ID}.json"
{
"package_request": {
"id": "string",
"package_name": "slack",
"package_type": "cask",
"tap": "homebrew/cask",
"status": "denied",
"device": {
"id": "string",
"serial_number": "string"
},
"decision_reason": null,
"decided_at": null,
"created_at": "string",
"updated_at": "string"
}
}
{
"error": "Invalid decision. Must be 'approved' or 'denied'"
}
/workspaces/${workspace_name}/vulnerabilities.json
Returns a list of Vulnerabilities
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/vulnerabilities.json"
[
{
"vulnerabilities": [
{
"clean_id": "CVE-2024-2466",
"cvss_score": 6.5
},
{
"clean_id": "THIS-IS-AN-INVALID-CVE-001",
"cvss_score": 8.0
}
],
"formula": "curl",
"outdated_devices": [
"TC6R2DHVHG",
"1234567890"
],
"supported": false,
"homebrew_core_version": "8.11.0_1"
}
]
{
"message": "An error occurred when trying to view vulnerabilities",
"errors": [
"Vulnerabilities cannot be viewed in detail or mitigated on a Workbrew Free subscription."
]
}
/workspaces/${workspace_name}/vulnerabilities.csv
Returns a list of Vulnerabilities
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/vulnerabilities.csv"
vulnerabilities,formula,outdated_devices,supported,homebrew_core_version "CVE-2024-11053, CVE-2024-6197, CVE-2024-7264, CVE-2024-8096, CVE-2024-9681, THIS-IS-AN-INVALID-CVE-001 (8.0)",curl,"TC6R2DHVHG, 1234567890",false,8.11.1 "CVE-2024-10524, SOME-INVALID-CVE-002",wget,TC6R2DHVHG,false,1.25.0 SOME-INVALID-CVE-001,ack,TC6R2DHVHG,false,3.8.1 GHSA-rqgv-292v-5qgr (5.4),renovate,TC6R2DHVHG,false,39.125.0
/workspaces/${workspace_name}/vulnerability_changes.json
Returns a list of vulnerability change events
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
status
|
Filter by status: detected or fixed | query | ||
query
|
Search query for formula name, version, vulnerability ID, or device | query | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/vulnerability_changes.json"
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"event_type": "vulnerability.detected",
"occurred_at": "2024-10-01T09:15:00Z",
"status": "detected",
"formula_name": "curl",
"formula_version": "8.7.0",
"vulnerability_id": "CVE-2024-2466"
}
]
/workspaces/${workspace_name}/vulnerability_changes.csv
Returns vulnerability change events as CSV
| Name | Description | Parameter Location | Type | Required |
|---|---|---|---|---|
workspace_name
|
Workspace slug | path | string | |
authorization
|
Bearer Authentication via User API key | header | string | |
X-Workbrew-API-Version
|
Workbrew API Version | header | string | |
status
|
Filter by status: detected or fixed | query | string | |
query
|
Search query | query | string | |
download
|
Set to 1 to force download as attachment | query | string |
curl -X GET \
-H "Authorization: Bearer " \
-H "X-workbrew-api-version: v0" \
-H "Accept: application/json" \
"https://console.workbrew.com/workspaces/${WORKSPACE_NAME}/vulnerability_changes.csv"
id,event_type,occurred_at,status,device_id,device_serial_number,formula_name,formula_version,vulnerability_id,cvss_severity,cvss_score 123e4567-e89b-12d3-a456-426614174000,vulnerability.detected,2024-10-01T09:15:00Z,detected,device-uuid,TC6R2DHVHG,curl,8.7.0,CVE-2024-2466,Medium,6.5