Skip to content

Data exchange API — HTTP reference

Generated from FastAPI OpenAPI and versioned with the source code. Edit routes, Pydantic schemas and their examples, then run python -m scripts.update_http_reference to update this page.

Paths below include the application mount. Add your deployment prefix when calling them. Live Swagger/ReDoc includes deployment-specific defaults; this static snapshot uses source defaults and never reads tenant databases.

6 HTTP operations. WebSocket and MCP transports are documented separately. Metrics and framework routes excluded from OpenAPI are not HTTP contract entries.

Use the Live OpenAPI JSON link above for the complete schema served by this application.

Operations

Method Mounted path Summary
POST /data_exchange/api/v1/feedback/import_feedback_in_consumer_format Import many feedbacks
POST /data_exchange/api/v1/opportunities/import_opportunity_in_consumer_format Import opportunity
GET /data_exchange/api/v1/users/get_user Get user by userID
GET /data_exchange/api/v1/users/get_user/{user_id} Get user by userID
POST /data_exchange/api/v1/users/import_user_in_consumer_format Import user
PUT /data_exchange/api/v1/users/{user_id} Update a user

POST /data_exchange/api/v1/feedback/import_feedback_in_consumer_format

Import many feedbacks

Database compatibility: MongoDB only.

Import a feedback from a dictionary.

This endpoint will process the feedback dictionary and create, or update, a feedback record in the system, and then, adapt the scores from this feedback.

Feedback Object Format:

{
  "_id": "string",
  "clientId": "string",
  "createdAt": 1754507059410,
  "feedbackFlag": "False",
  "jobOpportunityKey": "string",
  "partyId": "string",
  "updatedDatetime": 1754507059410
}

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "additionalProperties": true,
        "description": "Feedback object to import",
        "examples": [
          {
            "_id": "507f1f77bcf86cd799439011",
            "clientId": "1000",
            "createdAt": 1789635600000,
            "feedbackFlag": "Positive",
            "jobOpportunityKey": "503",
            "partyId": "101",
            "updatedDatetime": 1789635600000
          }
        ],
        "title": "Feedback Raw",
        "type": "object"
      }
    }
  }
}

Responses

{
  "201": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "import_feedback_api_v1_feedback_import_feedback_in_consumer_format_post",
  "tags": [
    "Feedbacks"
  ],
  "x-database-compatibility": "MongoDB only"
}

POST /data_exchange/api/v1/opportunities/import_opportunity_in_consumer_format

Import opportunity

Database compatibility: MongoDB only.

Import an opportunity from a dictionary.

This endpoint will process the opportunity dictionary and create, or update a record in the system, and then compute the scores of this opportunity.

Opportunity Object Format:

{
    "_id": "string",
    "clientId": "string",
    "clientPartyId": "string",
    "clientPrimaryPartyName": "string or null",
    "closedDate": "YYYY-MM-DD",
    "closestPwcOfficeLocation": {
        "cityName": "string",
        "countrySubDivisionAbbreviation": "string",
        "state": "string"
    },
    "createdDatetime": 1744198806056,
    "deliveryPlanSubTypeId": "string",
    "deliveryPlanSubTypeName": "string",
    "endDate": "YYYY-MM-DD or empty",
    "globalLoSL1Name": "string",
    "industries": [],
    "jobOpportunityDescription": "string",
    "jobOpportunityKey": "string",
    "jobOpportunityName": "string",
    "jobOpportunityStatusName": "string",
    "jobOpportunityTypeName": "string",
    "localLoSL1Code": "string",
    "localLoSL1Name": "string",
    "localLoSL2Code": "string",
    "localLoSL2Name": "string",
    "localLoSL3Code": "string",
    "localLoSL3Name": "string",
    "localLoSL4Code": "string",
    "localLoSL4Name": "string",
    "localProductCode": "string",
    "localProductName": "string",
    "publishedFlag": "Y/N",
    "pwcNetworkNode": {
        "pwcNetworkNodeId": "string",
        "pwcNetworkNodeName": "string"
    },
    "resourceStaffingType": "string",
    "skills": [
        {
        "activeStatus": "active",
        "professionalSkillDefinition": "string",
        "professionalSkillId": "string",
        "professionalSkillKey": "string",
        "professionalSkillName": "string",
        "skillPrimaryFlag": "Y/N"
        }
    ],
    "staffLevel": "string",
    "startDate": "YYYY-MM-DD",
    "totalHours": 40,
    "updatedDatetime": 1758306456872,
    "waysOfWorking": {
        "waysOfWorkingId": "string",
        "waysOfWorkingName": "string"
    }
}

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "additionalProperties": true,
        "description": "Opportunity object to import",
        "examples": [
          {
            "clientId": "1000",
            "closestPwcOfficeLocation": {
              "cityName": "New York",
              "countrySubDivisionAbbreviation": "NY",
              "state": "New York"
            },
            "endDate": "2027-03-31",
            "jobOpportunityDescription": "Analyze business data and present findings to stakeholders.",
            "jobOpportunityKey": "503",
            "jobOpportunityName": "Data analyst",
            "jobOpportunityStatusName": "Open",
            "jobOpportunityTypeName": "Internal Mobility",
            "publishedFlag": "Y",
            "staffLevel": "Associate",
            "startDate": "2026-10-01",
            "waysOfWorking": {
              "waysOfWorkingName": "Hybrid"
            }
          }
        ],
        "title": "Opportunity Raw",
        "type": "object"
      }
    }
  }
}

