Skip to content

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

https://api.spectrocloud.com

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: " \ -H "ProjectUid: 69791bbdb68bd0033ad275a5" | jq .

### 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.

{
  "spec": {
    "template": {
      "packs": [
        {
          "name": "pack-name",
          "tag": "1.0.0",
          "values": "yaml-string-here"
        }
      ]
    }
  }
}

Publish a Draft Profile

```bash copy curl -s -X PATCH "https://api.spectrocloud.com/v1/clusterprofiles/698e43979f639727243be3e8/publish" \ -H "ApiKey: " \ -H "ProjectUid: 69791bbdb68bd0033ad275a5"

### Get a Cluster

```bash copy
curl -s -X GET "https://api.spectrocloud.com/v1/spectroclusters/6982d34cd881f18566be1474" \
  -H "ApiKey: <your-api-key>" \
  -H "ProjectUid: 69791bbdb68bd0033ad275a5" | jq .

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:

  1. 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}'

  2. 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

  3. 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"

  4. 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.