Palette API Reference
Authentication
All requests require an API key from 1Password and the project UID header.
| Header | Value |
|---|---|
ApiKey |
From 1Password ("Mouser Palette API Key") |
ProjectUid |
69791bbdb68bd0033ad275a5 |
Base URL
Environment UIDs
| Resource | UID |
|---|---|
| Core Profile | 698e43979f639727243be3e8 |
| Infra Profile | 698e434f56d5433423e3ee5a |
| Cluster (edge-vmo) | 6982d34cd881f18566be1474 |
Key Endpoints
Get a Cluster Profile
```bash copy
curl -s -X GET "https://api.spectrocloud.com/v1/clusterprofiles/698e43979f639727243be3e8" \
-H "ApiKey: ### Update a Cluster Profile (Creates Draft)
!!! warning "Draft Workflow"
A `PUT` to a cluster profile creates a **draft** version. You must publish the draft separately before changes take effect on clusters.
```bash copy
curl -s -X PUT "https://api.spectrocloud.com/v1/clusterprofiles/698e43979f639727243be3e8" \
-H "ApiKey: <your-api-key>" \
-H "ProjectUid: 69791bbdb68bd0033ad275a5" \
-H "Content-Type: application/json" \
-d @profile-update.json
Payload Structure
The pack configuration lives under spec.template.packs, not spec.packs. Using the wrong path will silently fail.
Publish a Draft Profile
```bash copy
curl -s -X PATCH "https://api.spectrocloud.com/v1/clusterprofiles/698e43979f639727243be3e8/publish" \
-H "ApiKey:
Get Deployed Profiles for a Cluster
bash copy
curl -s -X GET "https://api.spectrocloud.com/v1/spectroclusters/6982d34cd881f18566be1474/profiles" \
-H "ApiKey: <your-api-key>" \
-H "ProjectUid: 69791bbdb68bd0033ad275a5" | jq .
Typical Update Workflow
The full workflow to update a cluster profile and apply changes:
-
Get the current profile to see existing pack versions and values:
bash copy curl -s -X GET "https://api.spectrocloud.com/v1/clusterprofiles/<profile-uid>" \ -H "ApiKey: <your-api-key>" \ -H "ProjectUid: 69791bbdb68bd0033ad275a5" | jq '.spec.template.packs[] | {name, tag}' -
Update the profile (creates a draft):
bash copy curl -s -X PUT "https://api.spectrocloud.com/v1/clusterprofiles/<profile-uid>" \ -H "ApiKey: <your-api-key>" \ -H "ProjectUid: 69791bbdb68bd0033ad275a5" \ -H "Content-Type: application/json" \ -d @updated-profile.json -
Publish the draft:
bash copy curl -s -X PATCH "https://api.spectrocloud.com/v1/clusterprofiles/<profile-uid>/publish" \ -H "ApiKey: <your-api-key>" \ -H "ProjectUid: 69791bbdb68bd0033ad275a5" -
Verify the cluster picks up the update:
bash copy curl -s -X GET "https://api.spectrocloud.com/v1/spectroclusters/6982d34cd881f18566be1474/profiles" \ -H "ApiKey: <your-api-key>" \ -H "ProjectUid: 69791bbdb68bd0033ad275a5" | jq '.profiles[].packs[] | {name, tag}'
Tip
Use jq to extract specific fields from responses. The full profile JSON is large and deeply nested.