NuPhy APInuphy.com ↗
Access NuPhy mechanical keyboard catalog data: search products, fetch variant details, browse collections, and retrieve best sellers via 4 endpoints.
What is the NuPhy API?
The NuPhy API exposes 4 endpoints covering the full NuPhy mechanical keyboard store catalog, from keyword-based product search to per-product variant pricing. The get_product_details endpoint returns every variant, option set, SKU, compare-at price, and raw description HTML for a given product handle, while get_best_sellers surfaces the store's popularity-ranked product list with pagination support.
curl -X GET 'https://api.parse.bot/scraper/1d5bc8e9-03c4-456b-83eb-a104192c5948/search_products?limit=5&query=keyboard' \ -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 nuphy-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.
from parse_apis.nuphy_store_api import NuPhy, Product, SearchResult, ProductSummary, Collection
nuphy = NuPhy()
# Search for keyboards
for result in nuphy.searchresults.search(query="switch"):
print(result.title, result.price, result.available)
# Get full product details from a search result
product = result.details()
print(product.title, product.vendor, product.published_at)
for variant in product.variants:
print(variant.title, variant.price, variant.sku)
for img in product.images:
print(img.src, img.alt)
# Browse a collection
keyboards = nuphy.collection("keyboards")
for item in keyboards.products():
print(item.title, item.price, item.variants_count)
# Get best sellers
for seller in nuphy.productsummaries.best_sellers():
print(seller.title, seller.price, seller.handle)
Search for NuPhy products by keyword. Returns matching products with pricing, availability, and image data. Results come from Shopify's suggest endpoint, limited to a maximum of 10 results per query.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return. Must be between 1 and 10. |
| queryrequired | string | Search query string (e.g. 'keyboard', 'switch', 'keycap'). |
{
"type": "object",
"fields": {
"count": "integer - number of products returned",
"query": "string - the search query echoed back",
"products": "array of product objects with id, title, handle, product_type, vendor, price, price_min, price_max, compare_at_price_min, compare_at_price_max, available, image, url, tags"
},
"sample": {
"data": {
"count": 5,
"query": "keyboard",
"products": [
{
"id": 7883010736237,
"url": "/products/nuphy-wh80-gaming-keyboard?_pos=1&_psq=keyboard&_ss=e&_v=1.0",
"tags": [
"K",
"raw"
],
"image": "https://cdn.shopify.com/s/files/1/0268/7297/1373/files/NuPhyWH80NovaWhiteTopf5f5f5.jpg?v=1766712662",
"price": "249.95",
"title": "NuPhy WH80 Gaming Keyboard",
"handle": "nuphy-wh80-gaming-keyboard",
"vendor": "NuPhy®",
"available": true,
"price_max": "249.95",
"price_min": "249.95",
"product_type": "",
"compare_at_price_max": "0.00",
"compare_at_price_min": "0.00"
}
]
},
"status": "success"
}
}About the NuPhy API
Product Search and Detail
The search_products endpoint accepts a query string and an optional limit (1–10) and returns matching products with id, title, handle, price, available, image, and url. Handles returned here feed directly into get_product_details, which retrieves the full product record: all variants (each with id, title, price, compare_at_price, sku, and option values), the options array, all images (with src and alt), body_html, vendor, product_type, and tags.
Collection Browsing
get_collection_products accepts a collection_handle such as keyboards, keycaps, switches, or keyboard-for-best-deal along with optional page and limit (1–250) parameters for pagination. Each product in the response includes price, compare_at_price, tags, variants_count, and a cover image, making it suitable for building category pages or monitoring deal collections.
Best Sellers
get_best_sellers returns the same product shape as get_collection_products but is ordered by popularity across the entire NuPhy store rather than by a collection filter. Both endpoints expose count, page, and limit in the response envelope so callers can implement standard offset pagination without guessing total record counts.
The NuPhy API is a managed, monitored endpoint for nuphy.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nuphy.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 nuphy.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?+
- Monitor price drops and compare_at_price discounts on NuPhy keyboards across collection pages
- Build a product comparison tool using variant SKUs, option values, and pricing from get_product_details
- Track which products appear in the best-selling list over time using get_best_sellers with pagination
- Populate an affiliate or review site with NuPhy product images, titles, and handles from search_products
- Enumerate all switch or keycap options by querying the 'switches' or 'keycaps' collection handles
- Alert on availability changes for specific product handles using the available field returned by search_products
- Sync NuPhy catalog data into an internal database using collection pagination with limit up to 250
| 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.