GameSir APIgamesir.com ↗
Access GameSir's full product catalog via API. Search controllers, browse collections, fetch variants, and get related products. 12 endpoints available.
What is the GameSir API?
The GameSir API exposes 12 endpoints covering the complete gamesir.com product catalog — controllers, accessories, and Hall Effect products. Use get_product_detail to retrieve a single product's full variant list, pricing, SKUs, and HTML description by handle, or search_products to find matching items by keyword across the entire store. Collections, new arrivals, sale items, and product recommendations are all addressable as distinct endpoints.
curl -X GET 'https://api.parse.bot/scraper/c791daef-eacc-4487-b264-6876e31f7bd5/get_all_products?page=1&limit=5' \ -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 gamesir-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.
"""Walkthrough: GameSir store SDK — browse, search, drill into details."""
from parse_apis.gamesir_official_store_api import GameSir, CollectionHandle, ProductNotFound
client = GameSir()
# List the full product catalog (capped to 3 items for speed).
for product in client.products.list(limit=3):
print(product.title, product.handle)
# Search for controllers and take the first result.
result = client.products.search(query="G7", limit=1).first()
if result:
print(result.title, result.price, result.available)
# Drill into full product detail from the search summary.
detail = result.details()
print(detail.title, detail.vendor)
# List variants for this product.
for variant in detail.variants(limit=3):
print(variant.title, variant.price, variant.sku)
# Get related/recommended products.
for rec in detail.related(limit=2):
print(rec.title, rec.handle)
# Browse new arrivals.
for product in client.products.new_arrivals(limit=3):
print(product.title, product.handle)
# Browse a specific collection by handle.
accessories = client.collection(CollectionHandle.GAMESIR_ACCESSORIES)
for product in accessories.products(limit=3):
print(product.title, product.handle)
# List all available collections.
for coll in client.collections.list(limit=5):
print(coll.title, coll.handle, coll.products_count)
# Typed error handling for a non-existent product.
try:
bogus = client.products.list(limit=1).first()
if bogus:
bogus.variants(limit=1).first()
except ProductNotFound as exc:
print(f"Product not found: {exc.product_handle}")
print("exercised: products.list / search / new_arrivals / details / variants / related / collection.products / collections.list")
Fetch all products from the store with names, handles, prices, variants, images, tags, availability, and descriptions. Paginates through the full catalog via page number; each page returns up to `limit` products.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| limit | integer | Max products to return per page (max 250). |
{
"type": "object",
"fields": {
"products": "array of product objects with id, title, handle, body_html, variants, images, tags, options, vendor, published_at"
},
"sample": {
"data": {
"products": [
{
"id": 8659276267754,
"tags": [
"esports accessories",
"GameSir Tarantula 8K",
"gaming controller"
],
"title": "GameSir Tarantula 8K PC Wired Esports Controller for PC",
"handle": "gamesir-tarantula-8k-pc",
"images": [
{
"id": 42257857052906,
"src": "https://cdn.shopify.com/s/files/1/2241/8433/files/ce-wired.png?v=1777365969"
}
],
"vendor": "GameSir",
"options": [
{
"name": "Title",
"values": [
"Default Title"
],
"position": 1
}
],
"variants": [
{
"id": 45992787476714,
"sku": "GST3CE001",
"price": "69.99",
"title": "Default Title",
"available": true
}
],
"product_type": ""
}
]
},
"status": "success"
}
}About the GameSir API
Catalog & Collections
The get_all_products endpoint paginates through the full GameSir catalog, returning up to 250 products per page. Each product object includes id, title, handle, body_html, variants, images, tags, options, vendor, and published_at. To browse a specific slice of the catalog, get_products_by_collection accepts a collection_handle slug — such as gamesir-accessories, hall-tech-products, or hot-sale — and returns products scoped to that collection. Run get_all_collections first to discover the full set of available handles; the response includes each collection's id, handle, title, products_count, and description.
Product Detail & Variants
get_product_detail accepts a product_handle string (e.g. gamesir-g7-se) and returns the complete product record including all variants, images, and structured options. If the handle doesn't match a published product, the endpoint returns input_not_found. For variant-only data, get_product_variants returns an array of variant objects each carrying price, sku, available, option1/option2/option3, weight, and barcode — useful for inventory checks or price comparisons without loading the full product body.
Search & Discovery
search_products accepts a query string and returns matching products with price, image, available, tags, and vendor fields. For curated lists, get_new_arrivals surfaces the new-arrivals collection, get_top_rated_products and get_sale_products both draw from the hot-sale collection by default, and get_hall_effect_products is scoped specifically to Hall Effect sensor controllers. get_related_products accepts a numeric product_id (obtainable from any listing endpoint) and returns recommended products with price and available fields included.
Specialized Collections
get_accessories targets the gamesir-accessories collection handle directly, returning product objects with variants, images, and tags. All collection-scoped endpoints accept a limit parameter. Pagination is 1-based where supported; get_all_collections fits on a single page, while get_all_products and get_products_by_collection require incrementing the page parameter to traverse large catalogs.
The GameSir API is a managed, monitored endpoint for gamesir.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gamesir.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 gamesir.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 price-tracking tool that polls
get_product_variantsfor SKU-level price and availability changes. - Aggregate GameSir's Hall Effect controller lineup using
get_hall_effect_productsto compare specs across models. - Implement a product search feature using
search_productswith keyword queries like 'wireless' or 'G7'. - Generate a product feed by paginating
get_all_productsand extractinghandle,title,variants, andimages. - Surface related product recommendations in a third-party storefront using
get_related_productswith a numeric product ID. - Monitor new product launches by periodically calling
get_new_arrivalsand diffing against a stored list. - Compile a collection index by calling
get_all_collectionsto retrieve allhandle,title, andproducts_countvalues.
| 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 GameSir have an official developer API?+
What does `get_product_variants` return and how does it differ from `get_product_detail`?+
get_product_variants returns only the variants array for a given product handle, with fields including price, sku, available, option1, option2, option3, weight, and barcode. get_product_detail returns the full product record including body_html, images, tags, and options in addition to variants. Use get_product_variants when you need lean variant data without the full product payload.How does pagination work across endpoints?+
page parameter use 1-based numbering. get_all_products and get_products_by_collection support both page and limit (max 250). get_all_collections fits entirely on page 1 — higher page numbers return empty results. get_new_arrivals may also return empty results beyond page 1 if the collection is small.Does the API return customer reviews or ratings for products?+
Can I filter products by price range or availability within a collection?+
price and available fields, but the endpoints themselves do not accept price-range or availability filter parameters — filtering would need to happen client-side on the returned data. You can fork this API on Parse and revise it to add server-side filtering parameters.