RedMagic APIredmagic.gg ↗
Access RedMagic gaming store data via 7 endpoints: product details, collection listings, real-time stock availability, pricing, discounts, and product comparison.
What is the RedMagic API?
The RedMagic API gives developers structured access to the redmagic.gg gaming store catalog across 7 endpoints, covering collections, product details, pricing, discounts, and live stock status. The get_product_details endpoint returns complete variant and image data for any product handle, while check_stock_availability provides per-variant availability in real time. All endpoints return clean JSON without requiring any session or account credentials.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/10188af6-9358-493f-be0b-6fe72dd065b7/get_all_collections' \ -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 redmagic-gg-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.redmagic_store_api import RedMagic, Collection, CollectionProduct, Product, ProductSearchResult, ProductNotFound
client = RedMagic()
# Browse collections and list products in "redmagic-phones"
for product in client.collection("redmagic-phones").products.list():
print(product.title, product.handle, product.product_type)
for variant in product.variants:
print(variant.title, variant.price, variant.available)
# Search for products by keyword
for result in client.products.search(query="tablet"):
print(result.title, result.price, result.available, result.handle)
# Get full product details
phone = client.products.get(handle="redmagic-11-pro")
print(phone.title, phone.vendor, phone.product_type)
for img in phone.images:
print(img.src, img.width, img.height)
# Check stock and pricing via a collection product
for cp in client.collection("redmagic-phones").products.list(limit=2):
stock = cp.stock()
print(stock.title, stock.is_available)
for va in stock.variants_availability:
print(va.title, va.available, va.sku)
pricing = cp.pricing()
for vp in pricing.pricing:
print(vp.title, vp.price, vp.discount_amount, vp.discount_percentage)
# Compare multiple products side-by-side
for p in client.products.compare(handles="redmagic-11-pro,redmagic-11-air"):
print(p.title, p.handle, p.vendor)
for opt in p.options:
print(opt.name, opt.values)
Retrieve all product collections available on the RedMagic store. Returns collection metadata including title, handle, description, and product count. Each collection groups related products (phones, accessories, deals, etc.).
No input parameters required.
{
"type": "object",
"fields": {
"collections": "array of collection objects with id, title, handle, description, published_at, updated_at, image, and products_count"
},
"sample": {
"data": {
"collections": [
{
"id": 297498116169,
"image": null,
"title": "All Products",
"handle": "all-products",
"updated_at": "2026-06-10T19:05:14+08:00",
"description": "",
"published_at": "2025-03-12T14:36:50+08:00",
"products_count": 98
}
]
},
"status": "success"
}
}About the RedMagic API
Catalog and Collections
The get_all_collections endpoint returns every product collection on the RedMagic store, including id, title, handle, description, published_at, updated_at, image, and products_count. These handles feed directly into get_collection_products, which paginates up to 30 products per page using an integer page parameter. Each product object in the response includes id, title, handle, body_html, variants, images, options, tags, vendor, and product_type.
Product Details and Search
get_product_details accepts a handle string (for example, redmagic-11-air) and returns the full product record including all variant pricing and option configurations. The search_products endpoint accepts a query keyword and returns matching products with id, title, handle, price, url, available, body, and image. Single-word queries are more reliable; multi-word queries may return empty results depending on how the store indexes terms.
Pricing, Discounts, and Stock
get_price_and_discounts returns a pricing array for every variant of a product, with fields variant_id, title, price, compare_at_price, discount_amount, and discount_percentage. Discount figures are calculated when compare_at_price exceeds the current price. check_stock_availability exposes is_available at the product level and a variants_availability array containing variant_id, title, available, and sku per variant — useful for monitoring specific SKUs across color or storage configurations.
Multi-Product Comparison
compare_products accepts a comma-separated handles string (minimum two handles) and returns an array of full product objects in one call, making side-by-side spec or pricing comparisons straightforward without issuing multiple individual requests.
The RedMagic API is a managed, monitored endpoint for redmagic.gg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when redmagic.gg 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 redmagic.gg 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?+
- Track real-time stock for specific RedMagic phone SKUs using
check_stock_availabilityand the per-variantavailablefield - Build a RedMagic price-drop alert by polling
get_price_and_discountsand comparingcompare_at_priceagainstprice - Sync RedMagic's full product catalog to an internal database using
get_all_collectionsfollowed by paginatedget_collection_productscalls - Generate side-by-side spec sheets for multiple devices using
compare_productswith comma-separated handles - Index RedMagic products in a search tool by combining
search_productskeyword results with full details fromget_product_details - Monitor which collections gain or lose products over time using the
products_countfield fromget_all_collections - Feed product
tags,vendor, andproduct_typefields into a recommendation engine that categorizes RedMagic accessories vs. phones
| 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 RedMagic have an official developer or storefront API?+
What does `check_stock_availability` return for products with multiple storage or color variants?+
variants_availability array with one entry per variant. Each entry includes variant_id, title (which typically encodes the option combination such as '16GB / Titanium'), available (boolean or null), and sku. The top-level is_available boolean is true if at least one variant has stock.Are there any quirks with the `search_products` endpoint?+
Does the API include customer reviews or ratings for RedMagic products?+
Does `get_collection_products` return all products in a large collection in one call?+
page parameter to step through pages. Requesting a page number beyond the available product count returns an empty array, which can serve as the termination condition for a full-catalog crawl.