Discover/SwagHQ API
live

SwagHQ APIswaghq.com ↗

Access SwagHQ's full product catalog via API: categories, brands, paginated collections, keyword search, and detailed product data with size inventory and tier pricing.

Endpoint health
verified 1h ago
list_categories
get_product
list_products
list_brands
search_products
4/5 passing latest checkself-healing
Endpoints
5
Updated
2mo ago

What is the SwagHQ API?

The SwagHQ API exposes 5 endpoints covering the complete swaghq.com promotional apparel and accessories catalog. Starting with list_categories and list_brands for navigation, you can feed collection IDs into list_products for paginated, filterable listings, run free-text queries via search_products, and pull full product detail — including quantity-tier pricing, per-size inventory, and logo decoration methods — through get_product.

This call costs2 credits / call— charged only on success
Try it

No input parameters required.

→ api.parse.bot/scraper/d420ec18-47a8-45a5-bb6d-8283e53b48a5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/d420ec18-47a8-45a5-bb6d-8283e53b48a5/list_categories' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 swaghq-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: SwagHQ catalog SDK — browse categories, filter products, drill into detail."""
from parse_apis.swaghq_com_api import SwagHQ, ProductSort, ProductNotFound

client = SwagHQ()

# Browse the category tree and pick the first top-level department.
top_category = client.categories.list(limit=50).first()
if top_category is not None:
    print(top_category.name, f"(id={top_category.collection_id})")

    # List best-selling products in that category, capped at 5.
    for product in top_category.products.list(sort=ProductSort.BEST_SELLER, limit=5):
        print(product.name, f"${product.msrp}", product.sizes)

    # Drill one summary into its full detail page.
    summary = top_category.products.list(sort=ProductSort.BEST_SELLER, limit=1).first()
    if summary is not None:
        detail = summary.detail()
        print(detail.name, detail.description_html[:80])
        print("Colors:", [c.color for c in detail.colors])
        print("Sizes in stock:", [inv.size for inv in detail.inventory if inv.in_stock > 0])

# Keyword search across the whole catalog.
hit = client.product_summaries.search(query="polo", limit=1).first()
if hit is not None:
    full = hit.detail()
    print(full.name, f"${full.sale_price}", full.decoration_methods)
    if full.quantity_pricing:
        print("Min order:", full.quantity_pricing.minimum_units)

# Point lookup by slug — with typed error handling.
try:
    shirt = client.products.get(slug="does-not-exist-xyz")
except ProductNotFound:
    print("Product not found — expected for an invalid slug.")

print("exercised: categories.list / category.products.list / product_summaries.search / summary.detail / products.get")
All endpoints · 5 totalmissing one? ·

Returns the site's product category tree as a flat list (top-level departments such as Men, Women, Workwear, Headwear, Accessories and Best Seller, plus their sub-categories) with each entry's collection_id, slug, level and parent_collection_id. One request; no pagination. The collection_id values are the identifiers accepted by list_products with is_brand omitted or false.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "count": "integer number of category entries returned",
    "categories": "array of category entries: collection_id (integer key for list_products), name, slug (site URL path segment), parent_collection_id (null for top-level), level (0 = department, 1 = sub-category, 2 = leaf)"
  },
  "sample": {
    "data": {
      "count": 43,
      "categories": [
        {
          "name": "Men",
          "slug": "men",
          "level": 0,
          "collection_id": 1,
          "parent_collection_id": null
        },
        {
          "name": "Shirts",
          "slug": "men/shirts",
          "level": 1,
          "collection_id": 16,
          "parent_collection_id": 1
        }
      ]
    },
    "status": "success"
  }
}

About the SwagHQ API

Navigation and Discovery

list_categories returns the full category tree as a flat list: each entry includes a collection_id, name, slug, level, and parent_collection_id. list_brands returns every brand in the site's Brands menu with its collection_id, name, slug, and logo_url. Both endpoints require no inputs and return in a single request. The collection_id values from either endpoint feed directly into list_products.

Browsing Collections

list_products accepts a required collection_id and an is_brand boolean to distinguish brand collections from category collections. Results are paginated at 12 products per page and can be filtered by color, size, and brand facets whose valid values are listed in the available_filters field of each response. Each product card in the products array includes product_id, slug, name, sku, brand, msrp, sale_price, low_price, color families, tags such as best seller, stock flags, and sibling color variant references. The response also echoes applied_filters, total, total_pages, and has_more.

