sanmar.com APIsanmar.com ↗
Search and browse SanMar's wholesale apparel catalog via API. Get product details, MSRP, color variants, sizes, and category listings for 3 endpoints.
curl -X GET 'https://api.parse.bot/scraper/24a1a132-75ec-4306-914b-082c2353bcae/search_products?page=0&limit=48&query=hoodie' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword, style number, or brand name. Returns paginated results from the SanMar catalog.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-based). |
| limit | integer | Number of results per page. |
| queryrequired | string | Search keyword, style number, or brand name (e.g. 'polo', 'ST550', 'Port Authority'). |
{
"type": "object",
"fields": {
"total": "integer total number of matching products",
"products": "array of product summary objects with product_id, name, style_number, brand, description, categories, image_url, thumbnail_url, price_guest, status, url",
"pagination": "object with page, perPage, totalEntries, totalPages, totalProducts"
},
"sample": {
"data": {
"total": 604,
"products": [
{
"url": "https://www.sanmar.com/p/9060_TrueNavy",
"name": "Sport-Tek® PosiCharge® Competitor™ Polo",
"brand": "Sport-Tek",
"status": "REGULAR",
"image_url": "https://cdnp.sanmar.com/medias/sys_master/images/h9d/h53/31344427270174/624Wx724H_9060_TrueNavy-0-ST550TrueNavyModelFront8/624Wx724H-9060-TrueNavy-0-ST550TrueNavyModelFront8.jpg",
"categories": [
"Polos/Knits",
"Polos/Knits|Essentials"
],
"product_id": "9060_TrueNavy",
"description": "Our #1 performance tee fabric—offered in a color-locking, moisture-wicking polo.",
"price_guest": null,
"style_number": "ST550",
"thumbnail_url": "https://cdnp.sanmar.com/medias/sys_master/images/hca/h4f/31344427139102/90W_9060_TrueNavy-0-ST550TrueNavyModelFront8/90W-9060-TrueNavy-0-ST550TrueNavyModelFront8.jpg"
}
],
"pagination": {
"page": 0,
"perPage": 48,
"totalPages": 13,
"totalEntries": 604,
"totalProducts": 604,
"totalSpotlightContent": 0
}
},
"status": "success"
}
}About the sanmar.com API
The SanMar API exposes 3 endpoints that cover the full SanMar wholesale apparel catalog — from keyword and style-number search via search_products to per-category browsing and granular product detail pages. A single get_product_detail call returns MSRP, available sizes, color variant codes and thumbnails, gallery images, and companion products for any product ID found in search or listing results.
What the API Covers
The SanMar API provides structured access to SanMar's wholesale apparel catalog across three endpoints. search_products accepts a free-text query — a keyword like 'polo', a style number like 'ST550', or a brand name like 'Port Authority' — and returns paginated results including product_id, name, style_number, brand, description, image_url, and thumbnail_url. The pagination object on every listing response exposes totalEntries, totalPages, and perPage so you can walk the full result set.
Category Browsing
get_category_listing lets you pull products by category path (e.g. 'T-Shirts/c/tshirts' or 'Polos-Knits/c/polosknits') and optionally narrow by brand using the brand parameter. Both listing endpoints use 0-based page indexing and an optional limit param to control page size. Response shapes are identical to search_products, making it straightforward to treat search and category results uniformly.
Product Detail
get_product_detail takes a product_id (e.g. '9060_TrueNavy') obtained from any listing call and returns the full product record: msrp, style_number, description, available_sizes as a size-range label, a variants array with color code, name, and thumbnail, a gallery_images array of full-size image URLs, and a companions array linking related products. The product_id format encodes both item and color, so each color variant has its own detail record.
- Build a wholesale apparel product search tool using style numbers and brand queries from
search_products. - Populate a reseller catalog by iterating category paths via
get_category_listingwith brand filtering. - Display color swatch selectors and size range labels by parsing the
variantsandavailable_sizesfields fromget_product_detail. - Track MSRP changes over time by periodically fetching
msrpfromget_product_detailfor a set of product IDs. - Build a uniform program configurator that surfaces companion products using the
companionsarray on each product detail. - Generate product image galleries for an e-commerce front-end using
gallery_imagesandthumbnail_urlfields. - Audit brand assortment across categories by combining
get_category_listingbrand filtering with style number extraction.
| 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 | 250 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 SanMar offer an official developer API?+
How does `get_product_detail` handle color variants — does one call return all colors?+
product_id encodes an item-and-color pair (e.g. '9060_TrueNavy'), so each color variant has its own detail record. To cover all colors for a style, retrieve the variants array from one detail call, then request a separate get_product_detail call per variant code.Does the API return real-time inventory levels or wholesale pricing?+
msrp (suggested retail price) and catalog fields like available_sizes and variants, but does not expose inventory counts or wholesale/tier pricing. Those fields require a SanMar B2B account and their official trade API. You can fork this API on Parse and revise it to add an endpoint that pulls inventory or wholesale price data once you have the required credentials.What category paths can I pass to `get_category_listing`?+
category_path parameter mirrors SanMar's URL structure, for example 'T-Shirts/c/tshirts' or 'Polos-Knits/c/polosknits'. If omitted, the endpoint returns all products across categories. You can discover valid paths by browsing sanmar.com and copying the URL segment after the domain.Does the API cover SanMar's closeout or sale items?+
search_products and get_category_listing with standard category paths. Closeout and promotional sections are not exposed as distinct endpoints. You can fork this API on Parse and revise it to add a category path or filter targeting those sections.