---
title: "Vote Recommendation"
method: PUT
path: "/eligibility-checks/v1/recommendation/{recommendation_id}/{version}/vote"
tags: ["v1"]
---

# Vote Recommendation

`PUT /eligibility-checks/v1/recommendation/{recommendation_id}/{version}/vote`

## Request

- Base URL: `https://pre-api.joincandidhealth.com`
- URL: `https://pre-api.joincandidhealth.com/eligibility-checks/v1/recommendation/{recommendation_id}/{version}/vote`
- Auth: HTTP bearer

Submit user feedback on an eligibility recommendation. The path must contain the next version number to prevent race conditions. For example, if the current version of the recommendation is n, you will need to send a request to this endpoint with `/{recommendation_id}/{n+1}/vote` to update the vote.

## Path parameters

- `recommendation_id` string, required
- `version` string, required

## Request body

- PreEncounterEligibilityChecksV1Vote: User feedback on a recommendation
  - `user_id` string, required: The unique identifier for a User in the database
  - `value` 'UPVOTE' | 'DOWNVOTE', required: Possible vote values for recommendation quality

## Response `200`

Response with status 200

- PreEncounterEligibilityChecksV1EligibilityRecommendation: An eligibility recommendation object that contains an EligibilityRecommendationType and a payload of data denoting the recommendation.
  - `organization_id` string, required: The unique identifier for an Organization in the database
  - `deactivated` boolean, required: True if the object is deactivated. Deactivated objects are not returned in search results but are returned in all other endpoints including scan.
  - `version` integer, required: The version of the object. Any update to any property of an object object will create a new version.
  - `updated_at` string, date-time, required
  - `updating_user_id` string, required: The unique identifier for a User in the database
  - `id` string, required: The unique UUID identifier for an EligibilityRecommendation.
  - `eligibility_check_id` string, required
  - `recommendation` union, required
    - object
      - `type` 'MEDICARE_ADVANTAGE', required: Discriminator value: MEDICARE_ADVANTAGE
      - `payload` PreEncounterEligibilityChecksV1MedicareAdvantageRecommendationPayload, required: An object representing the payload for a Medicare Advantage recommendation.
        - `ma_benefit` unknown
        - `payer_id` string
        - `payer_name` string
        - `member_id` string
    - object
      - `type` 'MEDICAID_MANAGED_CARE', required: Discriminator value: MEDICAID_MANAGED_CARE
      - `payload` PreEncounterEligibilityChecksV1MedicareAdvantageRecommendationPayload, required: An object representing the payload for a Medicare Advantage recommendation.
        - `ma_benefit` unknown
        - `payer_id` string
        - `payer_name` string
        - `member_id` string
    - object
      - `type` 'COORDINATION_OF_BENEFITS', required: Discriminator value: COORDINATION_OF_BENEFITS
      - `payload` unknown, required
    - object
      - `type` 'COPAY_ESTIMATION', required: Discriminator value: COPAY_ESTIMATION
      - `payload` PreEncounterEligibilityChecksV1CopayEstimationRecommendationPayload, required: Payload for MD visit copay estimation from AI analysis
        - `structured_response` integer: The estimated copay amount in cents
        - `exposition` string, required: The AI's explanation of the copay estimate
    - object
      - `type` 'USER_CONFIGURED_PROMPTS', required: Discriminator value: USER_CONFIGURED_PROMPTS
      - `payload` PreEncounterEligibilityChecksV1UserConfiguredPromptsRecommendationPayload, required: Payload for user-configured prompt recommendations from AI analysis
        - `results` PreEncounterEligibilityChecksV1UserConfiguredPromptsResult[], required: Array of results from all enabled user-configured prompts
          - `user_prompt_id` string, required: Reference to the user prompt in eligibility config
          - `prompt_name` string, required: User-defined name for the prompt
          - `structured_response` unknown, required
          - `exposition` string, required: The AI's explanation of the answer
  - `coverage_id` string, uuid: The unique identifier for a Coverage in the database
  - `patient` PreEncounterEligibilityChecksV1EligibilityRecommendationPatientInfo, required: An object representing patient information for an eligibility recommendation. This is used to find recommendations. Each field helps us find the right corresponding eligibility recommendation for the patient.
    - `id` string: The unique identifier for a Patient
    - `mrn` string
    - `organization_id` string: The unique identifier for an Organization in the database
    - `last_name` string
    - `first_name` string
    - `date_of_birth` string, date
    - `member_id` string
  - `votes` PreEncounterEligibilityChecksV1Vote[]: Array of votes for this recommendation
    - `user_id` string, required: The unique identifier for a User in the database
    - `value` 'UPVOTE' | 'DOWNVOTE', required: Possible vote values for recommendation quality

## Other responses

- `404`: Error response with status 404
- `409`: Error response with status 409

## Changes

- **2026-09-17** `24b2d80d577a`: 6 breaking, 1 warning, 17 info
  - added the new required request property `user_id`
  - added the new required request property `value`
  - the request's body type changed from no type to `object`
  - the response's body type changed from no type to `object` for status `200`
  - …20 more
- **2026-09-12** `3a81ee81d4ed`: 1 info
  - api operation id `vote-recommendation` removed and replaced with `v1_vote-recommendation`

[Operation history](https://skmtc.dev/joincandidhealth/apis/api-reference/changes/eligibility-checks/v1/recommendation/:recommendation_id/:version/vote/put.md)

---

[API](https://skmtc.dev/joincandidhealth/apis/api-reference.md) - [All operations](https://skmtc.dev/joincandidhealth/apis/api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/joincandidhealth/apis/api-reference/revisions/d8b0a61873e2?raw)