Responses

{
  "201": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "import_opportunity_api_v1_opportunities_import_opportunity_in_consumer_format_post",
  "tags": [
    "Opportunities"
  ],
  "x-database-compatibility": "MongoDB only"
}

GET /data_exchange/api/v1/users/get_user

Get user by userID

Database compatibility: MongoDB + PostgreSQL.

Get user by userID.

  • If omitted, the endpoint uses the user ID extracted from the bearer JWT.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  }
}

Operation metadata

{
  "operationId": "get_authenticated_user_api_v1_users_get_user_get",
  "tags": [
    "Users"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

GET /data_exchange/api/v1/users/get_user/{user_id}

Get user by userID

Database compatibility: MongoDB + PostgreSQL.

Retrieve user.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "description": "Unique user id provided by the client",
    "in": "path",
    "name": "user_id",
    "required": true,
    "schema": {
      "description": "Unique user id provided by the client",
      "title": "User Id",
      "type": "string"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "get_user_api_v1_users_get_user__user_id__get",
  "tags": [
    "Users"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /data_exchange/api/v1/users/import_user_in_consumer_format

Import user

Database compatibility: MongoDB only.

Import a single user from a dictionary.

This endpoint will process the user dictionary and create, or update, a user record in the system, and then compute the scores of this user.

User Object Format:

{
    "userId": "string",
    "clientId": "string",
    "partyId": "string",
    "status": "Open",
    "staffLevel": "Associate",
    "country": "US",
    "officeLocation": {"officeLocation": "Milwaukee, US-WI"},
    "accelerationCenterIndicator": "US",
    "astroRefId": "string",
    "bookmarks": [],
    "certifications": [
        {
        "credentialName": "string",
        "credentialTypeName": "string"
        }
    ],
    "clientExperiences": [
        {
        "clientPartyId": "string",
        "clientPrimaryPartyName": "string",
        "experienceDescription": "string",
        "industries": [
            {
            "industryClassificationId": "string",
            "industryClassificationName": "string"
            }
        ]
        }
    ],
    "desiredSkills": {"skills": []},
    "developmentLeaderPartyId": "string",
    "developmentLeaderToPartyIds": [],
    "education": [
        {
        "areaOfStudy": {"areaOfStudyName": "string"},
        "customInstituteFlag": "false",
        "educationalDegree": {"degreeName": "string"},
        "educationalInstitute": {"instituteName": "string"}
        }
    ],
    "globalLoSL1Name": "string",
    "inactiveStatusIndicator": "active",
    "industries": [],
    "industryCode": "string",
    "industryName": "string",
    "interestSection": {
        "client": [],
        "industries": [],
        "segment": []
    },
    "interests": [],
    "jobFamily": "string",
    "jobFamilyGroup": "string",
    "jobProfileCode": "string",
    "jobProfileDescription": "string",
    "microsoftId": "string",
    "onshoreOffshoreIndicator": "Onshore",
    "previousExperiences": [
        {
        "companyName": "string",
        "customLocationFlag": "true",
        "endDate": "YYYYMMDD",
        "jobTitle": "string",
        "locationName": "string",
        "startDate": "YYYYMMDD"
        }
    ],
    "pwcNetworkNode": {
        "pwcNetworkNodeId": "string",
        "pwcNetworkNodeName": "string"
    },
    "selfDesignatedRoleName": "string",
    "skillGaps": {
        "skills": [
        {
            "skillCode": "string",
            "skillName": "string",
            "skillTypeCode": "string",
            "skillTypeName": "string"
        }
        ]
    },
    "skills": [
        {"professionalSkillName": "string"}
    ],
    "subLosL1Name": "string",
    "subLosL2Name": "string",
    "subLosL3Name": "string",
    "subLosL4Name": "string",
    "territory": "string",
    "topSkills": [],
    "updatedDatetime": 1758726146610,
    "waysOfWorking": {
        "waysOfWorkingId": "string",
        "waysOfWorkingName": "string"
    },
    "achievers": [
        {
        "dateNominated": "YYYY-MM-DDTHH:MM:SS.sssZ",
        "partyId": "string",
        "reason": "string"
        }
    ]
}

The education and certification fields remain accepted for backward compatibility but are ignored by user standardization. Imported education[].educationalInstitute.instituteName values also accept legacy DEL/C1 characters, including U+0092, without rewriting their content.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "additionalProperties": true,
        "description": "User object to import",
        "examples": [
          {
            "clientId": "1000",
            "country": "US",
            "education": [
              {
                "educationalInstitute": {
                  "instituteName": "King's College"
                }
              }
            ],
            "email": "alex.morgan@example.com",
            "firstName": "Alex",
            "lastName": "Morgan",
            "locale": "en-US",
            "partyId": "101",
            "previousExperiences": [
              {
                "companyName": "Example Analytics",
                "experienceDescription": "Built sales reports and analyzed business data.",
                "jobTitle": "Data analyst"
              }
            ],
            "staffLevel": "Associate",
            "status": "Open",
            "userId": "101"
          }
        ],
        "title": "User Raw",
        "type": "object"
      }
    }
  }
}

