API documentation
Look up product specifications and accessory compatibility. Evaluation needs no account or API key.
Make your first request
1. Find a product
curl "https://specjoin.com/api/v1/products?q=ThinkPad%20X250&kind=host"
Returns product IDs, names, part numbers and specifications. Search computers, docks, monitors, chargers, cables or adapters.
2. Get accessory results
Pass a computer ID. Add an accessory ID to check one pair:
curl "https://specjoin.com/api/v1/accessories/chargers?computer_id=lenovo-thinkpad-x250&charger_id=lenovo-psu-0a36258"
Example charger result
Complete items[0]:
{
"charger": {
"id": "lenovo-psu-0a36258",
"manufacturer": "Lenovo",
"model": "65W lenovo-slim-tip AC adapter",
"manufacturer_part_number": "0A36258",
"identity_scope": "part",
"notes": [
"Exact Lenovo sales part. Regional mains requirements still apply. Refurbished box contents, charging speed and spare-part equivalence are not inferred."
],
"source_ids": [
"lenovo-ocm-2019-2020"
]
},
"status": "supported",
"charging": {
"status": "supported",
"code": "manufacturer-charger-option",
"explanation": "Lenovo lists this charger for the laptop. Charging speed and performance under heavy use have not been assessed.",
"source_ids": [
"lenovo-ocm-2019-2020",
"lenovo-ocm-before-2016",
"psref-thinkpad-x250"
],
"rule_ids": [
"lenovo-ocm-0a36258-listed-hosts"
],
"missing": [],
"conditions": [
"Use the genuine part number shown and the mains connection for your country. Other spare parts and generic chargers need their own compatibility check."
]
}
}| Endpoint | Returns |
|---|---|
/api/v1/accessories/chargers | Charger identities and charging results. |
/api/v1/accessories/monitors | Monitor identities, checked display modes and cable options. |
/api/v1/accessories/docks | Dock identities, screen options, charging options and required parts. |
All three take computer_id and return conditions and sources. Follow next_offset until it is null. Response fields and pagination.
Connecting your catalogue
Match manufacturer, model and part number to your SKUs, then save the SpecJoin IDs. Display compatibility status and requirements alongside stocked products.
Your team controls product links, stock, prices and page design. Your catalogue stays with you.
Integration examples for recommendations, accessory lookups, quotes and support tools.
Download code & sample data for charger, monitor and dock matching.
Run the example
Unzip and run with Python 3.11 or later. No extra packages or account needed.
python3 retailer_accessories.py chargers python3 retailer_accessories.py monitors python3 retailer_accessories.py docks
The example maps fictional SKUs to saved API results, retaining compatibility details. Replace the mapping with your own; add --live for current results. The script does not upload your catalogue or edit your website.
For paid access, it reads SPECJOIN_API_KEY from your server’s environment. API key instructions.
API field reference
Definitions and types for products, compatibility results, requirements and sources.
Browse the API fieldsPeriodic downloads
The CSV sample uses our delivery format and contains the same findings as the API.
Download CSV sample & import guideAccess, limits and updates
Access
The evaluation API and downloads need no API key. Send JSON with Content-Type: application/json. Production access, delivery frequency and service terms are agreed before billing starts.
Request sizes and limits
Keep evaluation traffic below 120 requests per minute. Temporary per-address abuse protection is separate from paid quotas. On 429, wait the seconds specified by Retry-After. Cache reusable results and use downloads for larger imports.
Product search returns 50 records by default; use limit up to 200 and offset for later pages. POST bodies must be uncompressed JSON, at most 32 KB. Setups accept up to three screens; recommendations accept up to 50 candidate dock IDs.
Handling errors
404: endpoint or product ID not found. Check the ID with product search.422: invalid or inconsistent inputs. Readerror.messageand correct the request.413: request body too large.415: incorrect content type or compressed request body.429: wait forRetry-Afterbefore retrying.500: temporary service failure. Retry later; contact us if it persists.
HTTP 200 means the check completed. Inspect compatibility statuses to learn whether the setup works.
Keeping results current
Check data_version and rule_version when refreshing stored results. schema_version describes the API structure; the download manifest’s csv_format_version describes the CSV layout. Keep tables from each delivery together. Sources include review dates; evidence needing review can produce unknown.
Evaluation downloads are dated snapshots, with no guaranteed refresh schedule or production availability. Paid delivery schedules are agreed by email.
Paid subscription
$99 USD/month includes 100,000 API requests per billing month, periodic downloads, data updates and email support. Covered products are unlimited.
Each successful data call counts as one request, including each page of a paginated list. Failed calls and file downloads do not count.
Save and reuse results on your business’s websites and staff tools without extra requests or page-view charges. Reselling or supplying the dataset to other businesses requires a separate agreement.
Higher allowances are arranged by email, with no automatic overage charges. Production access and download schedules are agreed before billing starts. Free evaluation limits are separate.
Month to month. Your team handles website setup.
Evaluation terms
The API and downloads are free for evaluation, with no automatic subscription or guaranteed production availability. Production use requires a separate agreement.
Send only product IDs and hardware requirements. Keep customer and order information in your systems. We use no advertising trackers; our hosting provider processes requests to serve and protect the site.
Get started by email. No call required.