API field reference
The fields returned by the product and accessory endpoints, with their types and meanings.
Response fields
Fields are grouped by the object returned by the API. [] means an array. null means unavailable or not applicable, not zero or false.
Product identity
computer · items[].charger / monitor / dock · candidate_products[]
These fields identify the products in a result.
| Field | Type | Meaning |
|---|---|---|
id | string | SpecJoin product ID. Map this to your store SKU after confirming the exact product. |
manufacturer | string | Manufacturer name. |
model | string | Model name. |
manufacturer_part_number | string | null | Documented manufacturer part number, or null when unavailable. This is separate from the SpecJoin ID. |
identity_scope | string | family describes a model family; part identifies a manufacturer part. Check the configuration and optional ports you sell. |
notes | string[] | Product qualifications to retain where relevant. |
source_ids | string[] | IDs of the supporting records in sources[]. |
Charger results
GET /api/v1/accessories/chargers → items[]
One replacement charger checked against the selected computer.
| Field | Type | Meaning |
|---|---|---|
charger | object | Charger product identity. |
status | string | Charging compatibility for this pair. |
charging | object | Charging finding, with its explanation, conditions and sources. |
Monitor results
GET /api/v1/accessories/monitors → items[]
One directly connected monitor at the stated display mode.
| Field | Type | Meaning |
|---|---|---|
monitor | object | Monitor product identity. |
checked_mode | string | Resolution and refresh rate checked. 1080p60 means 1920×1080 at 60 Hz. Category lists use the monitor’s documented preferred mode. |
status | string | Overall result for this direct connection. |
display | object | Finding about the display mode. |
connection | object | Finding about the connection and required parts. |
cable_options | object[] | Alternative complete cable routes. Choose one route, then one suitable candidate cable. |
Dock results
GET /api/v1/accessories/docks → items[]
Screen and charging options are separate. There is no unrestricted yes/no result for every use of a dock.
| Field | Type | Meaning |
|---|---|---|
dock | object | Dock product identity. |
connection | object | Finding about the computer-to-dock connector. Display and charging are assessed separately. |
screen_options | object[] | Checked screen setups, each with its inputs, findings and parts plan. An empty array means no confirmed option in this response. |
charging_options | object[] | Charging findings for the stated supply and computer cable. |
requirements | object[] | Shared prerequisites and restrictions, as findings. |
scope | string | What this pair assessment covers. |
Results and requirements
charging · display · connection · finding · requirements[] · restrictions[]
Shared finding fields. Keep the conditions and missing information with the result.
| Field | Type | Meaning |
|---|---|---|
status | string | supported, conditional, unsupported, unknown or not_requested. Requirements can apply even when supported. |
code | string | Reason code for filtering or handling an outcome. Avoid matching explanation text. |
explanation | string | Explanation for display. |
conditions | string[] | Requirements that must hold for the result to apply. |
missing | string[] | Information or prerequisites still needed. |
source_ids | string[] | Supporting source IDs; match them to sources[].id in this response. |
rule_ids | string[] | Compatibility rules used for the finding. |
dock_delivery_ceiling_w | integer | null | Dock findings only: documented dock-to-laptop power limit in watts, or null. Keep the charging status and requirements with this value. |
Cable options and candidate products
items[].cable_options[]
Each route includes the candidate cable identities, avoiding additional product lookups.
| Field | Type | Meaning |
|---|---|---|
host_port_id | string | Computer port used by this route. |
host_output | string | Computer-side connector. |
monitor_port_id | string | Monitor port used by this route. |
monitor_input | string | Monitor-side connector. |
mode | string | Resolution and refresh rate checked. |
cable_requirement | string | Required cable type, direction and capability. |
candidate_products | object[] | Product identities for suitable alternatives. Choose one you stock. An empty array does not remove the cable requirement. |
compatible_cable_ids | string[] | The same candidate products, as IDs. |
selected_cable_id | string | null | Specific cable selected in the check, if any. Null otherwise. |
source_ids | string[] | Supporting source IDs. |
rule_ids | string[] | Rules used for this route. |
Dock screen options
items[].screen_options[]
One checked setup. Check the combined setup before adding separate charging requirements.
| Field | Type | Meaning |
|---|---|---|
host_connector | string | Computer-to-dock connector: usb_c or usb_a. |
host_cable | string | Computer cable assumption used by this check. |
supply | object | Supply assumption: kind is unknown, none, original or product; product_id identifies an exact supply when kind is product. |
monitors | object[] | Screen requirements. Each object has input (connector) and mode (resolution and refresh rate), not a monitor product ID. |
charging_requested | boolean | False for screen-list options. Laptop charging is not checked here. |
software_allowed | boolean | null | Whether required software is allowed; null means unspecified. |
use | string | Use checked, such as office. |
status | string | Overall result for this option. |
display | object | Display finding. |
connection | object | Connection finding. |
restrictions | object[] | Additional findings that qualify the result. |
plan | object | Connections and required parts, with candidate products. |
scope | string | Documentation, monitor and environment assumptions. |
Dock charging options
items[].charging_options[]
A charging check with a stated supply and computer cable.
| Field | Type | Meaning |
|---|---|---|
host_connector | string | Computer-to-dock connector used. |
supply | object | Supply assumption, with kind and product_id. |
host_cable | string | original: this option uses the dock’s original computer cable. |
finding | object | Charging result and requirements. |
supply_product | object | null | Exact supply identity when supply.kind is product; otherwise null. |
Dock parts plan
items[].screen_options[].plan
The complete connections and requirements for one setup.
| Field | Type | Meaning |
|---|---|---|
status | string | Result for the plan. |
completeness | string | requirements_only, all_requirements_have_candidates or unresolved. This does not establish your stock. |
connections | object[] | Screen connections that belong together in this setup. |
parts | object[] | Separate required parts. Candidates within one part are alternatives. |
missing | string[] | Unresolved information or requirements. |
note | string | Qualification to retain with the plan. |
Required parts
items[].screen_options[].plan.parts[]
Choose one candidate per required part and use its quantity once. Different required parts are cumulative.
| Field | Type | Meaning |
|---|---|---|
id | string | Requirement ID within this plan, not a product ID. |
kind | string | dock, host_cable, display_cable, adapter, power_supply or auxiliary_power. |
description | string | What the part must provide. |
quantity | integer | Total units required. |
quantity_owned | integer | Units treated as already owned in the request. |
included_in_selected_product | boolean | Whether the plan treats this part as included. Confirm your actual listing’s contents. |
quantity_to_obtain | integer | Units still needed under those assumptions. |
candidate_products | object[] | Product identities for suitable alternatives. Retain the requirement if this array is empty. |
compatible_product_ids | string[] | The same candidates, as IDs. |
source_ids | string[] | Source IDs supporting the requirement. |
Response and pagination
Top-level accessory response
Shared fields around the category’s items array.
| Field | Type | Meaning |
|---|---|---|
computer | object | Selected computer’s product identity. |
operating_system | string | Operating system used for the checks. |
items | object[] | Results for the requested category, including unsuitable and unconfirmed candidates. |
offset | integer | Starting position of this page. |
limit | integer | Maximum items requested. |
total | integer | Total candidates, not confirmed compatible products. |
next_offset | integer | null | Request the next page at this offset; null means no more pages. |
sources | object[] | Evidence records used in this response. |
scope | string | What this category assesses. |
data_version | string | Dataset release. |
rule_version | string | Compatibility-rule release. |
schema_version | string | Core API schema version. |
accessories_version | integer | Category-response version; version 2 includes candidate identities. |
data_sha256 | string | Dataset checksum. |
release_status | string | evaluation or commercial. |
Full product specifications
GET /api/v1/products/{id}
Product lookup returns the identity fields plus specifications. Category results use the smaller identity object.
| Field | Type | Meaning |
|---|---|---|
id | string | SpecJoin product ID. Map this to your store SKU after confirming the exact product. |
manufacturer | string | Manufacturer name. |
model | string | Model name. |
manufacturer_part_number | string | null | Documented manufacturer part number, or null when unavailable. This is separate from the SpecJoin ID. |
identity_scope | string | family describes a model family; part identifies a manufacturer part. Check the configuration and optional ports you sell. |
notes | string[] | Product qualifications to retain where relevant. |
source_ids | string[] | IDs of the supporting records in sources[]. |
kind | string | host (computer), dock, monitor, power_supply, cable or adapter. |
aliases | string[] | Other lookup names or identifiers, not proof of equivalent configurations. |
ports | object[] | Ports with their connector, role, capabilities and qualifications. |
attributes | object[] | Additional named specifications, values and sources. |
host | object | null | Computer capabilities and power requirements, or null for other kinds. |
dock | object | null | Dock connections, output groups and supply requirements, or null. |
monitor | object | null | Monitor inputs and display modes, or null. |
power_supply | object | null | Supply connector, class and rated output power, or null. |
cable | object | null | Cable endpoints, modes and power capabilities, or null. |
adapter | object | null | Adapter direction, modes and power needs, or null. |
Sources
sources[]
Look up a finding’s source_ids here by id.
| Field | Type | Meaning |
|---|---|---|
id | string | Identifier used in source_ids. |
title | string | Document or page title. |
url | string | Original source document or page. |
locator | string | Relevant location and review notes. |
checked_on | string | Review date, YYYY-MM-DD. |
review_status | string | reviewed, needs_review or withdrawn. |
review_after_days | integer | Interval before another review is due. |
permission | string | Source-use classification for this dataset. |
permission_basis | string | Recorded basis for the classification. |
sha256 | string | null | Retained document checksum, or null. |
The OpenAPI specification includes every endpoint, request parameter, nested field and allowed value.
What each status means
- Supported: manufacturer documentation supports the specified use. Listed conditions still apply.
- Conditional: additional requirements need to be satisfied, such as a cable, power supply or software installation.
- Unsupported: a known limit prevents the specified use.
- Unknown: more information is needed to confirm compatibility.
- Not requested: this feature was not checked. For example, a dock screen check does not automatically check laptop charging.
A charger result concerns charging. A monitor result concerns the stated direct display connection. Dock screen and charging options are separate: an empty screen-options list means no confirmed option in this response, not that the dock cannot work.
The data comes from manufacturer documentation. We have not physically tested every combination. Check optional ports, included accessories and any listed requirements.
Request options
Category filters and pagination
All accessory endpoints require computer_id. To check one pair, add charger_id, monitor_id or dock_id to the corresponding endpoint.
Charger and monitor lists return 20 entries by default, up to 50 per request. Dock lists return 5 by default, up to 20. Use limit and offset, then follow next_offset until it is null. Lists include unsuitable and unconfirmed candidates; total counts all candidates.
Category lists use the computer’s recorded default operating system. For another operating system or specific screen settings, use an exact-check endpoint. Wrong product categories and unknown parameters return 422.
Check an exact screen or charging setup
Use POST /api/v1/direct/check for a particular monitor mode, input, cable or replacement charger. Use POST /api/v1/check for a computer, dock, explicit screen settings and optional charging needs. POST /api/v1/recommend checks that setup against up to 50 dock IDs you supply.
A dock screen option and a separate charging option do not establish that their combined setup works. Check the combination before recommending a complete bundle.
The exact-check endpoints use candidate product IDs. The category endpoints also include those candidates’ identities.
Start from an accessory
The API’s category lists start from a computer; there is no separate accessory-to-computers endpoint. Store the pair results locally and index them by accessory ID, or filter periodic downloads by charger_id, monitor_id or dock_id.
Other supported endpoints
/api/v1/direct/compatibility, /api/v1/compatibility and /api/v1/dock/overview remain available. Their fields are listed in the OpenAPI specification.