Responses

{
  "201": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "import_user_api_v1_users_import_user_in_consumer_format_post",
  "tags": [
    "Users"
  ],
  "x-database-compatibility": "MongoDB only"
}

PUT /data_exchange/api/v1/users/{user_id}

Update a user

Database compatibility: MongoDB + PostgreSQL.

Update an existing user by its userID.

You can update: - isAdmin: Whether the user is an AIHub administrator - chatbotSimulationAcknowledgementDate: Acknowledgement of chatbot simulation results by the user with the date of acknowledgement

Note: userId cannot be updated as it is the unique identifier provided by the client.

Only the fields that are included in the request body will be updated, the others will remain unchanged.

Returns the updated user data.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "description": "The userID of the user to update",
    "in": "path",
    "name": "user_id",
    "required": true,
    "schema": {
      "description": "The userID of the user to update",
      "title": "User Id",
      "type": "string"
    }
  }
]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/UserUpdate"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/UserUpdate.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/User"
        }
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError, components/schemas/User.

Operation metadata

{
  "operationId": "update_user_api_v1_users__user_id__put",
  "tags": [
    "Users"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

Shared definitions

Education (schemas)

{
  "description": "Schema for an education record associated with a user.",
  "properties": {
    "areaOfStudyName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Area of study or major",
      "example": "Business Analytics",
      "title": "Areaofstudyname"
    },
    "degreeCompleted": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": false,
      "description": "Indicates if the degree has been finished",
      "example": true,
      "title": "Degreecompleted"
    },
    "degreeName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Name of the degree earned",
      "example": "Master Degree",
      "title": "Degreename"
    },
    "endDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "End date of education (format: YYYY-MM)",
      "example": "2025-09",
      "title": "Enddate"
    },
    "instituteName": {
      "description": "Name of the educational institute",
      "example": "NEW YORK UNIVERSITY, Leonard N. Stern School of Business",
      "title": "Institutename",
      "type": "string"
    },
    "startDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Start date of education (format: YYYY-MM)",
      "example": "2023-09",
      "title": "Startdate"
    }
  },
  "required": [
    "instituteName"
  ],
  "title": "Education",
  "type": "object"
}

HTTPValidationError (schemas)

{
  "properties": {
    "detail": {
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "title": "Detail",
      "type": "array"
    }
  },
  "title": "HTTPValidationError",
  "type": "object"
}

Referenced definitions: components/schemas/ValidationError.

SkillBase (schemas)

{
  "description": "Base schema for a skill associated with a user.",
  "properties": {
    "code": {
      "description": "The skill code attached to the user",
      "example": "4651d8b6-a072-4a0b-9cfe-edca61e2ee22",
      "title": "Code",
      "type": "string"
    },
    "origin": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The origin of the skill",
      "example": "internal",
      "title": "Origin"
    }
  },
  "required": [
    "code"
  ],
  "title": "SkillBase",
  "type": "object"
}

StandardizedSkillGap (schemas)

