---
title: "Get Upskill Plan Assignment"
method: GET
path: "/api/v2/careerhub/{profileEncId}/upskill-plan-assignment/{planId}"
tags: ["Upskill Plan Assignment"]
---

# Get Upskill Plan Assignment

`GET /api/v2/careerhub/{profileEncId}/upskill-plan-assignment/{planId}`

Fetch an upskilling plan assignment by `(profileEncId, planId)`.

## Path parameters

- `profileEncId` string, required
- `planId` string, required

## Query parameters

- `exclude` string
- `keyList` string

## Headers

- `Authorization` string, required

## Response `200`

OK

- UpskillingPlanAssignmentSchema
  - `createdAt` integer, nullable — Created timestamp (epoch seconds)
  - `id` integer, nullable — Assignment id (profile_data primary key)
  - `planStatus` string, nullable — invited | in_progress | completed | archived
  - `entityStatuses` UpskillingPlanEntityStatus[], nullable — Per-entity progress
    - `completed` integer[], nullable — Entity ids completed
    - `notStarted` integer[], nullable — Entity ids not started
    - `inProgress` integer[], nullable — Entity ids in progress
    - `entityType` string, nullable — Entity type: task | course | project
  - `name` string, nullable, required — Plan display name
  - `userId` string, nullable — Plan owner user id
  - `completionPercentage` integer, nullable — Completion percentage 0-100 (derived)
  - `metadata` UpskillingPlanMetadata
    - `planSubtype` string, nullable — Plan subtype: general | role | skill
    - `visibility` string, nullable — public | private
    - `tasks` object, nullable — Tasks keyed by entity_id
    - `planDurationDays` integer, nullable — Plan duration in days
    - `planSections` object[], nullable — Ordered plan sections (entity_type + entity_data)
    - `planSectionsLayout` object[], nullable — Plan sections layout metadata
    - `planType` string, nullable — Plan type: profile | role
    - `permissions` object[], nullable — Per-entity permission rows
    - `lastUpdateProfileId` string, nullable — Profile id of last editor
    - `tPublish` integer, nullable — Publish timestamp (epoch seconds)
    - `description` string, nullable — Plan description
  - `profileId` integer, nullable — Assignee profile id
  - `startDate` integer, nullable — Start date (epoch seconds)
  - `lastProgressTs` integer, nullable — Last progress timestamp (epoch seconds, system-set)
  - `calibrationData` UpskillingPlanCalibrationData
    - `jobFunctions` string[], nullable — Job functions
    - `associatedRoleId` string[], nullable — Associated role ids
    - `skills` string[], nullable — Skills associated with this plan
    - `locations` string[], nullable — Locations
    - `businessUnits` string[], nullable — Business units
  - `groupId` string, nullable — Tenant group id
  - `updatedAt` integer, nullable — Updated timestamp (epoch seconds)
  - `lastNotifiedTs` integer, nullable — Last notification timestamp (epoch seconds, system-set)
  - `targetDate` integer, nullable — Target completion date (epoch seconds)
  - `parentPlanId` integer, nullable — Template plan id this assignment was cloned from

---

[API](https://skmtc.net/eightfold/apis/api-server-v2-service-service.md) · [All operations](https://skmtc.net/eightfold/apis/api-server-v2-service-service/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/eightfold/api-server-v2-service-service/versions/0fb26f4e41bf/schema)
