Corsair APIcorsair.com ↗
Search and browse Corsair's gaming peripherals and PC components catalog. Get product details, pricing, stock status, variants, and category filters via 3 endpoints.
What is the Corsair API?
The Corsair API exposes 3 endpoints to search, browse, and retrieve detailed data from Corsair's product catalog, covering gaming keyboards, mice, headsets, monitors, and PC components. The search_products endpoint accepts keyword queries and returns paginated product listings alongside available filters and sort options. The get_product_detail endpoint returns variant-level pricing, stock status, and media for a specific SKU.
curl -X GET 'https://api.parse.bot/scraper/bdabfdf0-b966-49ba-a05c-9102fd086d64/search_products?page=1&sort=relevance&query=keyboard&page_size=12&sort_direction=ASC' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace corsair-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Corsair product catalog: search, browse by category, drill into details."""
from parse_apis.corsair_product_search___filter_api import (
Corsair, Sort, SortDirection, ProductNotFound,
)
client = Corsair()
# Search for gaming mice sorted by price ascending; cap at 5 results.
for item in client.productsummaries.search(query="mouse", sort=Sort.PRICE, sort_direction=SortDirection.ASC, limit=5):
print(item.name, item.price.final_price, item.price.currency)
# Drill into the first search result for full product details.
summary = client.productsummaries.search(query="headset", limit=1).first()
if summary:
product = summary.details()
print(product.name, product.stock_status, product.description[:80] if product.description else "")
for media in product.media_gallery[:3]:
print(media.url, media.type)
# Browse keyboards category, in-stock only.
for kb in client.productsummaries.list(category="keyboards", in_stock_only=True, limit=3):
print(kb.name, kb.sku, kb.badge)
# Fetch a product directly by SKU and handle not-found.
try:
detail = client.products.get(sku="CH-91E911E-NA")
print(detail.name, detail.type, detail.max_allowed_quantity)
if detail.variants:
for v in detail.variants[:2]:
print(v.name, v.sku, v.price.final_price)
except ProductNotFound as exc:
print(f"SKU not found: {exc.sku}")
print("Exercised: productsummaries.search, productsummaries.list, summary.details, products.get")
Full-text search over Corsair's product catalog. Returns paginated product summaries, available filter facets (aggregations), and sort options. Each result carries enough info for display; drill into get_product_detail for full specs. Paginates via integer page counter.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed). |
| sort | string | Sort field. Omitting returns results sorted by relevance. |
| queryrequired | string | Search query string (e.g. 'keyboard', 'mouse', 'headset', 'ram'). |
| page_size | integer | Number of results per page. |
| sort_direction | string | Sort direction. |
{
"type": "object",
"fields": {
"items": "array of product summary objects with name, sku, url_key, brand, stock_status, not_sellable, badge, image_url, small_image_url, categories, and price",
"filters": "array of filter/aggregation objects with label, attribute_code, and options (each with label, value, count)",
"total_count": "integer - total number of matching products",
"total_pages": "integer - total number of pages",
"current_page": "integer - current page number",
"sort_options": "array of objects with label and value fields representing available sort options"
},
"sample": {
"data": {
"items": [
{
"sku": "CH-91E911E-NA",
"name": "VANGUARD 96 Mechanical Gaming Keyboard, CORSAIR MLX Quantum",
"badge": "BESTSELLER",
"brand": "corsair",
"price": {
"currency": "USD",
"final_price": 179.99,
"regular_price": 179.99,
"discount_amount": 0
},
"url_key": "vanguard-96-mechanical-gaming-keyboard-corsair-mlx-quantum-ch-91e911e-na",
"image_url": "https://assets.corsair.com/image/upload/c_scale%2Cq_auto%2Cw_96/products/Gaming-Keyboards/vanguard-96/dual-tone/VANGUARD_DUAL-TONE_m_EN_AA_Artboard01.png",
"categories": [
"Gaming Keyboards",
"Wired Gaming Keyboards"
],
"not_sellable": false,
"stock_status": "IN_STOCK",
"small_image_url": "https://assets.corsair.com/image/upload/c_scale%2Cq_auto%2Cw_96/products/Gaming-Keyboards/vanguard-96/dual-tone/VANGUARD_DUAL-TONE_m_EN_AA_Artboard01.png"
}
],
"filters": [
{
"label": "Features & Availability",
"options": [
{
"count": 24,
"label": "Show In Stock Only",
"value": "stock_status:true"
}
],
"attribute_code": "features_and_availability"
}
],
"total_count": 385,
"total_pages": 33,
"current_page": 1,
"sort_options": [
{
"label": "Relevance",
"value": "relevance"
},
{
"label": "Featured",
"value": "featured"
}
]
},
"status": "success"
}
}About the Corsair API
Searching and Browsing Products
The search_products endpoint accepts a required query string (e.g. 'keyboard', 'ram', 'headset') and returns an array of items, each containing name, sku, url_key, brand, stock_status, badge, image_url, and categories. The response also includes a filters array with attribute_code, label, and options (each with a count) — these filter objects can be passed directly into list_products to narrow results. Pagination is controlled via page and page_size parameters, with total_count and total_pages returned in every response.
Browsing by Category
The list_products endpoint accepts a category parameter using URL key values such as keyboards, mousepads, monitors, hubs-docks, and data-stor. An in_stock_only boolean flag filters out unavailable products. Both search_products and list_products support sort values of featured, newest_first, popularity, and price, with an optional sort_direction of ASC or DESC. The sort_options field in each response enumerates the options accepted by that specific context.
Product Detail
The get_product_detail endpoint takes a sku obtained from search or list results and returns the full product record: price object with regular_price, final_price, currency, and discount_amount; a variants array for ConfigurableProduct types with per-variant sku, stock_status, not_sellable, and price; categories with url_path; and a badge label (e.g. BESTSELLER, NEW). For simple products, variants is null.
The Corsair API is a managed, monitored endpoint for corsair.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when corsair.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official corsair.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a Corsair price tracker that monitors
final_priceanddiscount_amountchanges for specific SKUs over time. - Aggregate in-stock gaming peripherals by category using
list_productswithin_stock_only: trueand thekeyboardsormousepadscategory key. - Power a product comparison tool by fetching variant-level pricing and
stock_statusfromget_product_detailfor ConfigurableProduct SKUs. - Index Corsair's full catalog for a deals site by paginating through
list_productsand surfacing items wherebadgeisBESTSELLERorNEW. - Populate an affiliate storefront with product names,
image_url, andurl_keyvalues pulled fromsearch_productskeyword queries. - Build a gaming gear recommendation engine using
filtersreturned bysearch_productsto surface attribute-based refinements to end users.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Corsair have an official developer API?+
What does `get_product_detail` return for configurable products versus simple products?+
ConfigurableProduct types, the variants field contains an array of objects, each with its own sku, name, stock_status, not_sellable, and price. For SimpleProduct types, variants is null. The top-level price object on both types includes regular_price, final_price, currency, and discount_amount.Can I retrieve customer reviews or ratings for Corsair products?+
How do the filters returned by `search_products` work with `list_products`?+
filters array includes an attribute_code and an options list. The value field within each option can be used as a filter parameter in list_products. The count on each option indicates how many products in the current result set match that attribute value.