{
  "description": "Skill gap calculated during user standardization.",
  "properties": {
    "gap": {
      "description": "Gap between required and current level",
      "title": "Gap",
      "type": "number"
    },
    "id": {
      "description": "Skill identifier",
      "title": "Id",
      "type": "string"
    },
    "title": {
      "description": "Skill title",
      "title": "Title",
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "gap"
  ],
  "title": "StandardizedSkillGap",
  "type": "object"
}

TrainingHistory (schemas)

{
  "description": "Schema for a training record in user's training history.",
  "properties": {
    "completionDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Date when the training was completed in ISO 8601 format, when available",
      "example": "2025-01-15T10:30:00Z",
      "title": "Completiondate"
    },
    "title": {
      "description": "Title of the training",
      "example": "Leadership Fundamentals",
      "title": "Title",
      "type": "string"
    },
    "trainingId": {
      "description": "Unique identifier for the training",
      "example": "training-001",
      "title": "Trainingid",
      "type": "string"
    }
  },
  "required": [
    "trainingId",
    "title"
  ],
  "title": "TrainingHistory",
  "type": "object"
}

User (schemas)

{
  "description": "Schema for a complete user with ID.",
  "example": {
    "accessGroup": [
      "1",
      "3"
    ],
    "attachedJobCode": "JOB-3847",
    "chatbotStatus": true,
    "educations": [
      {
        "areaOfStudyName": "Business Analytics",
        "degreeCompleted": true,
        "degreeName": "Master Degree",
        "endDate": "2025-09",
        "instituteName": "NEW YORK UNIVERSITY, Leonard N. Stern School of Business",
        "startDate": "2023-09"
      }
    ],
    "email": "john.doe@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "locale": "en-US",
    "manageeIds": [
      "0e253e28-15ae-41ed-a644-c40fdd760081",
      "30823466-4002-40e9-aec3-ebd9e8eb8623"
    ],
    "managerId": "81086386-e322-4c8a-9982-c87f0371b4d5",
    "mandatoryTrainings": [
      "training-003",
      "training-004"
    ],
    "skillGaps": [
      {
        "code": "4651d8b6-a072-4a0b-9cfe-edca61e2ee22"
      },
      {
        "code": "4e7b2bf9-d9f6-41f9-aca3-e9023f0495b0"
      }
    ],
    "trainingAccessGroup": [
      "group-001",
      "group-002"
    ],
    "trainingHistory": [
      {
        "completionDate": "2025-01-15T10:30:00Z",
        "title": "Leadership Fundamentals",
        "trainingId": "training-001"
      },
      {
        "completionDate": "2025-02-20T14:00:00Z",
        "title": "Advanced Project Management",
        "trainingId": "training-002"
      }
    ],
    "userApplicationId": "1f578e93-6eb8-443f-9f7b-ecaa0be6af8e",
    "userConversationId": "281797c5-ad25-47a6-a2b2-154bfed3f86b",
    "userId": "faa9a666-3cc1-48e4-9395-5143da4d416f"
  },
  "properties": {
    "accessGroup": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "List of PwC opportunity access group IDs the user belongs to",
      "example": [
        "1",
        "3"
      ],
      "title": "Accessgroup"
    },
    "attachedJobCode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The job code attached to the user",
      "example": "JOB-3847",
      "title": "Attachedjobcode"
    },
    "attachedJobTitle": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The job title attached to the user",
      "example": "Senior Data Analyst",
      "title": "Attachedjobtitle"
    },
    "chatbotSimulationAcknowledgementDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Acknowledgement of chatbot simulation results by the user with the date of acknowledgement (ISO 8601 format)",
      "example": "2025-06-01T12:00:00Z",
      "title": "Chatbotsimulationacknowledgementdate"
    },
    "chatbotStatus": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": true,
      "description": "The status of the chatbot for the user",
      "example": true,
      "title": "Chatbotstatus"
    },
    "createdAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Creation timestamp",
      "example": "2025-04-14T23:15:07+02:00",
      "title": "Createdat"
    },
    "educations": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/components/schemas/Education"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "List of education records for the user",
      "example": [
        {
          "areaOfStudyName": "Business Analytics",
          "degreeCompleted": true,
          "degreeName": "Master Degree",
          "endDate": "2025-09",
          "instituteName": "NEW YORK UNIVERSITY, Leonard N. Stern School of Business",
          "startDate": "2023-09"
        }
      ],
      "title": "Educations"
    },
    "email": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The user email address",
      "example": "john.doe@example.com",
      "title": "Email"
    },
    "firstName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The first name of the user",
      "example": "John",
      "title": "Firstname"
    },
    "isAdmin": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Whether the user has admin privileges",
      "example": false,
      "title": "Isadmin"
    },
    "lastName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The last name of the user",
      "example": "Doe",
      "title": "Lastname"
    },
    "locale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "User's locale/language preference (e.g., en-US, fr-FR)",
      "example": "en-US",
      "title": "Locale"
    },
    "manageeIds": {
      "description": "List of managee IDs for the user",
      "example": [
        "0e253e28-15ae-41ed-a644-c40fdd760081",
        "30823466-4002-40e9-aec3-ebd9e8eb8623"
      ],
      "items": {
        "type": "string"
      },
      "title": "Manageeids",
      "type": "array"
    },
    "managerId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The manager ID of the user",
      "example": "81086386-e322-4c8a-9982-c87f0371b4d5",
      "title": "Managerid"
    },
    "mandatoryTrainings": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "List of mandatory training IDs assigned to the user",
      "example": [
        "training-003",
        "training-004"
      ],
      "title": "Mandatorytrainings"
    },
    "skillGaps": {
      "description": "List of skill gaps, represented either by an external skill code or by the calculated id, title, and gap values",
      "example": [
        {
          "code": "4651d8b6-a072-4a0b-9cfe-edca61e2ee22"
        },
        {
          "code": "4e7b2bf9-d9f6-41f9-aca3-e9023f0495b0"
        }
      ],
      "items": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SkillBase"
          },
          {
            "$ref": "#/components/schemas/StandardizedSkillGap"
          }
        ]
      },
      "title": "Skillgaps",
      "type": "array"
    },
    "trainingAccessGroup": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "List of training access group IDs the user belongs to",
      "example": [
        "group-001",
        "group-002"
      ],
      "title": "Trainingaccessgroup"
    },
    "trainingHistory": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/components/schemas/TrainingHistory"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "List of completed trainings with IDs, completion dates, and titles",
      "example": [
        {
          "completionDate": "2025-01-15T10:30:00Z",
          "title": "Leadership Fundamentals",
          "trainingId": "training-001"
        },
        {
          "completionDate": "2025-02-20T14:00:00Z",
          "title": "Advanced Project Management",
          "trainingId": "training-002"
        }
      ],
      "title": "Traininghistory"
    },
    "updatedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Last update timestamp",
      "example": "2025-04-14T23:30:22+02:00",
      "title": "Updatedat"
    },
    "userApplicationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The user application ID from Teams",
      "example": "1f578e93-6eb8-443f-9f7b-ecaa0be6af8e",
      "title": "Userapplicationid"
    },
    "userConversationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The user conversation ID from Teams",
      "example": "281797c5-ad25-47a6-a2b2-154bfed3f86b",
      "title": "Userconversationid"
    },
    "userId": {
      "description": "The unique identifier for the user",
      "example": "faa9a666-3cc1-48e4-9395-5143da4d416f",
      "title": "Userid",
      "type": "string"
    }
  },
  "required": [
    "userId"
  ],
  "title": "User",
  "type": "object"
}

