---
title: "Recommend"
method: POST
path: "/v1/recommend"
---

# Recommend

`POST /v1/recommend`

## Request

- Base URL: `https://specjoin.com/api`
- URL: `https://specjoin.com/api/v1/recommend`
- Auth: HTTP bearer

## Request body

- RecommendRequest
  - `host_id` string, required
  - `operating_system` 'windows' | 'macos' | 'linux' | 'chromeos', required
  - `host_connector` 'usb_c' | 'usb_a'
  - `monitors` MonitorNeed[], required
    - `input` 'hdmi' | 'mini_hdmi' | 'displayport' | 'mini_displayport' | 'dvi' | 'vga' | 'usb_c', required
    - `mode` '1080p60' | '1440p60' | '4k30' | '4k60' | '1920x1200_60' | '1680x1050_60' | '1600x900_60' | '1440x900_60' | '1280x1024_60', required
  - `software_allowed` boolean, nullable
  - `use` 'office' | 'protected_video' | 'gaming'
  - `charge` boolean
  - `required_power_w` integer, nullable
  - `supply` SupplySelection
    - `kind` 'unknown' | 'none' | 'original' | 'product'
    - `product_id` string, nullable
  - `host_cable` 'unknown' | 'original' | 'thunderbolt_40gbps' | 'usb_c_video' | 'usb_data_only'
  - `require_dock_power_button` boolean
  - `candidate_ids` string[], nullable

## Response `200`

Successful Response

- Assessment[]
  - `schema_version` '0.5.0'
  - `rule_version` string
  - `data_version` string, required
  - `data_sha256` string, required
  - `release_status` 'evaluation' | 'commercial', required
  - `host_id` string, required
  - `dock_id` string, required
  - `status` 'supported' | 'conditional' | 'unsupported' | 'unknown' | 'not_requested', required
  - `summary` string, required
  - `display` Finding, required
    - `status` 'supported' | 'conditional' | 'unsupported' | 'unknown' | 'not_requested', required
    - `code` string, required
    - `explanation` string, required
    - `source_ids` string[]
    - `rule_ids` string[]
    - `missing` string[]
    - `conditions` string[]
    - `dock_delivery_ceiling_w` integer, nullable
  - `power` Finding, required
    - `status` 'supported' | 'conditional' | 'unsupported' | 'unknown' | 'not_requested', required
    - `code` string, required
    - `explanation` string, required
    - `source_ids` string[]
    - `rule_ids` string[]
    - `missing` string[]
    - `conditions` string[]
    - `dock_delivery_ceiling_w` integer, nullable
  - `restrictions` Finding[], required
    - `status` 'supported' | 'conditional' | 'unsupported' | 'unknown' | 'not_requested', required
    - `code` string, required
    - `explanation` string, required
    - `source_ids` string[]
    - `rule_ids` string[]
    - `missing` string[]
    - `conditions` string[]
    - `dock_delivery_ceiling_w` integer, nullable
  - `connection` Finding, required
    - `status` 'supported' | 'conditional' | 'unsupported' | 'unknown' | 'not_requested', required
    - `code` string, required
    - `explanation` string, required
    - `source_ids` string[]
    - `rule_ids` string[]
    - `missing` string[]
    - `conditions` string[]
    - `dock_delivery_ceiling_w` integer, nullable
  - `plan` Plan, required
    - `status` 'supported' | 'conditional' | 'unsupported' | 'unknown' | 'not_requested', required
    - `completeness` 'requirements_only' | 'all_requirements_have_candidates' | 'unresolved', required
    - `connections` Connection[]
      - `monitor_index` integer, required
      - `output_group` string, required
      - `dock_output` 'hdmi' | 'mini_hdmi' | 'displayport' | 'mini_displayport' | 'dvi' | 'vga' | 'usb_c', required
      - `monitor_input` 'hdmi' | 'mini_hdmi' | 'displayport' | 'mini_displayport' | 'dvi' | 'vga' | 'usb_c', required
      - `mode` '1080p60' | '1440p60' | '4k30' | '4k60' | '1920x1200_60' | '1680x1050_60' | '1600x900_60' | '1440x900_60' | '1280x1024_60', required
      - `adapter_id` string, nullable
      - `cable_id` string, nullable
      - `description` string, required
    - `parts` PartRequirement[]
      - `id` string, required
      - `kind` 'dock' | 'host_cable' | 'display_cable' | 'adapter' | 'power_supply' | 'auxiliary_power', required
      - `description` string, required
      - `quantity` integer, required
      - `quantity_owned` integer
      - `included_in_selected_product` boolean
      - `quantity_to_obtain` integer, required
      - `compatible_product_ids` string[]
      - `source_ids` string[]
    - `missing` string[]
    - `note` string
  - `sources` Source[], required
    - `id` string, required
    - `title` string, required
    - `url` string, required
    - `locator` string, required
    - `checked_on` string, required
    - `review_status` 'reviewed' | 'needs_review' | 'withdrawn'
    - `review_after_days` integer
    - `permission` 'evaluation_only' | 'commercial_cleared'
    - `permission_basis` string, required
    - `sha256` string, nullable
  - `basis` string
  - `monitor_assumption` string
  - `environment_assumption` string

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/specjoin/apis/compatibility-data-api.md) · [All operations](https://skmtc.dev/specjoin/apis/compatibility-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/specjoin/apis/compatibility-data-api/revisions/75215ad869cd?raw)
