SpecJoin

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.

FieldTypeMeaning
idstringSpecJoin product ID. Map this to your store SKU after confirming the exact product.
manufacturerstringManufacturer name.
modelstringModel name.
manufacturer_part_numberstring | nullDocumented manufacturer part number, or null when unavailable. This is separate from the SpecJoin ID.
identity_scopestringfamily describes a model family; part identifies a manufacturer part. Check the configuration and optional ports you sell.
notesstring[]Product qualifications to retain where relevant.
source_idsstring[]IDs of the supporting records in sources[].
Charger results

GET /api/v1/accessories/chargers → items[]

One replacement charger checked against the selected computer.

FieldTypeMeaning
chargerobjectCharger product identity.
statusstringCharging compatibility for this pair.
chargingobjectCharging finding, with its explanation, conditions and sources.
Monitor results

GET /api/v1/accessories/monitors → items[]

One directly connected monitor at the stated display mode.

FieldTypeMeaning
monitorobjectMonitor product identity.
checked_modestringResolution and refresh rate checked. 1080p60 means 1920×1080 at 60 Hz. Category lists use the monitor’s documented preferred mode.
statusstringOverall result for this direct connection.
displayobjectFinding about the display mode.
connectionobjectFinding about the connection and required parts.
cable_optionsobject[]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.

FieldTypeMeaning
dockobjectDock product identity.
connectionobjectFinding about the computer-to-dock connector. Display and charging are assessed separately.
screen_optionsobject[]Checked screen setups, each with its inputs, findings and parts plan. An empty array means no confirmed option in this response.
charging_optionsobject[]Charging findings for the stated supply and computer cable.
requirementsobject[]Shared prerequisites and restrictions, as findings.
scopestringWhat 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.

FieldTypeMeaning
statusstringsupported, conditional, unsupported, unknown or not_requested. Requirements can apply even when supported.
codestringReason code for filtering or handling an outcome. Avoid matching explanation text.
explanationstringExplanation for display.
conditionsstring[]Requirements that must hold for the result to apply.
missingstring[]Information or prerequisites still needed.
source_idsstring[]Supporting source IDs; match them to sources[].id in this response.
rule_idsstring[]Compatibility rules used for the finding.
dock_delivery_ceiling_winteger | nullDock 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.

FieldTypeMeaning
host_port_idstringComputer port used by this route.
host_outputstringComputer-side connector.
monitor_port_idstringMonitor port used by this route.
monitor_inputstringMonitor-side connector.
modestringResolution and refresh rate checked.
cable_requirementstringRequired cable type, direction and capability.
candidate_productsobject[]Product identities for suitable alternatives. Choose one you stock. An empty array does not remove the cable requirement.
compatible_cable_idsstring[]The same candidate products, as IDs.
selected_cable_idstring | nullSpecific cable selected in the check, if any. Null otherwise.
source_idsstring[]Supporting source IDs.
rule_idsstring[]Rules used for this route.
Dock screen options

items[].screen_options[]

One checked setup. Check the combined setup before adding separate charging requirements.

FieldTypeMeaning
host_connectorstringComputer-to-dock connector: usb_c or usb_a.
host_cablestringComputer cable assumption used by this check.
supplyobjectSupply assumption: kind is unknown, none, original or product; product_id identifies an exact supply when kind is product.
monitorsobject[]Screen requirements. Each object has input (connector) and mode (resolution and refresh rate), not a monitor product ID.
charging_requestedbooleanFalse for screen-list options. Laptop charging is not checked here.
software_allowedboolean | nullWhether required software is allowed; null means unspecified.
usestringUse checked, such as office.
statusstringOverall result for this option.
displayobjectDisplay finding.
connectionobjectConnection finding.
restrictionsobject[]Additional findings that qualify the result.
planobjectConnections and required parts, with candidate products.
scopestringDocumentation, monitor and environment assumptions.
Dock charging options

items[].charging_options[]

A charging check with a stated supply and computer cable.

