openapi: 3.0.1 info: title: Culture Amp Public API description: This Open API specification describes the interface for the Culture Amp public API service contact: name: Culture Amp Support email: support@cultureamp.com license: name: CultureAmp version: 0.0.1 servers: - url: https://api.cultureamp.com/v1 description: Production - url: https://sandbox.public-api.development.cultureamp.net/v1 description: Development tags: - name: Employees - name: Performance - name: Surveys paths: /employees: get: tags: - Employees summary: List employees description: |- Returns all employees in the account. If both `email` and `employee_identifier` are provided, `employee_identifier` will take precedence. `after_key` is optional and used for pagination. operationId: list-employees parameters: - name: email in: query description: The email of the employees to retrieve schema: type: string format: email - name: employee_identifier in: query description: The unique id used by the employees company to identify the employee schema: type: string - $ref: "#/components/parameters/AfterKeyQueryParam" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EmployeesResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - employees-read "/employees/{id}": get: tags: - Employees summary: Get an employee description: Returns the details of an employee corresponding to the provided Culture Amp employee identifier operationId: get-employee parameters: - name: id in: path description: the Culture Amp employee identifier required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EmployeeByIDResponse" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - employees-read "/employees/{id}/demographics": get: tags: - Employees summary: List demographics associated with an employee description: Returns the demographic assignments for a given employee operationId: list-demographics-by-employee parameters: - name: id in: path description: the Culture Amp employee identifier required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DemographicsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - employee-demographics-read "/employees/{id}/manager-reviews": get: tags: - Performance summary: List manager reviews associated with an employee description: Returns manager reviews for a given employee operationId: list-manager-reviews-by-employee parameters: - name: id in: path description: the Culture Amp employee identifier required: true schema: type: string - $ref: "#/components/parameters/AfterKeyQueryParam" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ManagerReviewsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - performance-evaluations-read /performance-cycles: get: tags: - Performance summary: List performance cycles description: |- Returns all performance cycles in the account. If both `after_date` and `state` are provided in a request, `after_date` takes precedence. operationId: list-performance-cycles parameters: - $ref: "#/components/parameters/AfterDateQueryParam" - $ref: "#/components/parameters/AfterKeyQueryParam" - name: state in: query description: the state of the performance cycles to be returned schema: $ref: "#/components/schemas/PerformanceCycleState" example: active responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PerformanceCyclesResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - performance-evaluations-read "/performance-cycles/{id}": get: tags: - Performance summary: Get a performance cycle description: Returns the details of a performance cycle by its id operationId: get-performance-cycle parameters: - name: id in: path description: performance cycle id required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PerformanceCycleResponse" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - performance-evaluations-read "/performance-cycles/{id}/manager-reviews": get: tags: - Performance summary: List manager reviews associated with a performance cycle description: Returns manager reviews for a given performance cycle operationId: list-manager-reviews-by-performance-cycle parameters: - name: id in: path description: performance cycle id required: true schema: type: string - $ref: "#/components/parameters/AfterKeyQueryParam" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ManagerReviewsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - performance-evaluations-read /manager-reviews: get: tags: - Performance summary: List manager reviews description: Returns all manager reviews in the account operationId: list-manager-reviews parameters: - $ref: "#/components/parameters/AfterDateQueryParam" - $ref: "#/components/parameters/AfterKeyQueryParam" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ManagerReviewsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - performance-evaluations-read "/manager-reviews/{id}": get: tags: - Performance summary: Get a manager review description: Returns the details of a manager review corresponding to the provided id operationId: get-manager-review parameters: - name: id in: path description: manager review id required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ManagerReviewResponse" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "404": $ref: "#/components/responses/NotFound" "429": $ref: "#/components/responses/TooManyRequests" "500": $ref: "#/components/responses/InternalServerError" "503": $ref: "#/components/responses/ServiceUnavailable" security: - Oauth2: - performance-evaluations-read # "/surveys": # get: # tags: # - Surveys # summary: List Surveys associated with an Account # description: Returns all surveys in the account # operationId: list-surveys # parameters: # - $ref: "#/components/parameters/AfterKeyQueryParam" # responses: # "200": # description: OK # content: # application/json: # schema: # $ref: "#/components/schemas/SurveysResponse" # "400": # $ref: "#/components/responses/BadRequest" # "401": # $ref: "#/components/responses/Unauthorized" # "403": # $ref: "#/components/responses/Forbidden" # "404": # $ref: "#/components/responses/NotFound" # "429": # $ref: "#/components/responses/TooManyRequests" # "500": # $ref: "#/components/responses/InternalServerError" # "503": # $ref: "#/components/responses/ServiceUnavailable" # security: # - Oauth2: # - surveys-read # "/surveys/{id}": # get: # tags: # - Surveys # summary: Get a Survey # description: Returns the details of a Survey corresponding to the provided id # operationId: get-survey # parameters: # - name: id # in: path # description: survey id # required: true # schema: # type: string # responses: # "200": # description: OK # content: # application/json: # schema: # $ref: "#/components/schemas/SurveyResponse" # "400": # $ref: "#/components/responses/BadRequest" # "401": # $ref: "#/components/responses/Unauthorized" # "403": # $ref: "#/components/responses/Forbidden" # "404": # $ref: "#/components/responses/NotFound" # "429": # $ref: "#/components/responses/TooManyRequests" # "500": # $ref: "#/components/responses/InternalServerError" # "503": # $ref: "#/components/responses/ServiceUnavailable" # security: # - Oauth2: # - surveys-read # "/surveys/{id}/questions": # get: # tags: # - Surveys # summary: List a Survey's Questions # description: Returns the Questions associated to the provided Survey ID # operationId: list-survey-questions # parameters: # - $ref: "#/components/parameters/AfterKeyQueryParam" # responses: # "200": # description: OK # content: # application/json: # schema: # $ref: "#/components/schemas/SurveyQuestionsResponse" # "400": # $ref: "#/components/responses/BadRequest" # "401": # $ref: "#/components/responses/Unauthorized" # "403": # $ref: "#/components/responses/Forbidden" # "404": # $ref: "#/components/responses/NotFound" # "429": # $ref: "#/components/responses/TooManyRequests" # "500": # $ref: "#/components/responses/InternalServerError" # "503": # $ref: "#/components/responses/ServiceUnavailable" # security: # - Oauth2: # - surveys-read # "/surveys/{id}/question/{id}": # get: # tags: # - Surveys # summary: Return details of a specific Question # description: Returns the Question associated to the provided Survey ID and Question ID # operationId: get-survey-question # parameters: # - $ref: "#/components/parameters/AfterKeyQueryParam" # - name: id # in: path # description: survey question id # required: true # schema: # type: string # responses: # "200": # description: OK # content: # application/json: # schema: # $ref: "#/components/schemas/SurveyQuestionResponse" # "400": # $ref: "#/components/responses/BadRequest" # "401": # $ref: "#/components/responses/Unauthorized" # "403": # $ref: "#/components/responses/Forbidden" # "404": # $ref: "#/components/responses/NotFound" # "429": # $ref: "#/components/responses/TooManyRequests" # "500": # $ref: "#/components/responses/InternalServerError" # "503": # $ref: "#/components/responses/ServiceUnavailable" # security: # - Oauth2: # - surveys-read # "/surveys/{id}/responses": # get: # tags: # - Surveys # summary: List all Responses to a specific Survey # description: List the Responses associated to the provided Survey ID # operationId: list-survey-responses # parameters: # - $ref: "#/components/parameters/AfterKeyQueryParam" # - name: id # in: path # description: survey id # required: true # schema: # type: string # responses: # "200": # description: OK # content: # application/json: # schema: # $ref: "#/components/schemas/SurveyRespsResponse" # "400": # $ref: "#/components/responses/BadRequest" # "401": # $ref: "#/components/responses/Unauthorized" # "403": # $ref: "#/components/responses/Forbidden" # "404": # $ref: "#/components/responses/NotFound" # "429": # $ref: "#/components/responses/TooManyRequests" # "500": # $ref: "#/components/responses/InternalServerError" # "503": # $ref: "#/components/responses/ServiceUnavailable" # security: # - Oauth2: # - surveys-read # "/surveys/{survey_id}/responses/{response_id}": # get: # tags: # - Surveys # summary: Get a specific Response # description: Get the Response by response ID and Survey ID # operationId: get-survey-response # parameters: # - name: survey_id # in: path # description: survey id # required: true # schema: # type: string # - name: response_id # in: path # description: response id # required: true # schema: # type: string # responses: # "200": # description: OK # content: # application/json: # schema: # $ref: "#/components/schemas/SurveyRespResponse" # "400": # $ref: "#/components/responses/BadRequest" # "401": # $ref: "#/components/responses/Unauthorized" # "403": # $ref: "#/components/responses/Forbidden" # "404": # $ref: "#/components/responses/NotFound" # "429": # $ref: "#/components/responses/TooManyRequests" # "500": # $ref: "#/components/responses/InternalServerError" # "503": # $ref: "#/components/responses/ServiceUnavailable" # security: # - Oauth2: # - surveys-read components: parameters: AfterDateQueryParam: name: after_date in: query description: |- Only returns resources processed by the public API after the date-time provided. Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain spaces, and date and time should be separated by "T". For example: * UTC time "2023-05-01T00:00:00Z". * An offset from UTC time to indicate a time zone, such as "2023-05-01T00:00:00%2B08:00" (for 8 hours ahead of UTC time). Note that query parameters should be properly escaped, last example is equivalent to "2023-05-01T00:00:00+08:00". schema: type: string example: "2013-01-15T00:00:00+08:00" AfterKeyQueryParam: name: after_key in: query description: |- The pagination key to use for the next page of results. The last successful call will include this in the response body in `pagination.afterKey`. schema: type: string example: ewogICJQSyI6ICJzZGZzZGZzZGYtc2Rmc2Rmc2Qtc2Rmc2RmIiwKICAiU0siOiAic2Rmc2Rmc2RzZGYtc2RmYXNhc2ZzLS1zZGZzZGYiCn0J schemas: SurveysResponse: title: SurveysResponse type: object description: container object for multiple Surveys properties: data: type: array items: $ref: "#/components/schemas/Survey" pagination: $ref: "#/components/schemas/Pagination" required: - data SurveyResponse: title: SurveyResponse type: object description: container object for a single Survey properties: data: $ref: "#/components/schemas/Survey" required: - data SurveyQuestionResponse: title: SurveyQuestionResponse type: object description: container object for a single Survey question properties: data: $ref: "#/components/schemas/SurveyQuestion" required: - data SurveyQuestionsResponse: title: SurveyQuestionsResponse type: object description: container object for multiple Survey questions properties: data: type: array items: $ref: "#/components/schemas/SurveyQuestion" pagination: $ref: "#/components/schemas/Pagination" required: - data Survey: title: Survey type: object description: The Survey record properties: id: type: string description: the identifier used by Culture Amp to identify the Survey name: type: object additionalProperties: type: string description: The locale informed name of the Survey example: en: Hello! fr: Bonjour! status: type: string description: The status of the survey rdeEnabled: type: boolean description: A boolean describing the RDE Enabled status of the survey owner: type: string description: The Culture Amp ID identifying the user who owns the Survey workflow: type: string description: The workflow of the survey launchedAt: type: string description: The date the Survey was launched format: date-time closedAt: type: string description: The date the Survey was closed format: date-time responseCount: type: integer description: The number of responses received by the Survey invitedCount: type: integer description: The number of users invited to complete the Survey createdAt: type: string description: The date the Survey was created format: date-time updatedAt: type: string description: The date the Survey was last updated format: date-time processedAt: type: string description: The date the survey was last processed by the public API. This can be used by consumers to determine if the survey has been updated since the last time it was retrieved. format: date-time communicatedClosedAt: type: string description: The timestamp when the closure of the survey was communicated. format: date-time participationRate: type: integer description: The percentage of invited participants who have submitted the survey. surveyDueDays: type: integer description: How many days from survey launch that the survey is due. kioskModeEnabled: type: boolean description: Indicates whether the survey is being run in kiosk mode. excludeParticipantsAfter: type: string description: The date at which this survey will no longer include participants. format: date-time required: - id - processedAt SurveyQuestion: title: SurveyQuestion type: object description: The Survey Question record properties: id: type: string description: the identifier used by Culture Amp to identify the Survey code: type: string description: The unique question code question_type: type: string description: The type of the survey question. free_text, rating or select section: type: string description: The section of the survey question factor: type: string description: The factor name of the survey question label: type: object additionalProperties: type: string description: The localised label of the survey question example: en: Hello! fr: Bonjour! description: type: object additionalProperties: type: string description: The localised description of the survey question example: en: Hello! fr: Bonjour! rating_scale: type: string description: The rating scale of the survey question select_options: type: array items: $ref: "#/components/schemas/SurveyQuestionSelectOption" other_option: type: boolean description: The flag for other select option status: type: string description: The status of the survey question, active or deleted createdAt: type: string description: The date the Survey question was created format: date-time updatedAt: type: string description: The date the Survey question was last updated format: date-time processedAt: type: string description: The date the survey question was last processed by the public API. This can be used by consumers to determine if the question has been updated since the last time it was retrieved. format: date-time required: - id - processedAt SurveyQuestionSelectOption: type: object description: a survey question's select option properties: id: type: string description: originated from a demographic_value_id or select_option_id label: type: object additionalProperties: type: string description: The localised label of the option example: en: Hello! fr: Bonjour! value: type: object additionalProperties: type: string description: The localised value of the option example: en: Hello! fr: Bonjour! status: type: string description: Select option status, active or deleted createdAt: type: string description: The date the option was created format: date-time updatedAt: type: string description: The date the option was last updated format: date-time SurveyRespResponse: title: SurveyRespResponse type: object description: container object for a Survey Response properties: data: $ref: "#/components/schemas/SurveyResp" required: - data SurveyRespsResponse: title: SurveyRespsResponse type: object description: container object for multiple Survey Responses properties: data: type: array items: $ref: "#/components/schemas/SurveyResp" pagination: $ref: "#/components/schemas/Pagination" required: - data SurveyResp: title: SurveyResp type: object description: The Survey Response containing all answers properties: id: type: string description: the identifier used by Culture Amp to identify the Survey employeeId: type: string description: The unique employee ID answers: type: array items: $ref: "#/components/schemas/SurveyRespAnswer" rdeEnabled: type: boolean description: Identifies whether a survey was launched with `raw data extract` enabled (true/false). captureLocale: type: string description: The the locale in which capture was completed surveySubmittedBy: type: string description: The ID of the employee who submitted this response startedAt: type: string description: The date the Survey response was started format: date-time submittedAt: type: string description: The date the Survey response was submitted format: date-time expiredAt: type: string description: The date the Survey response expires format: date-time createdAt: type: string description: The date the Survey response was created format: date-time updatedAt: type: string description: The date the Survey response was last updated format: date-time processedAt: type: string description: The date the survey response was last processed by the public API. This can be used by consumers to determine if the response has been updated since the last time it was retrieved. format: date-time required: - id - processedAt SurveyRespAnswer: type: object properties: questionId: type: string description: the id of the question being answered textValue: type: string description: The comment left for a free text style question, or the answer a user left when the "other" option is picked on a select question ratingScore: type: integer description: The rating in the range 1..5 or -1 if it was not answered selectOptionIds: type: array items: type: string description: Contains all of the IDs of the select options chosen as part of the response selectOptions: type: array items: type: string description: Contains the label of the chosen select options answered: type: boolean description: Whether or not this answer was completed additionalComment: type: string description: the comment text left against select questions as an additional input to the option chosen mandatory: type: boolean description: Whether or not the question was made mandatory createdAt: type: string description: The date the answer was created format: date-time updatedAt: type: string description: The date the answer was last updated format: date-time PerformanceCycleState: type: string enum: - active - closed - ready PerformanceReviewStatus: type: string description: |- The status of the performance review. Note: "dirty" manager reviews are now deprecated and will be removed in a future release. enum: - completed - shared - dirty - incomplete EmployeeByIDResponse: title: EmployeeByIDResponse type: object properties: data: $ref: "#/components/schemas/Employee" description: container object for a single employee response required: - data EmployeesResponse: title: EmployeesResponse type: object properties: data: type: array items: $ref: "#/components/schemas/Employee" pagination: $ref: "#/components/schemas/Pagination" description: container object for multiple employees response required: - data Error: required: - code - message type: object properties: code: type: integer description: the HTTP status code of the error format: int32 message: type: string description: a description of the error description: an object describing an API error Link: title: Link type: object properties: rel: type: string description: "the type of related data e.g. demographics, goals, performance" uri: type: string description: the relative url that points to the data description: Link to related data required: - rel - uri Pagination: title: Pagination type: object example: afterKey: ewogICJQSyI6ICJzZGZzZGZzZGYtc2Rmc2Rmc2Qtc2Rmc2RmIiwKICAiU0siOiAic2Rmc2Rmc2RzZGYtc2RmYXNhc2ZzLS1zZGZzZGYiCn0J nextPath: /?after_key=ewogICJQSyI6ICJzZGZzZGZzZGYtc2Rmc2Rmc2Qtc2Rmc2RmIiwKICAiU0siOiAic2Rmc2Rmc2RzZGYtc2RmYXNhc2ZzLS1zZGZzZGYiCn0J properties: afterKey: type: string description: The pagination key to use for the next page of results nextPath: type: string description: the relative url for the next page of data required: - afterKey - nextPath Demographic: title: Demographic type: object example: name: star sign value: capricorn properties: name: type: string description: the name of the demographic value: type: string description: the value of the demographic required: - name - value DemographicsResponse: title: DemographicsResponse type: object description: container object for multiple demographics response properties: data: type: array items: $ref: "#/components/schemas/Demographic" required: - data Employee: title: Employee type: object description: The employee data record properties: id: type: string description: the identifier used by Culture Amp to identify the employee employeeIdentifier: type: string description: the identifier used by the employee's organization to identify the employee email: type: string description: the employee's email address name: type: string description: the name of the employee preferredName: type: string description: the employee preferred name birthDate: type: string description: the date of birth in YYYY-MM-DD format format: date startDate: type: string description: "the date the employee started in the company, in YYYY-MM-DD format" format: date endDate: type: string description: "the date the employee left the company, in YYYY-MM-DD format" format: date links: type: array description: links to data related to the employee items: $ref: "#/components/schemas/Link" processedAt: type: string description: The date the employee was last processed by the public API. This can be used by consumers to determine if the employee has been updated since the last time they retrieved it. format: date-time required: - id - name - processedAt example: id: 96b1cff7-3099-44a9-bd28-0292be8aff7f name: Bertram Gilfoyle preferredName: Gilfoyle birthDate: "1980-08-24" startDate: "2015-07-19" endDate: "2019-08-01" employeeIdentifier: "2" email: gilfoyle@piedpiper.com links: - rel: demographics uri: /v1/employees/96b1cff7-3099-44a9-bd28-0292be8aff7f/demographics - rel: manager-reviews uri: /v1/employees/96b1cff7-3099-44a9-bd28-0292be8aff7f/manager-reviews processedAt: "2019-08-01T12:00:00Z" PerformanceCycle: title: PerformanceCycle type: object properties: id: type: string name: type: string state: $ref: "#/components/schemas/PerformanceCycleState" createdAt: type: string description: The date the performance cycle was created in the source system format: date-time updatedAt: type: string description: The date the performance cycle was last updated in the source system format: date-time processedAt: type: string description: The date the performance cycle was last processed by the public API. This can be used by consumers to determine if the performance cycle has been updated since the last time they retrieved it. format: date-time required: - id - name - state - createdAt - updatedAt - processedAt description: Describes a performance cycle example: id: b6505a73-d45f-4091-b3fb-74997de4cdc6 name: H1 2022 Pied Piper engineering performance cycle state: active createdAt: "2022-04-28T02:14:10+00:00" updatedAt: "2022-08-02T02:14:10+00:00" processedAt: "2022-08-02T02:15:10+00:00" PerformanceRating: title: PerformanceRating type: object description: Describes a performance rating for an employee properties: ratingQuestion: $ref: "#/components/schemas/RatingQuestion" ratingBuckets: type: array items: $ref: "#/components/schemas/RatingBucket" rating: $ref: "#/components/schemas/Rating" required: - ratingBuckets RatingQuestion: type: object properties: title: type: string description: type: string required: - title RatingBucket: title: RatingBucket type: object description: Describes a performance rating bucket that an employee may be assigned to properties: title: type: string description: type: string value: type: integer required: - title - value Rating: title: Rating type: object description: Describes a performance rating for an employee properties: id: type: string title: type: string description: type: string value: type: integer createdAt: type: string format: date-time updatedAt: type: string format: date-time required: - id - title - value - createdAt - updatedAt MultipleChoiceQuestion: type: object description: The multiple choice questions corresponding to a review properties: text: type: string options: type: array items: type: string answer: type: string required: - text - options OpenTextQuestion: type: object description: The open text questions corresponding to a review properties: text: type: string answer: type: string required: - text ManagerReview: title: ManagerReview type: object properties: performanceCycleId: type: string managerReviewId: type: string employeeId: description: The identifier used by Culture Amp to identify the employee type: string managerId: description: The employee identifier used by Culture Amp to identify the manager performing the review type: string performanceRating: $ref: "#/components/schemas/PerformanceRating" openTextQuestions: type: array items: $ref: "#/components/schemas/OpenTextQuestion" multipleChoiceQuestions: type: array items: $ref: "#/components/schemas/MultipleChoiceQuestion" reviewAcknowledged: type: boolean description: Indicates whether the review has been shared with the employee and acknowledged by them status: type: string $ref: "#/components/schemas/PerformanceReviewStatus" links: type: array description: links to data related to the manager review items: $ref: "#/components/schemas/Link" completedAt: type: string description: The date the manager review was completed in the source system format: date-time nullable: true createdAt: type: string description: The date the manager review was created in the source system format: date-time updatedAt: type: string description: The date the manager review was last updated in the source system format: date-time processedAt: type: string description: The date the manager review was last processed by the public API. This may be used by consumers to determine if the manager review has been updated since the last time they retrieved it. format: date-time required: - cycleId - reviewId - employeeId - createdAt - updatedAt - processedAt example: performanceCycleId: b6505a73-d45f-4091-b3fb-74997de4cd01 managerReviewId: b6505a73-d45f-4091-b3fb-74997de4cd02 employeeId: b6505a73-d45f-4091-b3fb-74997de4cd03 managerId: b6505a73-d45f-4091-b3fb-74997de4cd04 performanceRating: ratingQuestion: title: "How would you rate the employee's performance?" description: "Please rate the employee's overall performance, consider the impact they have had as well as how they live our values" ratingBuckets: - id: b6505a73-d45f-4091-b3fb-74997de4cd03 title: "Outstanding" description: "The employee has exceeded expectations and has had a significant impact on the team and the company" createdAt: "2022-04-28T02:14:10+00:00" updatedAt: "2022-08-02T02:14:10+00:00" - id: b6505a73-d45f-4091-b3fb-74997de4cd04 title: "Good" description: "The employee has met expectations and has had a positive impact on the team and the company" createdAt: "2022-04-28T02:14:10+00:00" updatedAt: "2022-08-02T02:14:10+00:00" - id: b6505a73-d45f-4091-b3fb-74997de4cd05 title: "Needs Improvement" description: "The employee has not met expectations and has had a negative impact on the team and the company" createdAt: "2022-04-28T02:14:10+00:00" updatedAt: "2022-08-02T02:14:10+00:00" rating: id: b6505a73-d45f-4091-b3fb-74997de4cd06 title: "Outstanding" description: "The employee has exceeded expectations and has had a significant impact on the team and the company" value: 5 createdAt: "2022-04-28T02:14:10+00:00" updatedAt: "2022-08-02T02:14:10+00:00" openTextQuestions: - text: "What should this employee celebrate this year?" answer: "Breaking a record for sales" - text: "What should this employee focus on next year?" answer: "Upskilling in Power BI" multipleChoiceQuestions: - text: "Does this employee embody company value #1?" options: - "yes" - "no" - "often" - "sometimes" answer: "yes" - text: "Does this employee embody company value #2?" options: - "yes" - "no" - "often" - "sometimes" answer: "sometimes" processedAt: "2022-08-02T02:15:10+00:00" createdAt: "2022-04-28T02:14:10+00:00" updatedAt: "2022-08-02T02:14:10+00:00" completedAt: "2022-08-02T02:14:10+00:00" PerformanceCyclesResponse: title: PerformanceCycleResponse type: object properties: data: type: array items: $ref: "#/components/schemas/PerformanceCycle" pagination: $ref: "#/components/schemas/Pagination" required: - data PerformanceCycleResponse: title: PerformanceCycleResponse type: object properties: data: $ref: "#/components/schemas/PerformanceCycle" required: - data ManagerReviewsResponse: title: ManagerReviewsResponse type: object properties: data: type: array items: $ref: "#/components/schemas/ManagerReview" pagination: $ref: "#/components/schemas/Pagination" required: - data ManagerReviewResponse: title: ManagerReviewResponse type: object properties: data: $ref: "#/components/schemas/ManagerReview" required: - data responses: Forbidden: description: Forbidden content: application/json: schema: $ref: "#/components/schemas/Error" InternalServerError: description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/Error" NotFound: description: The specified resource was not found content: application/json: schema: $ref: "#/components/schemas/Error" Unauthorized: description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/Error" BadRequest: description: The request path parameters, query parameters or headers are not valid content: application/json: schema: $ref: "#/components/schemas/Error" ServiceUnavailable: description: Service Unavailable - endpoint rate limit exceeded content: application/json: schema: $ref: "#/components/schemas/Error" TooManyRequests: description: Too Many Requests - client rate limit exceeded content: application/json: schema: $ref: "#/components/schemas/Error" securitySchemes: Oauth2: type: oauth2 flows: clientCredentials: tokenUrl: /oauth2/token scopes: employees-read: Grants read access to employees resources employee-demographics-read: Grants access to employee demographics performance-evaluations-read: Grants access to employee performance evaluations examples: {} # Turns off 'Try It' feature in the Developer Portal "x-readme": { "explorer-enabled": false }