Referenced definitions: components/schemas/Education, components/schemas/SkillBase, components/schemas/StandardizedSkillGap, components/schemas/TrainingHistory.

UserUpdate (schemas)

{
  "description": "Schema for updating an existing user.",
  "example": {
    "chatbotSimulationAcknowledgementDate": "2026-09-17T09:00:00Z",
    "isAdmin": false
  },
  "properties": {
    "chatbotSimulationAcknowledgementDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Acknowledgement of chatbot simulation results by the user with the date of acknowledgement (ISO 8601 format)",
      "example": "2025-06-01T12:00:00Z",
      "title": "Chatbotsimulationacknowledgementdate"
    },
    "isAdmin": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Whether the user has admin privileges",
      "example": false,
      "title": "Isadmin"
    }
  },
  "title": "UserUpdate",
  "type": "object"
}

ValidationError (schemas)

{
  "properties": {
    "ctx": {
      "title": "Context",
      "type": "object"
    },
    "input": {
      "title": "Input"
    },
    "loc": {
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      },
      "title": "Location",
      "type": "array"
    },
    "msg": {
      "title": "Message",
      "type": "string"
    },
    "type": {
      "title": "Error Type",
      "type": "string"
    }
  },
  "required": [
    "loc",
    "msg",
    "type"
  ],
  "title": "ValidationError",
  "type": "object"
}

APIKeyHeader (securitySchemes)

{
  "in": "header",
  "name": "X-API-Key",
  "type": "apiKey"
}

Client-ID (securitySchemes)

{
  "description": "Optional client identifier.",
  "in": "header",
  "name": "Client-ID",
  "type": "apiKey"
}

HTTPBearer (securitySchemes)

{
  "scheme": "bearer",
  "type": "http"
}

Functional guide.