Shopify App Store category
A Shopify App Store category: name, tagline, app count, its subcategories and its apps (handle, name, link, icon, rating, review count, pricing summary, tagline, Built for Shopify badge, sponsored flag and position), 24 a page, with sort, works-with and Built for Shopify filters. Top-level categories are curated landing pages: they return their subcategories and featured apps, and paging, sort and filters work on their subcategories.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
categoryrequired | string | Category slug (from apps.shopify.com/categories/<slug>, or a subcategory slug from this route), or the category URL. Example: marketing-and-conversion-social-trust-product-reviews |
sort | relevance | popular | newest | Sort order. |
works_with | string | checkout, customer-account or point-of-sale, comma separated. |
built_for_shopify | boolean | true for Built for Shopify apps only. |
page | integer | Page number (default 1). next_page is null on the last page. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/shopify-apps/v1/category?category=marketing-and-conversion-social-trust-product-reviews" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/shopify-apps/v1/category",
params={"category": "marketing-and-conversion-social-trust-product-reviews"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/shopify-apps/v1/category");
url.searchParams.set("category", "marketing-and-conversion-social-trust-product-reviews");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).