{
  "info": {
    "name": "SkillsDB Public API",
    "description": "Generated from the committed OpenAPI artifact.\n\nGETTING STARTED\n1. Open the collection's Variables tab and paste your API key into `apiKey` (created under Settings → API Credentials — shown once).\n2. Point `baseUrl` at your environment (defaults to local development).\n3. Send any request — authentication and common headers are inherited from the collection, so nothing needs configuring per request.\n\nAuth is Bearer at the collection level; the collection pre-request script adds the common Accept/Content-Type headers to every request. Write requests carry an optional, disabled Idempotency-Key header prefilled with a GUID.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "// Common headers for every request in the collection — kept here so the",
          "// requests themselves stay clean and inherit one source of truth.",
          "pm.request.headers.upsert({ key: 'Accept', value: 'application/json' });",
          "if (pm.request.body && pm.request.body.mode === 'raw' && pm.request.body.raw) {",
          "  pm.request.headers.upsert({ key: 'Content-Type', value: 'application/json' });",
          "}"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:3003",
      "description": "API host — no trailing slash."
    },
    {
      "key": "apiKey",
      "value": "",
      "description": "Your sdb_live_… API key. Set it once here; every request inherits it."
    }
  ],
  "item": [
    {
      "name": "Bulk",
      "item": [
        {
          "name": "Sync a batch of people",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/bulk/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "bulk",
                "people"
              ]
            },
            "description": "Create-or-update up to 500 people in one call, matched by email within your company. Set `isActive: false` to deactivate — a soft delete that retains the person and their history. The batch returns 200 whenever it was processed: read each record's `status` and the `summary`, not the HTTP code, to see what happened. One bad record never fails the rest of the batch. Counts against the bulk rate-limit bucket, which is far lower than the read allowance. Send an `Idempotency-Key` — a retried sync replays the original response instead of double-creating.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"people\": [\n    {\n      \"email\": \"ada@example.com\",\n      \"firstName\": \"Ada\",\n      \"lastName\": \"Lovelace\",\n      \"externalId\": \"E-10422\",\n      \"managerEmail\": \"manager@example.com\",\n      \"isActive\": true\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Career",
      "item": [
        {
          "name": "List all careers",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "description": "Comma-separated fields, `-` prefix for descending (e.g. `-name`). Sortable: `name`.",
                  "disabled": true
                },
                {
                  "key": "filter[name][eq]",
                  "value": "",
                  "description": "Filter dialect: `filter[field][operator]=value`; operators `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, `like`, `nlike`, `isnull`. Filterable: `name`, `careerType`.",
                  "disabled": true
                }
              ]
            },
            "description": "All careers of the company, filterable by name and career type.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Create a career",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers"
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Maintenance Technician\",\n  \"description\": \"Keeps the line running.\",\n  \"icon\": \"wrench\",\n  \"careerTypeId\": \"3\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get a career",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Update a career",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Maintenance Technician II\",\n  \"description\": \"Updated description.\",\n  \"icon\": \"wrench\",\n  \"careerTypeId\": \"3\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a career",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id"
              ],
              "query": [
                {
                  "key": "confirm",
                  "value": "",
                  "description": "The literal string `true` confirms the delete despite dependents.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Refuses with a 409 conflict reporting the counts of dependent sections, skills, levels and assigned people. Retry with ?confirm=true to delete anyway.\n\n**Requires scope:** `careers:write`."
          },
          "response": []
        },
        {
          "name": "Get a career's full definition",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/definition",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "definition"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "One call returning the career, its settings, the grading scale, its levels, sections, skill groups, every skill with its full configuration and per-level activation, and its learnings.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "List a career's levels",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/levels",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "levels"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Add a level to a career",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/levels",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "levels"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Creates a level with a name, placed at the end of the order.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Senior\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List a career's sections",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/sections",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "sections"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Add a section to a career",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/sections",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "sections"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Creates a section with a name and description and attaches it. This creates a company-level section library record as a side effect.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Safety\",\n  \"description\": \"Plant safety fundamentals.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List a career's skill groups",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skill-groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skill-groups"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Add a skill group to a career",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skill-groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skill-groups"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Creates a group with a name, placed at the end of the order.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Core\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List a career's skills",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skills"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Every skill on the career with its full configuration and per-level activation.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Add a skill to a career",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skills"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Attach an existing skill with its benchmark, section and required flag.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"skillId\": \"63\",\n  \"benchmarkId\": \"7\",\n  \"sectionId\": \"77\",\n  \"requirement\": {\n    \"isRequired\": true,\n    \"scope\": \"going_forward\"\n  },\n  \"skillGroupIds\": [\n    \"9\"\n  ],\n  \"trainingRequiresNote\": false,\n  \"trainingRequiresAttachment\": true,\n  \"trainingExpiryDays\": 0,\n  \"trainingExpiryMonths\": 6,\n  \"trainingExpiryYears\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List a career's learnings",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/learnings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "learnings"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Get a career's settings",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "settings"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Update a career's settings",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "settings"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Any subset of the five setting groups. Enabling assessments while proficiency grading is disabled is rejected with 422.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"proficiencyGrading\": {\n    \"isEnabled\": true\n  },\n  \"trainingDates\": {\n    \"isEnabled\": true,\n    \"timeline\": {\n      \"days\": 0,\n      \"months\": 6,\n      \"years\": 0\n    }\n  },\n  \"hideNonRequiredSkills\": {\n    \"isEnabled\": true\n  },\n  \"assessments\": {\n    \"isEnabled\": true\n  },\n  \"dashboard\": {\n    \"isEnabled\": true,\n    \"showCareerDescription\": true,\n    \"showTrainingDatesSummary\": true,\n    \"showProficiencySummary\": true,\n    \"showPinnedPages\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List a career's activity",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "activity"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "event",
                  "value": "career_updated",
                  "description": "Event type filter, lowercase snake.",
                  "disabled": true
                },
                {
                  "key": "from",
                  "value": "2026-01-01T00:00:00Z",
                  "description": "Events on or after this time.",
                  "disabled": true
                },
                {
                  "key": "to",
                  "value": "2026-02-01T00:00:00Z",
                  "description": "Events on or before this time.",
                  "disabled": true
                },
                {
                  "key": "performedBy",
                  "value": "88",
                  "description": "Only events performed by this person id.",
                  "disabled": true
                },
                {
                  "key": "relatedPersonId",
                  "value": "91",
                  "description": "Only events relating to this person id.",
                  "disabled": true
                },
                {
                  "key": "bulkGroupId",
                  "value": "b7f3…",
                  "description": "Only rows of this bulk operation group.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Every recorded change to the career, newest first and paginated. A date-filtered poll is the nearest thing v1 offers to a change feed.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Update a skill on a career",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skills/:careerSkillId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skills",
                ":careerSkillId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "careerSkillId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Change benchmark (by naming a rung of the company scale), required status and its retroactivity, training evidence rules, and training expiry.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"benchmarkId\": \"7\",\n  \"requirement\": {\n    \"isRequired\": true,\n    \"scope\": \"going_forward\"\n  },\n  \"trainingRequiresNote\": false,\n  \"trainingRequiresAttachment\": true,\n  \"trainingExpiryDays\": 0,\n  \"trainingExpiryMonths\": 6,\n  \"trainingExpiryYears\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove a skill from a career",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skills/:careerSkillId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skills",
                ":careerSkillId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "careerSkillId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`."
          },
          "response": []
        },
        {
          "name": "Set a skill's groups",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skills/:careerSkillId/groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skills",
                ":careerSkillId",
                "groups"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "careerSkillId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Replace the full set of skill groups this career skill belongs to.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"skillGroupIds\": [\n    \"9\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Set a skill's per-level activation",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skills/:careerSkillId/levels/:levelId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skills",
                ":careerSkillId",
                "levels",
                ":levelId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "careerSkillId",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "levelId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Activate the skill at a level and set which rung of the company scale it requires there, or deactivate it.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"isActive\": true,\n  \"benchmarkId\": \"7\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rename a level",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/levels/:levelId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "levels",
                ":levelId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "levelId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Lead\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a level",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/levels/:levelId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "levels",
                ":levelId"
              ],
              "query": [
                {
                  "key": "confirm",
                  "value": "",
                  "description": "The literal string `true` confirms the delete despite assigned people.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "levelId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Refuses with a 409 conflict reporting how many people would be unassigned from the entire career. Retry with ?confirm=true to proceed — this also removes the level's learnings and skill activations.\n\n**Requires scope:** `careers:write`."
          },
          "response": []
        },
        {
          "name": "Reorder levels",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/levels/reorder",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "levels",
                "reorder"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"levelIds\": [\n    \"31\",\n    \"29\",\n    \"34\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Attach an existing section",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/sections/:sectionLibraryId/attach",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "sections",
                ":sectionLibraryId",
                "attach"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "sectionLibraryId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Attach a section already in the company library to this career.\n\n**Requires scope:** `careers:write`."
          },
          "response": []
        },
        {
          "name": "Detach a section",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/sections/:careerSectionId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "sections",
                ":careerSectionId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "careerSectionId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Removes the section from this career; the library record stays intact.\n\n**Requires scope:** `careers:write`."
          },
          "response": []
        },
        {
          "name": "Set a section's minimum required skills",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/sections/:careerSectionId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "sections",
                ":careerSectionId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "careerSectionId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The count of skills that must be met within the section; null clears it.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"minimumRequiredSkills\": 3\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Reorder sections",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/sections/reorder",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "sections",
                "reorder"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sectionIds\": [\n    \"77\",\n    \"78\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rename a skill group",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skill-groups/:groupId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skill-groups",
                ":groupId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "groupId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Operations\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a skill group",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skill-groups/:groupId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skill-groups",
                ":groupId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "groupId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`."
          },
          "response": []
        },
        {
          "name": "Reorder skill groups",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/skill-groups/reorder",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "skill-groups",
                "reorder"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"skillGroupIds\": [\n    \"9\",\n    \"11\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Career Assignment",
      "item": [
        {
          "name": "List people assigned to a career",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "people"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Everyone holding the career, with their profile, their level, the server-stamped assigned date and the caller-supplied initiation date.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Assign people to a career",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "people"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Bulk by nature: many people in one call, each at their own level. Anyone already holding the career is skipped rather than updated — this call never changes an existing level; use the change-level operation for that. Assigning also grants the learnings attached to that level and attaches the career's skills, so one call against many people is a large write.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"people\": [\n    {\n      \"personId\": \"4821\",\n      \"levelId\": \"12\"\n    }\n  ],\n  \"initiationDate\": \"2026-04-01\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Unassign people from a career",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "people"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Records each assignment in career history first, then removes the live assignment.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personIds\": [\n    \"4821\",\n    \"4907\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get career distribution",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/distribution",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "distribution"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Headcount grouped by level and by people-flag, aggregated server-side rather than by counting returned rows. A manager sees only their span of control.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Change a person's level",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/careers/:id/people/:personId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "careers",
                ":id",
                "people",
                ":personId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The only way to move someone between levels of a career they already hold. Re-assigning will not do it.\n\n**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"levelId\": \"13\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List a person's careers",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/careers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "careers"
              ],
              "query": [
                {
                  "key": "includePrevious",
                  "value": "true",
                  "description": "Include previous (ended) career assignments alongside current ones.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "50",
                  "description": "",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Every career the person holds or has previously held, each with its level and dates and marked as current or previous. Previous assignments are included by default; pass includePrevious=false to exclude them.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Unassign a person from every career",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/careers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "careers"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Clears all of one person's careers in a single call, writing career history for each before removing the live assignment. Scoped to the named person — it never touches anyone else.\n\n**Requires scope:** `careers:write`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Career Type",
      "item": [
        {
          "name": "List career types",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/career-types",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "career-types"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Create a career type",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/career-types",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "career-types"
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Job Role\",\n  \"description\": \"Line-level roles.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get a career type",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/career-types/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "career-types",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:read`."
          },
          "response": []
        },
        {
          "name": "Update a career type",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/career-types/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "career-types",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `careers:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Group\",\n  \"description\": \"Skill groups.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a career type",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/career-types/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "career-types",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Refuses with a 409 conflict while any career is assigned to the type.\n\n**Requires scope:** `careers:write`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Flags",
      "item": [
        {
          "name": "List people flags",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags"
              ]
            },
            "description": "**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Create a people flag",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"High potential\",\n  \"description\": \"Succession candidates.\",\n  \"color\": \"#F59E0B\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get the people-flag visibility setting",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/visibility",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                "visibility"
              ]
            },
            "description": "One company-wide setting controlling which access levels can see people flags. Administrators always see them — that is not configurable. Skill flags have NO equivalent layer.\n\n**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Update the people-flag visibility setting",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/visibility",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                "visibility"
              ]
            },
            "description": "Any subset of the three configurable audiences.\n\n**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"visibleToFullAccess\": true,\n  \"visibleToManagers\": true,\n  \"visibleToEmployees\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Check whether the acting identity can see people flags",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/visibility/me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                "visibility",
                "me"
              ]
            },
            "description": "The resolved answer, combining the acting identity's access level with the setting.\n\n**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Reorder people flags",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/reorder",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                "reorder"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"7\",\n    \"3\",\n    \"9\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Update a people flag",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"High potential\",\n  \"description\": \"Succession candidates.\",\n  \"color\": \"#F59E0B\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a people flag",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                ":id"
              ],
              "query": [
                {
                  "key": "confirm",
                  "value": "",
                  "description": "The literal string `true` confirms the delete despite carriers.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Refuses with a conflict reporting how many people carry it; ?confirm=true proceeds. System defaults cannot be deleted, only disabled.\n\n**Requires scope:** `flags:write`."
          },
          "response": []
        },
        {
          "name": "Enable a people flag",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/:id/enable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                ":id",
                "enable"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Re-enabling restores every existing assignment to the reads — nothing was deleted.\n\n**Requires scope:** `flags:write`."
          },
          "response": []
        },
        {
          "name": "Disable a people flag",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/:id/disable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                ":id",
                "disable"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "NOT only a block on new assignments: every existing assignment of a disabled flag disappears from the reads. No rows are deleted; re-enabling restores them. An integrator reconciling assignments will otherwise see rows vanish with no delete.\n\n**Requires scope:** `flags:write`."
          },
          "response": []
        },
        {
          "name": "Count what depends on a people flag",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/:id/dependencies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                ":id",
                "dependencies"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "List people carrying a flag",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-flags/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-flags",
                ":id",
                "people"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Flag assignments across people, with who assigned each and when.\n\n**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "List a person's people flags",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/people-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "people-flags"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The flags the person carries, with who assigned each and when.\n\n**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Assign people flags to a person",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/people-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "people-flags"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"flagIds\": [\n    \"7\",\n    \"3\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove people flags from a person",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/people-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "people-flags"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"flagIds\": [\n    \"7\",\n    \"3\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List skill flags",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags"
              ]
            },
            "description": "**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Create a skill flag",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"High potential\",\n  \"description\": \"Succession candidates.\",\n  \"color\": \"#F59E0B\",\n  \"designatesTrainer\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Reorder skill flags",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/reorder",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                "reorder"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"7\",\n    \"3\",\n    \"9\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get a skill flag",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Update a skill flag",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"High potential\",\n  \"description\": \"Succession candidates.\",\n  \"color\": \"#F59E0B\",\n  \"designatesTrainer\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a skill flag",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                ":id"
              ],
              "query": [
                {
                  "key": "confirm",
                  "value": "",
                  "description": "The literal string `true` confirms the delete despite assignments.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Refuses with a conflict reporting assignment counts per scope; ?confirm=true proceeds. Skill flags are soft-deleted; system defaults cannot be deleted.\n\n**Requires scope:** `flags:write`."
          },
          "response": []
        },
        {
          "name": "Enable a skill flag",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/:id/enable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                ":id",
                "enable"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Restores every existing assignment to the reads, counts and metrics.\n\n**Requires scope:** `flags:write`."
          },
          "response": []
        },
        {
          "name": "Disable a skill flag",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/:id/disable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                ":id",
                "disable"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "NOT only a block on new assignments: existing assignments of a disabled flag vanish from the assignment reads, the trainer counts, the metrics AND the training approver pool — someone carrying a trainer-designating flag stops counting as a trainer the moment it is disabled. No rows are deleted.\n\n**Requires scope:** `flags:write`."
          },
          "response": []
        },
        {
          "name": "Set whether a skill flag designates a trainer",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/:id/trainer-designation",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                ":id",
                "trainer-designation"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Drives trainer counts, metrics and the training approver pool.\n\n**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"designatesTrainer\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Count what depends on a skill flag",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flags/:id/dependencies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flags",
                ":id",
                "dependencies"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Assignment counts across all four scopes.\n\n**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Query skill-flag assignments at a scope",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/:scope",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                ":scope"
              ],
              "query": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Only assignments held by this person.",
                  "disabled": true
                },
                {
                  "key": "flagId",
                  "value": "",
                  "description": "Only assignments of this flag.",
                  "disabled": true
                },
                {
                  "key": "careerId",
                  "value": "",
                  "description": "Only assignments under this career — not valid for the skills scope.",
                  "disabled": true
                },
                {
                  "key": "scopeId",
                  "value": "",
                  "description": "The section, skill-group or skill id, matching the scope.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "scope",
                  "value": "",
                  "description": "Which of the four assignment scopes to query."
                }
              ]
            },
            "description": "scope is one of careers, sections, skill-groups, skills. Filter by personId, flagId, careerId (not for the skills scope) and scopeId (the section/skill-group/skill id). Assignments of DISABLED flags do not appear — disable hides, it does not delete.\n\n**Requires scope:** `flags:read`."
          },
          "response": []
        },
        {
          "name": "Apply flags at the career scope",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/careers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "careers"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"careerId\": \"18\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove flags at the career scope",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/careers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "careers"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"careerId\": \"18\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Apply flags at the section scope",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/sections",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "sections"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"careerId\": \"18\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ],\n  \"sectionId\": \"77\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove flags at the section scope",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/sections",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "sections"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"careerId\": \"18\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ],\n  \"sectionId\": \"77\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Apply flags at the skill-group scope",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/skill-groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "skill-groups"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"careerId\": \"18\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ],\n  \"skillGroupId\": \"9\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove flags at the skill-group scope",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/skill-groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "skill-groups"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"careerId\": \"18\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ],\n  \"skillGroupId\": \"9\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Apply flags at the skill scope",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "skills"
              ]
            },
            "description": "The one scope that is NOT career-relative — it keys off the skill alone.\n\n**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"skillId\": \"63\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove flags at the skill scope",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-flag-assignments/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-flag-assignments",
                "skills"
              ]
            },
            "description": "**Requires scope:** `flags:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"skillId\": \"63\",\n  \"flagId\": \"7\",\n  \"personIds\": [\n    \"91\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Count trainers for a skill group",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-groups/:id/trainer-count",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-groups",
                ":id",
                "trainer-count"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "How many people carry an ENABLED trainer-designating flag for the group.\n\n**Requires scope:** `flags:read`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Grading Scale",
      "item": [
        {
          "name": "Read the company grading scale",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/grading-scale",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "grading-scale"
              ]
            },
            "description": "Every rung: id, numeric grade, short label, long description and active flag. Benchmarks reference rungs by id.\n\n**Requires scope:** `careers:read`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Health",
      "item": [
        {
          "name": "Check connectivity",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/ping",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "ping"
              ]
            },
            "description": "Verifies your API key end to end. Returns the API version and server time.\n\n**Requires scope:** none (any valid API key)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Learning Plans",
      "item": [
        {
          "name": "Get a learning plan",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/learning-plans/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "learning-plans",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `learning:read`."
          },
          "response": []
        },
        {
          "name": "Update a learning plan",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/learning-plans/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "learning-plans",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Due date and state only. A due date cannot be set in the past, and a manager-set due date cannot be changed by the person it belongs to.\n\n**Requires scope:** `learning:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"dueDate\": \"2026-05-01T00:00:00.000Z\",\n  \"state\": \"not_started\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rate a learning plan",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/learning-plans/:id/rating",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "learning-plans",
                ":id",
                "rating"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "One of three values — positive, strongly_positive, negative — or null to CLEAR the rating. Clearing is a real write, never a silent no-op. A rating is the plan owner's own feedback: the ACTING PERSON can rate only their own plans, even as an admin.\n\n**Requires scope:** `learning:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rating\": \"positive\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List people assigned to a learning item",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/learning-items/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "learning-items",
                ":id",
                "people"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Who currently has this learning item on a plan, with each plan's state.\n\n**Requires scope:** `learning:read`."
          },
          "response": []
        },
        {
          "name": "Assign learning to people",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/learning-items/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "learning-items",
                ":id",
                "people"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Bulk by nature: creates a plan entry for each person against the item.\n\n**Requires scope:** `learning:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Unassign learning from people",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/learning-items/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "learning-items",
                ":id",
                "people"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Bulk removal of the item from the named people's plans.\n\n**Requires scope:** `learning:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personIds\": [\n    \"91\",\n    \"92\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Org Structure",
      "item": [
        {
          "name": "List the org dimensions",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/dimensions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                "dimensions"
              ]
            },
            "description": "The eleven dimension keys: businessUnits, divisions, businessRegions, countries, states, cities, sites, buildings, departments, teams, shifts. Flat facets — no parent-child structure exists between them.\n\n**Requires scope:** `org:read`."
          },
          "response": []
        },
        {
          "name": "Get the manager tree",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/manager-tree",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                "manager-tree"
              ],
              "query": [
                {
                  "key": "includeInactive",
                  "value": "",
                  "description": "Pass true to include inactive people.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ]
            },
            "description": "The company's reporting hierarchy as flat parent-pointer rows ordered by depth (roots at level 0). A person's own subtree is GET /people/{id}/span-of-control.\n\n**Requires scope:** `org:read`."
          },
          "response": []
        },
        {
          "name": "List a dimension's values",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/:dimension",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                ":dimension"
              ],
              "variable": [
                {
                  "key": "dimension",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Every value with its name and active state — deactivated values stay readable.\n\n**Requires scope:** `org:read`."
          },
          "response": []
        },
        {
          "name": "Create a dimension value",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/:dimension",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                ":dimension"
              ],
              "variable": [
                {
                  "key": "dimension",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Name only. Values have no ordering; deactivate to retire one reversibly, or DELETE to remove it outright.\n\n**Requires scope:** `org:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Fabrication\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Update a dimension value",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/:dimension/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                ":dimension",
                ":id"
              ],
              "variable": [
                {
                  "key": "dimension",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Rename it, or set isActive:false to deactivate it reversibly. To remove a value outright, use DELETE.\n\n**Requires scope:** `org:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Fabrication\",\n  \"isActive\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a dimension value",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/:dimension/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                ":dimension",
                ":id"
              ],
              "query": [
                {
                  "key": "confirm",
                  "value": "",
                  "description": "The literal string `true` confirms the delete despite people holding the value.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "dimension",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Removes the value outright — the cleanup path deactivation cannot provide. When people hold the value, the delete refuses with a 409 carrying the dependency counts; retry with ?confirm=true to remove their memberships (and clear the legacy person-record column) and delete anyway. A value referenced by records outside this API — assessments, surveys, qual cards, saved views, or another org value — cannot be deleted; deactivate it instead. Check GET .../usage first.\n\n**Requires scope:** `org:write`."
          },
          "response": []
        },
        {
          "name": "Check where a dimension value is used",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/:dimension/:id/usage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                ":dimension",
                ":id",
                "usage"
              ],
              "variable": [
                {
                  "key": "dimension",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "How many people hold the value, before deactivating it. departments and businessRegions also report references through the legacy single-value column on the person record, which this API never writes.\n\n**Requires scope:** `org:read`."
          },
          "response": []
        },
        {
          "name": "List people by org placement",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/org/:dimension/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "org",
                ":dimension",
                ":id",
                "people"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "dimension",
                  "value": "",
                  "description": ""
                },
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Everyone holding the value through the membership relationship.\n\n**Requires scope:** `org:read`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "People",
      "item": [
        {
          "name": "List people",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people"
              ],
              "query": [
                {
                  "key": "activeOnly",
                  "value": "",
                  "description": "Pass true to exclude inactive people.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "description": "Comma-separated fields, `-` prefix for descending (e.g. `-firstName`). Sortable: `firstName`, `lastName`, `email`.",
                  "disabled": true
                },
                {
                  "key": "filter[firstName][eq]",
                  "value": "",
                  "description": "Filter dialect: `filter[field][operator]=value`; operators `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, `like`, `nlike`, `isnull`. Filterable: `firstName`, `lastName`, `email`, `externalId`.",
                  "disabled": true
                }
              ]
            },
            "description": "Everyone in the company, bounded by the acting identity's access level: admin sees their departments, a manager their span of control. Filter by firstName, lastName, email or externalId; pass activeOnly=true to exclude inactive people.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Create a person",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people"
              ]
            },
            "description": "First name, last name, email and an assignable access level are mandatory. Creating a person also creates their identity in the authentication provider. Returns a conflict when the email is already in use in the company. The granted access level can never exceed the acting identity's own.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"Dana\",\n  \"lastName\": \"Reviewer\",\n  \"email\": \"dana@example.com\",\n  \"accessLevel\": \"basic\",\n  \"externalId\": \"EMP-0042\",\n  \"managerId\": \"88\",\n  \"jobTitleId\": \"12\",\n  \"peopleTypeId\": \"3\",\n  \"countryId\": \"231\",\n  \"businessPhone\": \"+1 555 0100\",\n  \"mobilePhone\": \"+1 555 0101\",\n  \"homePhone\": \"+1 555 0102\",\n  \"address\": \"12 Foundry Rd\",\n  \"city\": \"Springfield\",\n  \"stateProvince\": \"IL\",\n  \"postalCode\": \"62704\",\n  \"webPage\": \"https://example.com\",\n  \"externalCompanyName\": \"Acme Contracting\",\n  \"nextAvailableDate\": \"2026-04-01T00:00:00.000Z\",\n  \"careerIds\": [\n    \"18\"\n  ],\n  \"learningIds\": [\n    \"7\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Count people",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/count",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                "count"
              ],
              "query": [
                {
                  "key": "activeOnly",
                  "value": "",
                  "description": "Pass true to count only active people.",
                  "disabled": true
                }
              ]
            },
            "description": "Headcount aggregated server-side, bounded like the list.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "List managers and above",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/managers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                "managers"
              ],
              "query": [
                {
                  "key": "excludeSubtreeOf",
                  "value": "",
                  "description": "Person id whose reporting subtree (self included) is stripped from the list.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ]
            },
            "description": "Everyone whose access level is not basic — the only definition available, since the stored levels do not rank. For populating a manager picker; pass excludeSubtreeOf to strip a person's own reporting subtree so a loop cannot be selected.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Get reporting-structure distribution",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/distribution",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                "distribution"
              ]
            },
            "description": "Active headcount by access level and by manager, aggregated server-side.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Get a person",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "One person: identity, contact details, employment attributes, access level, manager, org schema memberships, active status and audit dates.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Update a person",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "A TRUE partial update: a field that is absent stays unchanged, an explicit null clears. Email, access level, manager, job title, people type and active status each move through their own operation.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"firstName\": \"Dana\",\n  \"lastName\": \"Reviewer\",\n  \"externalId\": \"EMP-0042\",\n  \"businessPhone\": \"string\",\n  \"mobilePhone\": \"string\",\n  \"homePhone\": \"string\",\n  \"address\": \"string\",\n  \"city\": \"string\",\n  \"stateProvince\": \"string\",\n  \"postalCode\": \"string\",\n  \"countryId\": \"string\",\n  \"webPage\": \"string\",\n  \"externalCompanyName\": \"string\",\n  \"nextAvailableDate\": \"string\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get a person's avatar",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/avatar",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "avatar"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "A short-lived resolved URL to the profile picture, or null when none is set. The app's own avatar read is less guarded than the rest of the record; that exception does not carry over — this runs the same checks as the person read.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Change a person's email address",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/email",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "email"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Separate from update because it moves in step with the authentication provider. Rejects an address already in use in the company with a conflict.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"dana.new@example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Set a person's access level",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/access-level",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "access-level"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "One of the four assignable slugs — basic, manager, admin, fullaccess. Refuses a level above the acting identity's own (403) and the three legacy levels (400).\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accessLevel\": \"manager\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Set a person's manager",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/manager",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "manager"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Assign, change or clear (null) the manager. Refuses with a conflict — reporting who and at what depth — when the proposed manager is a direct or indirect report of this person, rather than creating a reporting loop.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"managerId\": \"88\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Set a person's job title",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/job-title",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "job-title"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Job title is a company-level record referenced by id; null clears it.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"jobTitleId\": \"12\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Set a person's people type",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/people-type",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "people-type"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "People type is a company-level record referenced by id, with an optional expiry; null clears both.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"peopleTypeId\": \"3\",\n  \"expiresAt\": \"2026-12-31T00:00:00.000Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Deactivate a person",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/deactivate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "deactivate"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Marks the person inactive and stamps the inactive date. There is no delete — deactivation is the lifecycle operation. Already inactive returns a conflict.\n\n**Requires scope:** `people:write`."
          },
          "response": []
        },
        {
          "name": "Activate a person",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/activate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "activate"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Clears inactive status and the inactive date. Already active returns a conflict.\n\n**Requires scope:** `people:write`."
          },
          "response": []
        },
        {
          "name": "List a person's direct reports",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/direct-reports",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "direct-reports"
              ],
              "query": [
                {
                  "key": "includeInactive",
                  "value": "",
                  "description": "Pass true to include inactive people.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The people whose manager is this person — one level only.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "List a person's span of control",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/span-of-control",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "span-of-control"
              ],
              "query": [
                {
                  "key": "includeInactive",
                  "value": "",
                  "description": "Pass true to include inactive people.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The full reporting subtree beneath the person, to unbounded depth, each entry carrying its level. The subject is the root at level 0 and IS included — a headcount over the rows is off by one if that is forgotten. Inactive people are excluded by default; pass includeInactive=true to include them.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Get a person's org schema",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/org-schema",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "org-schema"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Every dimension the person belongs to — eleven independent many-to-many memberships, each as references with id and name.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Attach org schema to a person",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/org-schema",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "org-schema"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Add memberships in any subset of the eleven dimensions. ADDITIVE ONLY — never removes an existing membership, and ids the person already holds are ignored rather than erroring. Unknown ids are rejected, naming which.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"businessUnitIds\": [\n    \"4\"\n  ],\n  \"divisionIds\": [\n    \"string\"\n  ],\n  \"businessRegionIds\": [\n    \"string\"\n  ],\n  \"countryIds\": [\n    \"string\"\n  ],\n  \"stateIds\": [\n    \"string\"\n  ],\n  \"cityIds\": [\n    \"string\"\n  ],\n  \"siteIds\": [\n    \"string\"\n  ],\n  \"buildingIds\": [\n    \"string\"\n  ],\n  \"departmentIds\": [\n    \"string\"\n  ],\n  \"teamIds\": [\n    \"string\"\n  ],\n  \"shiftIds\": [\n    \"string\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Detach org schema from a person",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/org-schema",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "org-schema"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Remove named memberships in any subset of the eleven dimensions.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"businessUnitIds\": [\n    \"4\"\n  ],\n  \"divisionIds\": [\n    \"string\"\n  ],\n  \"businessRegionIds\": [\n    \"string\"\n  ],\n  \"countryIds\": [\n    \"string\"\n  ],\n  \"stateIds\": [\n    \"string\"\n  ],\n  \"cityIds\": [\n    \"string\"\n  ],\n  \"siteIds\": [\n    \"string\"\n  ],\n  \"buildingIds\": [\n    \"string\"\n  ],\n  \"departmentIds\": [\n    \"string\"\n  ],\n  \"teamIds\": [\n    \"string\"\n  ],\n  \"shiftIds\": [\n    \"string\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Replace a person's org schema in one dimension",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:id/org-schema/:dimension",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":id",
                "org-schema",
                ":dimension"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "dimension",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Set the person's memberships in one dimension to exactly the supplied list, adding and removing as needed — the shape an HRIS sync actually needs. Dimensions: businessUnits, divisions, businessRegions, countries, states, cities, sites, buildings, departments, teams, shifts.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ids\": [\n    \"4\",\n    \"9\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Person Attributes",
      "item": [
        {
          "name": "List job titles",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/job-titles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "job-titles"
              ]
            },
            "description": "**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Create a job title",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/job-titles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "job-titles"
              ]
            },
            "description": "**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Fabricator\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get a job title",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/job-titles/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "job-titles",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Update a job title",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/job-titles/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "job-titles",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Fabricator\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a job title",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/job-titles/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "job-titles",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Refuses with a conflict when people still hold it, reporting the count — the app deletes it outright with no guard.\n\n**Requires scope:** `people:write`."
          },
          "response": []
        },
        {
          "name": "List people types",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-types",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-types"
              ]
            },
            "description": "**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "Create a people type",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-types",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-types"
              ]
            },
            "description": "**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Contractor\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Update a people type",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-types/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-types",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Does not exist in the app — people types could be created and never corrected.\n\n**Requires scope:** `people:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Contractor\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a people type",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people-types/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people-types",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Refuses with a conflict when people still hold it, reporting the count.\n\n**Requires scope:** `people:write`."
          },
          "response": []
        },
        {
          "name": "List access levels",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/access-levels",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "access-levels"
              ]
            },
            "description": "The four assignable levels as stable slugs plus the three legacy levels marked read-only, so a client can render any person. Published by SkillsDB, never configured per company.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        },
        {
          "name": "List countries",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/countries",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "countries"
              ]
            },
            "description": "The global reference list a person's country field points at. Read-only.\n\n**Requires scope:** `people:read`."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Skill Requests",
      "item": [
        {
          "name": "List skill requests",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-requests",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-requests"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "Only requests in this status.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ]
            },
            "description": "Outstanding and decided requests, with the requester, the requested name and description, the current status, and the reviewer, decision date and notes once decided. Filter with status=pending|approved|rejected.\n\n**Requires scope:** `skills:read`."
          },
          "response": []
        },
        {
          "name": "Request a skill",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-requests",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-requests"
              ]
            },
            "description": "Submit a proposed name and description. The request starts as pending.\n\n**Requires scope:** `skills:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Welding\",\n  \"description\": \"MIG and TIG welding.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Approve a skill request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-requests/:id/approve",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-requests",
                ":id",
                "approve"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Accept the request, with optional review notes. Approving creates the skill in the library and assigns it to the requester. A request that is already decided returns a conflict.\n\n**Requires scope:** `skills:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"notes\": \"Approved for the fabrication track.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Reject a skill request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skill-requests/:id/reject",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skill-requests",
                ":id",
                "reject"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Decline the request, with optional review notes. A request that is already decided returns a conflict.\n\n**Requires scope:** `skills:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"notes\": \"Approved for the fabrication track.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Skills",
      "item": [
        {
          "name": "List skills",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "",
                  "description": "Comma-separated fields, `-` prefix for descending (e.g. `-name`). Sortable: `name`.",
                  "disabled": true
                },
                {
                  "key": "filter[name][eq]",
                  "value": "",
                  "description": "Filter dialect: `filter[field][operator]=value`; operators `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, `like`, `nlike`, `isnull`. Filterable: `name`, `description`.",
                  "disabled": true
                }
              ]
            },
            "description": "All skills for the company, filterable and searchable. Each entry carries its usage: every career that includes it (attached directly or under a section, Required or not), how many people hold it, and whether any career including it has training dates enabled.\n\n**Requires scope:** `skills:read`."
          },
          "response": []
        },
        {
          "name": "Create a skill",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills"
              ]
            },
            "description": "Name and description only — the create surface maps exactly these fields. Skills cannot be deleted through the API; there is no such operation in the product.\n\n**Requires scope:** `skills:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Welding\",\n  \"description\": \"MIG and TIG welding.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get a skill",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "One skill: name, description, and whether it is a certification.\n\n**Requires scope:** `skills:read`."
          },
          "response": []
        },
        {
          "name": "Update a skill",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Change the name and/or description. An omitted field is left unchanged. A name or description change writes a new entry in the skill's version history.\n\n**Requires scope:** `skills:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Welding\",\n  \"description\": \"MIG and TIG welding.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete a skill",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id"
              ],
              "query": [
                {
                  "key": "confirm",
                  "value": "",
                  "description": "The literal string `true` confirms the delete despite dependents.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Soft-deletes the skill, matching the app's skills-library semantics: career attachments, grades and history are preserved as historic data, but the skill leaves every listing and filter. When the skill is attached to careers or held by people, the delete refuses with a 409 carrying the dependency counts; retry with ?confirm=true to proceed. Prefer archive for a reversible retirement.\n\n**Requires scope:** `skills:write`."
          },
          "response": []
        },
        {
          "name": "Archive a skill",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id",
                "archive"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The retirement path (ENG-4161): the skill leaves the default library listing but keeps every grade, training and history row, and remains readable by id. Reversible with unarchive. Skills have no delete — a mistaken creation is archived, not destroyed.\n\n**Requires scope:** `skills:write`."
          },
          "response": []
        },
        {
          "name": "Unarchive a skill",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id/unarchive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id",
                "unarchive"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Returns an archived skill to the active library.\n\n**Requires scope:** `skills:write`."
          },
          "response": []
        },
        {
          "name": "List people who hold a skill",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id/people",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id",
                "people"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Everyone with the skill — held directly or through a career that includes it. Respects span of control: a manager sees only their own people.\n\n**Requires scope:** `skills:read`."
          },
          "response": []
        },
        {
          "name": "List a skill's versions",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id/versions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id",
                "versions"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Each version's name and description snapshot, who edited it, when, an optional change note, and whether it is the baseline entry created when the skill was first added.\n\n**Requires scope:** `skills:read`."
          },
          "response": []
        },
        {
          "name": "List a skill's activity",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id/activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id",
                "activity"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "A VERSION log, not a change feed — exactly three event types are emitted: baseline (skill created), version_created (name or description changed, linked to its version), and renew_training (with the affected-user count and renewal option). Request approvals, career attach/detach and benchmark changes produce no entry here.\n\n**Requires scope:** `skills:read`."
          },
          "response": []
        },
        {
          "name": "List a person's directly-assigned skills",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "skills"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The person's additional skills — the direct person-to-skill assignments, not the ones conferred by a career or section. This is the relationship recording a training requires.\n\n**Requires scope:** `skills:read`."
          },
          "response": []
        },
        {
          "name": "Assign skills to a person",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "skills"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Assigns existing catalogue skills directly to the person. Skills already assigned are skipped, never re-graded. The caller's permission over the person governs: a key acting as the person assigns to themselves, a manager within their span, an admin anywhere in the company.\n\n**Requires scope:** `skills:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"skillIds\": [\n    \"512\",\n    \"513\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remove skills from a person",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/skills",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "skills"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Removes direct skill assignments (with their grades and flags) from the person, writing history first. Skills not directly assigned are skipped — career-conferred skills are managed through the career, not here.\n\n**Requires scope:** `skills:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"skillIds\": [\n    \"512\",\n    \"513\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Training",
      "item": [
        {
          "name": "List training records",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings"
              ],
              "query": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Only trainings recorded for this person.",
                  "disabled": true
                },
                {
                  "key": "skillId",
                  "value": "",
                  "description": "Only trainings recorded against this skill.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "",
                  "description": "Only trainings in this status.",
                  "disabled": true
                },
                {
                  "key": "expiresWithinDays",
                  "value": "",
                  "description": "Only trainings expiring within this many days from now.",
                  "disabled": true
                },
                {
                  "key": "expiredOnly",
                  "value": "",
                  "description": "Pass true to return only already-expired trainings.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ]
            },
            "description": "Training records across people — filter by personId and/or skillId for the per-person and per-skill views, by status, or by expiry (expiredOnly=true, or expiresWithinDays=N for the approaching window). Bounded by the acting identity's access level. Statuses expired/pending/submitted can appear on reads but no API write produces them — they are set only by the CSV history importer.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "Record a training",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings"
              ]
            },
            "description": "Records a training against a person's skill — the skill must already be on the person's profile. preApproved=true creates the record already approved, bypassing the request step. notApplicable=true records the exclusion without deleting anything. Evidence rules (note, attachments, or both) are configured on the career skill.\n\n**Requires scope:** `training:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"personId\": \"91\",\n  \"skillId\": \"63\",\n  \"trainingDate\": \"2026-02-10T00:00:00.000Z\",\n  \"trainer\": \"J. Instructor\",\n  \"evidenceNote\": \"Completed the practical assessment.\",\n  \"delegatedApproverId\": \"88\",\n  \"preApproved\": false,\n  \"notApplicable\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get a training record",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "One record in full, including rejection or cancellation detail where applicable.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "Update a training",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Amend the date, trainer or evidence note while the record is still open.\n\n**Requires scope:** `training:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"trainingDate\": \"2026-02-11T00:00:00.000Z\",\n  \"trainer\": \"J. Instructor\",\n  \"evidenceNote\": \"Amended evidence note.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get download links for training evidence",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings/:id/evidence",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings",
                ":id",
                "evidence"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The record's attached files, each with a time-limited download link.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "List potential approvers",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings/:id/potential-approvers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings",
                ":id",
                "potential-approvers"
              ],
              "query": [
                {
                  "key": "expertsOnly",
                  "value": "",
                  "description": "Pass true to return only the trainer-flag holders.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Who may decide on this training — a union of three unrelated authorities: global-admin and full-access users, the submitter's entire chain of command, and holders of a trainer-designating skill flag at any of four scopes. expertsOnly=true returns just the flag holders. Entitlement is evaluated point-in-time and not retained on decisions.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "Approve a training",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings/:id/approve",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings",
                ":id",
                "approve"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Approver eligibility (role, chain of command, or trainer flag — including delegation) is enforced by the service at decision time.\n\n**Requires scope:** `training:write`."
          },
          "response": []
        },
        {
          "name": "Reject a training",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings/:id/reject",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings",
                ":id",
                "reject"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Requires a reason, which is shown to the employee.\n\n**Requires scope:** `training:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"Practical assessment not evidenced.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Cancel a training",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/trainings/:id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "trainings",
                ":id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Cancels an approved training, with a required reason.\n\n**Requires scope:** `training:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"Practical assessment not evidenced.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List training approvals",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/training-approvals",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "training-approvals"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "description": "The decidable state to list; defaults to awaiting_approval.",
                  "disabled": true
                },
                {
                  "key": "personId",
                  "value": "",
                  "description": "Only approvals concerning this person.",
                  "disabled": true
                },
                {
                  "key": "skillId",
                  "value": "",
                  "description": "Only approvals concerning this skill.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ]
            },
            "description": "Approvals in any decidable state — awaiting_approval (the default actionable feed), approved, rejected or cancelled — filterable by personId and skillId.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "Preview a training renewal",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id/renew-training/preview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id",
                "renew-training",
                "preview"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "How many trainings each renewal option would affect, before running it.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "Renew training on a skill",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Optional but recommended on writes: a retried request replays the original response instead of repeating the write. Enable per request.",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills/:id/renew-training",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills",
                ":id",
                "renew-training"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Marks affected trainings as needing re-approval across everyone holding the skill — a fan-out write that counts against the bulk bucket. Superseded records are preserved in training history and stay readable through the per-person training log. The response carries the counts the renewal was measured against.\n\n**Requires scope:** `training:write`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"option\": \"with_approval\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List a person's training log for a skill",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/skills/:skillId/training-log",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "skills",
                ":skillId",
                "training-log"
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                },
                {
                  "key": "skillId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Every training recorded against one person's skill in date order — live and superseded together, each flagged isSuperseded. The only read that surfaces records replaced by renewal, and where skillVersionId shows a training was completed against an older definition of the skill.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "List a person's approval activity",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/approval-activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "approval-activity"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Everything this person DECIDED as an approver — approved, rejected or cancelled — with the outcome, timestamp, reason where given, and the training/skill/person concerned. Spans live and superseded records. The authority under which they decided (role, chain of command, or trainer flag) is evaluated point-in-time and NOT retained, so it is not reported here.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "List a person's approval requests",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/approval-requests",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "approval-requests"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "The other side of the relationship: trainings this person SUBMITTED for approval, with their current state and who decided them.\n\n**Requires scope:** `training:read`."
          },
          "response": []
        },
        {
          "name": "List a person's learning plans",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/people/:personId/learning-plans",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "people",
                ":personId",
                "learning-plans"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "description": "Page size. Out-of-range values are rejected, never clamped.",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Rows to skip.",
                  "disabled": true
                }
              ],
              "variable": [
                {
                  "key": "personId",
                  "value": "",
                  "description": "Opaque resource id."
                }
              ]
            },
            "description": "Every plan for one person: the learning item, its lifecycle state, due date and who set it, its rating, and the career assignment the plan belongs to.\n\n**Requires scope:** `learning:read`."
          },
          "response": []
        }
      ]
    }
  ]
}