Search

search_products accepts a free-text query and supports offset and limit (1–100) for pagination within the result set. The response includes a products array using the same card shape as list_products, a suggested_categories array of {collection_id, name, slug} objects usable directly with list_products, and is_truncated to signal when the site's match set exceeds what can be fully addressed.

Product Detail

get_product takes a slug exactly as emitted by list_products or search_products and returns the full product record: description HTML, msrp, sale_price, low_price, sizes, tags, per-size inventory, quantity-tier pricing table, logo decoration methods, and a colors array of sibling variants each with its own slug, image_url, and full images list. Fetching a different color requires a separate get_product call with that variant's slug.

Reliability & maintenanceVerified

The SwagHQ API is a managed, monitored endpoint for swaghq.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when swaghq.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 swaghq.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.

Last verified
1h ago
Latest check
4/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a branded merchandise storefront by syncing SwagHQ's category tree and product cards into your own catalog database.
  • Automate quantity-tier price comparisons for corporate bulk apparel orders using the pricing table from get_product.
  • Surface suggested category results alongside product hits in an in-app search experience using suggested_categories from search_products.
  • Monitor per-size inventory levels across color variants to alert procurement teams when popular SKUs run low.
  • Populate a brand directory with logos and product counts by combining list_brands with list_products filtered by brand collection_id.
  • Generate decoration-method guides for a corporate gifting platform using the logo customization options returned by get_product.
  • Filter collection pages by color family and size facets from available_filters to replicate SwagHQ's browse experience in a custom UI.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does SwagHQ have an official public developer API?+
SwagHQ does not publish a documented public developer API. This Parse API is the structured way to access their catalog data programmatically.
How do color variants work across endpoints?+
list_products and search_products include sibling color references in each product card. get_product returns the full colors array with per-variant slug, image_url, and images list. To get complete detail for a different color of the same style, call get_product again with that variant's slug.
What does `is_truncated` mean in `search_products` results?+
When is_truncated is true, the site returned more matches than could be fully retrieved. Only the first retrieved products are addressable via offset and limit. The total field will be null in this case. Narrowing your query term typically reduces the result set to a fully addressable range.
Does the API return customer reviews or product ratings?+
Not currently. The API covers product descriptions, pricing, inventory, color variants, and decoration options. You can fork this API on Parse and revise it to add an endpoint that fetches review or rating data if SwagHQ exposes it on individual product pages.
Can I filter `list_products` by multiple colors or sizes at once?+
Each call accepts a single color and a single size filter value drawn from available_filters. Multi-value filtering for the same facet is not supported in a single call. You can fork this API on Parse and revise the list_products endpoint to support multi-value facet filtering.
Page content last updated . Spec covers 5 endpoints from swaghq.com.
Related APIs in EcommerceSee all →
H&M API
Access H&M's product catalog, search, category navigation, sale and new-arrival listings, product details, similar-item recommendations, and US store locations.
sephora.com API
Search and browse Sephora's product catalog to find detailed information about beauty items, including specifications, customer reviews, Q&A discussions, pricing, and real-time availability. Filter products by category or brand, and access comprehensive brand listings to discover exactly what you're looking for.
shop.app API
Browse and search products across Shop.app, view detailed product information, explore merchants and their offerings, discover categories, and find featured items from the homepage. Get autocomplete suggestions to quickly find what you're looking for.
sanmar.com API
Search SanMar's product catalog to browse t-shirts and other apparel by category, view detailed product information including sizes and MSRP pricing. Access wholesale pricing and real-time inventory data with a B2B account.
zara.com API
Shop Zara's entire catalog by browsing categories, searching for specific items, and viewing detailed product information including measurements and related products. Find nearby store locations, check real-time inventory availability, and get shipping details all in one place.
swiftsbuygh.com API
Access data from swiftsbuygh.com.
hm.com API
Search H&M's US product catalog by keyword and instantly retrieve detailed information like prices, product images, available sizes, and real-time stock availability. Perfect for comparing items, tracking product details, or building shopping applications powered by H&M's current inventory data.
bestbuy.com API
Search Best Buy's entire product catalog and get instant autocomplete suggestions while browsing, then pull up detailed pricing, availability, and stock information for any item. Easily sort through results, look up multiple products at once, and discover what's trending in real-time.