Program Progress API — Types
ProgramProgressConnection
Paginated program progress results.
| Field | Type | Description |
|---|---|---|
totalCount | Int! | Total number of matching records |
pageInfo | PageInfo! | Pagination metadata |
edges | [ProgramProgressEdge!]! | Program progress records |
ProgramProgressEdge
An edge in the program progress connection.
| Field | Type | Description |
|---|---|---|
cursor | String! | Cursor for this edge |
node | ProgramProgressRecord! | The program progress record |
ProgramProgressRecord
A single program progress record representing a user's enrollment and progress in a program.
| Field | Type | Description |
|---|---|---|
userId | String! | The user's ID (UUID) |
userEmail | String! | The user's email address |
userFirstName | String! | The user's first name |
userLastName | String! | The user's last name |
enrollmentStatus | EnrollmentStatus! | The enrollment status |
enrolledAt | Time! | When the user was enrolled |
unenrolledAt | Time | When the user was unenrolled, if applicable |
graduatedAt | Time | When the user graduated, if applicable |
completedAt | Time | When the user completed the program, if applicable |
programKey | String! | The program key |
programVersion | String! | The program version |
programType | ProgramType! | The program type |
lastActiveAt | Time | When the user was last active |
learnerHours | Float! | Total learner hours spent |
completionPercentage | Float! | Overall completion percentage (0-100) |
projectsRequiredTotal | Int! | Total number of required projects |
projectsRequiredCompleted | Int! | Number of required projects completed |
onTrackStatus | OnTrackStatus! | The user's on-track status |
learningPlanId | String | The associated learning plan ID, if applicable |
PageInfo
Cursor-based pagination metadata.
| Field | Type | Description |
|---|---|---|
hasNextPage | Boolean! | Whether more results are available |
hasPreviousPage | Boolean! | Whether previous results exist |
startCursor | String | Cursor of the first edge |
endCursor | String | Cursor of the last edge |
Enums
ProgramProgressOrderBy
| Value | Description |
|---|---|
EMAIL | Order by user email |
PROGRAM_TITLE | Order by program title |
ENROLLMENT_STATUS | Order by enrollment status |
LAST_ACTIVE | Order by last active date |
COMPLETED_PROJECTS | Order by number of completed projects |
LEARNING_TIME | Order by total learning time |
SortOrder
| Value | Description |
|---|---|
ASC | Ascending |
DESC | Descending |
ProgramType
| Value | Description |
|---|---|
NANODEGREE | A Nanodegree program |
COURSE | A course |
PART | A part (section of a larger program) |
EnrollmentStatus
| Value | Description |
|---|---|
ENROLLED | Currently enrolled |
UNENROLLED | Unenrolled from the program |
GRADUATED | Graduated from the program |
STATIC_ACCESS | Has static (read-only) access |
OnTrackStatus
| Value | Description |
|---|---|
ON_TRACK | Progressing on schedule |
OFF_TRACK | Behind schedule |
MONITOR | At risk, needs monitoring |
COMPLETED | Completed the program |
READY_TO_GRADUATE | Ready to graduate |
GRADUATED | Has graduated |
Scalars
| Scalar | Description |
|---|---|
Time | Date and time formatted as an RFC 3339 string (e.g., 2026-03-10T14:30:00Z) |