FieldTypeMeaning
host_connectorstringComputer-to-dock connector used.
supplyobjectSupply assumption, with kind and product_id.
host_cablestringoriginal: this option uses the dock’s original computer cable.
findingobjectCharging result and requirements.
supply_productobject | nullExact supply identity when supply.kind is product; otherwise null.
Dock parts plan

items[].screen_options[].plan

The complete connections and requirements for one setup.

FieldTypeMeaning
statusstringResult for the plan.
completenessstringrequirements_only, all_requirements_have_candidates or unresolved. This does not establish your stock.
connectionsobject[]Screen connections that belong together in this setup.
partsobject[]Separate required parts. Candidates within one part are alternatives.
missingstring[]Unresolved information or requirements.
notestringQualification 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.

FieldTypeMeaning
idstringRequirement ID within this plan, not a product ID.
kindstringdock, host_cable, display_cable, adapter, power_supply or auxiliary_power.
descriptionstringWhat the part must provide.
quantityintegerTotal units required.
quantity_ownedintegerUnits treated as already owned in the request.
included_in_selected_productbooleanWhether the plan treats this part as included. Confirm your actual listing’s contents.
quantity_to_obtainintegerUnits still needed under those assumptions.
candidate_productsobject[]Product identities for suitable alternatives. Retain the requirement if this array is empty.
compatible_product_idsstring[]The same candidates, as IDs.
source_idsstring[]Source IDs supporting the requirement.
Response and pagination

Top-level accessory response

Shared fields around the category’s items array.

FieldTypeMeaning
computerobjectSelected computer’s product identity.
operating_systemstringOperating system used for the checks.
itemsobject[]Results for the requested category, including unsuitable and unconfirmed candidates.
offsetintegerStarting position of this page.
limitintegerMaximum items requested.
totalintegerTotal candidates, not confirmed compatible products.
next_offsetinteger | nullRequest the next page at this offset; null means no more pages.
sourcesobject[]Evidence records used in this response.
scopestringWhat this category assesses.
data_versionstringDataset release.
rule_versionstringCompatibility-rule release.
schema_versionstringCore API schema version.
accessories_versionintegerCategory-response version; version 2 includes candidate identities.
data_sha256stringDataset checksum.
release_statusstringevaluation 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.

FieldTypeMeaning
idstringSpecJoin product ID. Map this to your store SKU after confirming the exact product.
manufacturerstringManufacturer name.
modelstringModel name.
manufacturer_part_numberstring | nullDocumented manufacturer part number, or null when unavailable. This is separate from the SpecJoin ID.
identity_scopestringfamily describes a model family; part identifies a manufacturer part. Check the configuration and optional ports you sell.
notesstring[]Product qualifications to retain where relevant.
source_idsstring[]IDs of the supporting records in sources[].
kindstringhost (computer), dock, monitor, power_supply, cable or adapter.
aliasesstring[]Other lookup names or identifiers, not proof of equivalent configurations.
portsobject[]Ports with their connector, role, capabilities and qualifications.
attributesobject[]Additional named specifications, values and sources.
hostobject | nullComputer capabilities and power requirements, or null for other kinds.
dockobject | nullDock connections, output groups and supply requirements, or null.
monitorobject | nullMonitor inputs and display modes, or null.
power_supplyobject | nullSupply connector, class and rated output power, or null.
cableobject | nullCable endpoints, modes and power capabilities, or null.
adapterobject | nullAdapter direction, modes and power needs, or null.
Sources

sources[]

Look up a finding’s source_ids here by id.

FieldTypeMeaning
idstringIdentifier used in source_ids.
titlestringDocument or page title.
urlstringOriginal source document or page.
locatorstringRelevant location and review notes.
checked_onstringReview date, YYYY-MM-DD.
review_statusstringreviewed, needs_review or withdrawn.
review_after_daysintegerInterval before another review is due.
permissionstringSource-use classification for this dataset.
permission_basisstringRecorded basis for the classification.
sha256string | nullRetained document checksum, or null.

The OpenAPI specification includes every endpoint, request parameter, nested field and allowed value.

What each status means

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.

Access, limits, errors and updates