Discover/Sirthelabel API
live

Sirthelabel APIsirthelabel.com

Access SIR. The Label product catalog, variant pricing, loyalty tier rules, and policy pages via 4 structured API endpoints. Search, filter, and retrieve fashion data.

This API takes change requests — .
Endpoints
4
Updated
3d ago

What is the Sirthelabel API?

The SIR. The Label API exposes 4 endpoints covering product search, full product detail, loyalty program configuration, and static help pages for the Australian fashion brand's US storefront. The search_products endpoint supports full-text queries with faceted filtering and pagination, returning per-product pricing, availability, and color variant data. get_product delivers complete variant-level inventory, option sets, and description HTML for any product handle.

This call costs1 credit / call— charged only on success
Try it
Page number for pagination.
Search query text (e.g. 'dress', 'silk top', 'midi skirt').
Field to sort by. Accepts: relevance, ss_days_since_published, ga_unique_purchases, ss_price.
Sort direction. Accepts: asc, desc.
Number of results per page.
api.parse.bot/scraper/6ee4f54b-8cbf-4955-8ea8-b775469a2ede/<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/6ee4f54b-8cbf-4955-8ea8-b775469a2ede/search_products' \
  -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 sirthelabel-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.

"""
SIR. The Label API Client
Get your API key from: https://parse.bot/settings
"""

import os
import requests
from typing import Optional, Dict, Any, List


class ParseClient:
    """Client for SIR. The Label fashion brand API via Parse."""

    def __init__(self, api_key: Optional[str] = None):
        self.base_url = "https://api.parse.bot"
        self.scraper_id = "6ee4f54b-8cbf-4955-8ea8-b775469a2ede"
        self.api_key = api_key or os.getenv("PARSE_API_KEY")

        if not self.api_key:
            raise ValueError("API key must be provided or set in PARSE_API_KEY environment variable")

    def _call(self, endpoint: str, method: str = "POST", **params) -> Dict[str, Any]:
        """Make API request to Parse endpoint."""
        url = f"{self.base_url}/scraper/{self.scraper_id}/{endpoint}"
        headers = {
            "X-API-Key": self.api_key,
            "Content-Type": "application/json"
        }

        if method.upper() == "GET":
            response = requests.get(url, headers=headers, params=params)
        elif method.upper() == "POST":
            response = requests.post(url, headers=headers, json=params)
        else:
            raise ValueError(f"Unsupported HTTP method: {method}")

        response.raise_for_status()
        return response.json()

    def search_products(
        self,
        query: str,
        page: int = 1,
        results_per_page: int = 24,
        sort_field: str = "relevance",
        sort_direction: str = "desc"
    ) -> Dict[str, Any]:
        """
        Search products on SIR. The Label.

        Args:
            query: Search query text (e.g., 'dress', 'silk top')
            page: Page number for pagination
            results_per_page: Number of results per page
            sort_field: Field to sort by (relevance, ss_days_since_published, ga_unique_purchases, ss_price)
            sort_direction: Sort direction (asc, desc)

        Returns:
            Dict with query, pagination, results, and facets
        """
        return self._call(
            "search_products",
            method="GET",
            query=query,
            page=page,
            results_per_page=results_per_page,
            sort_field=sort_field,
            sort_direction=sort_direction
        )

    def get_product(self, handle: str) -> Dict[str, Any]:
        """
        Get full product details by handle.

        Args:
            handle: Product URL handle/slug (e.g., 'phillipa-shirt-dress-eira-midnight')

        Returns:
            Dict with product details including images, variants, and pricing
        """
        return self._call("get_product", method="GET", handle=handle)

    def get_loyalty_program(self, country: str = "US") -> Dict[str, Any]:
        """
        Get SIR. Loyalty program configuration.

        Args:
            country: Country code for localized loyalty info (e.g., 'US', 'AU')

        Returns:
            Dict with tiers, earning rules, and referral incentives
        """
        return self._call("get_loyalty_program", method="GET", country=country)

    def get_page(self, handle: str) -> Dict[str, Any]:
        """
        Get help/policy page content by handle.

        Args:
            handle: Page URL handle (e.g., 'shipping-delivery', 'privacy-policy')

        Returns:
            Dict with page title, HTML body, and text summary
        """
        return self._call("get_page", method="GET", handle=handle)


if __name__ == "__main__":
    # Initialize client
    client = ParseClient()

    print("=" * 70)
    print("SIR. THE LABEL - PRODUCT DISCOVERY & DETAILS WORKFLOW")
    print("=" * 70)

    # Step 1: Search for silk dresses
    print("\n📍 Step 1: Searching for 'silk dress'...")
    search_results = client.search_products(
        query="silk dress",
        results_per_page=5,
        sort_field="ss_price",
        sort_direction="asc"
    )

    print(f"Found {search_results['pagination']['total_results']} results")
    print(f"Showing page {search_results['pagination']['current_page']} of {search_results['pagination']['total_pages']}")

    # Step 2: Display search results summary
    print("\n📋 Search Results Summary:")
    for idx, product in enumerate(search_results["results"], 1):
        print(f"\n  {idx}. {product['name']}")
        print(f"     Price: ${product['price']}")
        print(f"     Color: {product['variant_color']}")
        print(f"     Available: {'✓' if product['available'] else '✗'}")
        print(f"     Collections: {', '.join(product['collection_handle'])}")

    # Step 3: Display available facets for further filtering
    print("\n🔍 Available Filters:")
    for facet in search_results.get("facets", []):
        print(f"\n  {facet['label']}:")
        for value in facet["values"][:3]:  # Show top 3 values
            print(f"    - {value['value']} ({value['count']} products)")

    # Step 4: Get detailed information for the first few products
    print("\n" + "=" * 70)
    print("📦 DETAILED PRODUCT INFORMATION")
    print("=" * 70)

    for idx, product in enumerate(search_results["results"][:3], 1):
        product_handle = product["handle"]
        print(f"\n--- Product {idx}: {product['name']} ---")

        # Fetch full product details
        product_details = client.get_product(product_handle)

        print(f"Title: {product_details['title']}")
        print(f"Available: {'Yes' if product_details['available_for_sale'] else 'No'}")
        print(f"Price Range: ${product_details['price_range']['min']} - ${product_details['price_range']['max']} {product_details['price_range']['currency']}")

        # Show available options (sizes, colors)
        print("Available Options:")
        for option in product_details["options"]:
            print(f"  {option['name']}: {', '.join(option['values'][:5])}")
            if len(option["values"]) > 5:
                print(f"           ... and {len(option['values']) - 5} more")

        # Show variant availability
        print(f"Variants ({len(product_details['variants'])} total):")
        for variant in product_details["variants"][:3]:
            status = "In Stock" if variant["available_for_sale"] else "Out of Stock"
            qty = variant.get("quantity_available", "N/A")
            print(f"  - {variant['title']}: {status} (Qty: {qty}) - ${variant['price']}")

        if len(product_details["variants"]) > 3:
            print(f"  ... and {len(product_details['variants']) - 3} more variants")

    # Step 5: Get loyalty program information
    print("\n" + "=" * 70)
    print("💎 LOYALTY PROGRAM DETAILS")
    print("=" * 70)

    loyalty = client.get_loyalty_program(country="US")

    print(f"\nProgram: {loyalty['program_name']}")
    print(f"Currency: {loyalty['currency']['symbol']}{loyalty['currency']['code'].upper()}")

    print("\nProgram Tiers:")
    for tier in loyalty["tiers"]:
        lower = tier["bounds"]["lower"]
        upper = tier["bounds"]["upper"]
        print(f"  {tier['name']}: {lower:,} - {upper:,} points")

    print("\nEarning Rules:")
    for rule in loyalty["earning_rules"]:
        if rule["enabled"]:
            print(f"  - {rule['title']}: {rule['value']} point(s) per {rule['kind']}")

    referral = loyalty["referral_incentive"]
    print(f"\nReferral Incentive: {referral['discount_amount']}% off")
    print(f"  (Minimum spend: ${referral['minimum_spend']})")

    # Step 6: Get shipping information
    print("\n" + "=" * 70)
    print("📬 SHIPPING & DELIVERY INFORMATION")
    print("=" * 70)

    shipping_page = client.get_page("shipping-delivery")
    print(f"\nPage: {shipping_page['title']}")
    print(f"\nSummary:\n{shipping_page['body_summary'][:300]}...")

    print("\n" + "=" * 70)
    print("✅ Workflow Complete!")
    print("=" * 70)
All endpoints · 4 totalmissing one? ·

Search products on SIR. The Label using full-text search with faceted filtering and pagination. Returns matching products with pricing, availability, images, and facet breakdowns for further filtering.

Input
ParamTypeDescription
pageintegerPage number for pagination.
queryrequiredstringSearch query text (e.g. 'dress', 'silk top', 'midi skirt').
sort_fieldstringField to sort by. Accepts: relevance, ss_days_since_published, ga_unique_purchases, ss_price.
sort_directionstringSort direction. Accepts: asc, desc.
results_per_pageintegerNumber of results per page.
Response
{
  "type": "object",
  "fields": {
    "query": "string",
    "facets": "array of facet objects with field, label, and values (each with value and count)",
    "results": "array of product objects with id, handle, name, price, url, image_url, variant_color, available, tags, collection_handle",
    "pagination": "object containing total_results, current_page, total_pages, per_page"
  },
  "sample": {
    "query": "dress",
    "facets": [
      {
        "field": "tags_colour",
        "label": "Colour",
        "values": [
          {
            "count": 36,
            "value": "black"
          }
        ]
      }
    ],
    "results": [
      {
        "id": "8222791204953",
        "url": "/products/phillipa-shirt-dress-eira-midnight",
        "msrp": "0",
        "name": "Phillipa Shirt Dress",
        "tags": "available, badge_New Arrivals, Dress, Silk",
        "price": "490",
        "handle": "phillipa-shirt-dress-eira-midnight",
        "available": true,
        "image_url": "https://cdn.shopify.com/s/files/1/0037/8925/8841/files/S96-SIR226-1037_PHILLIPA_SHIRT_DRESS_EIRA_MIDNIGHT-25905-Sir_The_Label-D2-0442_1080x.jpg?v=1779181927",
        "variant_color": "Eira Midnight",
        "collection_handle": [
          "dresses",
          "new-arrivals",
          "silk-dresses"
        ]
      }
    ],
    "pagination": {
      "per_page": 5,
      "total_pages": 40,
      "current_page": 1,
      "total_results": 196
    }
  }
}

About the Sirthelabel API

Product Search and Catalog

The search_products endpoint accepts a required query string (e.g. 'silk top', 'midi skirt') alongside optional parameters for sort_field (choose from relevance, ss_days_since_published, ga_unique_purchases, or ss_price), sort_direction, page, and results_per_page. Each result in the results array includes id, handle, name, price, url, image_url, variant_color, available, tags, and collection_handle. The facets array breaks down filterable dimensions with per-value counts, and the pagination object reports total_results, current_page, total_pages, and per_page.

Product Detail

get_product takes a handle string — the URL slug returned in search_products results — and returns the full product record. Response fields include title, description, images, options (name and values arrays), variants (each with id, sku, title, available_for_sale, quantity_available, price, currency, and compare_at_price), price_range (min/max with currency), and featured_image with src, width, height, and altText. This is sufficient to render a complete product page with size/color selectors and stock status.

Loyalty Program and Policy Pages

get_loyalty_program returns the public configuration of SIR.'s loyalty scheme: tiers (each with id, name, position, and point bounds), earning_rules (with kind, value, title, and enabled status), referral_incentive details, and settings covering point expiry behavior and birthday collection. An optional country parameter localizes the currency info. The get_page endpoint retrieves help and policy content by handle — known slugs include shipping-delivery, privacy-policy, terms-conditions, and contact-us — returning title, body_html, and a body_summary plain-text excerpt.

Reliability & maintenance

The Sirthelabel API is a managed, monitored endpoint for sirthelabel.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sirthelabel.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 sirthelabel.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?+
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 product feed for SIR. The Label items filtered by collection or color variant using search_products facets.
  • Display real-time stock and size availability by fetching quantity_available per variant from get_product.
  • Compare sale pricing by reading compare_at_price against price across returned variants.
  • Render loyalty tier thresholds and point-earning rules in a customer-facing rewards explainer using get_loyalty_program.
  • Pull structured shipping and returns policy text via get_page with the shipping-delivery or terms-conditions handle.
  • Monitor new arrivals by sorting search_products results by ss_days_since_published descending.
  • Build a referral program summary widget using the referral_incentive fields from get_loyalty_program.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does SIR. The Label have an official public developer API?+
No. SIR. The Label does not publish a public developer API or documented data access program for third-party developers.
What does `search_products` return beyond basic product names and prices?+
Each result includes variant_color, available status, tags, collection_handle, and an image_url, alongside the handle needed to fetch full details. The facets array provides field-level breakdowns with value counts you can use to build filter UIs without a separate facet query.
Does `get_product` include sold-out variant information, or only available variants?+
The variants array includes all variants regardless of availability. Each variant carries an available_for_sale boolean and a quantity_available integer, so sold-out sizes and colors are present in the response and can be identified programmatically.
Are customer reviews or order history accessible through this API?+
Not currently. The API covers product catalog data, loyalty program configuration, and public policy pages. Order history and customer reviews are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting those data sources.
Does the API cover the Australian storefront or only the US site?+
The API targets the US storefront (us.sirthelabel.com). The get_loyalty_program endpoint accepts a country parameter for currency localization, but product data and pagination reflect the US regional catalog. Coverage of the AU storefront is not currently included. You can fork the API on Parse and revise it to point at the AU domain.
Page content last updated . Spec covers 4 endpoints from sirthelabel.com.
Related APIs in EcommerceSee all →
walmart.com API
Retrieve product data from Walmart.com including pricing, descriptions, availability, reviews, and category listings. Access real-time product information to search by keyword, look up items by ID or URL, and browse department categories.
homedepot.com API
Search and browse Home Depot's product catalog to compare pricing, check real-time availability, and review detailed product specifications. Find products across all categories, look up store locations and hours, and check fulfillment options including in-store pickup and delivery.
ikea.com API
Search and browse IKEA's full product catalog to find items by category, compare measurements, read customer reviews, and check real-time store availability and current deals. Discover new arrivals and best-selling products to help you shop smarter and find exactly what you need.
amazon.co.uk API
Access data from amazon.co.uk.
idealo.de API
Search for products on Idealo.de and retrieve detailed information including current seller offers, price history, technical specifications, and user and expert reviews. Compare prices across sellers and access comprehensive product data to evaluate deals.
target.com API
Search for products across Target's catalog and instantly check real-time in-store availability at nearby Target locations using your zipcode. Find exactly what you're looking for and discover which stores have it in stock, so you can shop smarter and faster.
amazon.fr API
Scrape product data from Amazon.fr, including search results, product details, specifications, seller offers, customer reviews, and current deals.
element14.com API
Search and browse Newark (element14)'s electronic components catalog to find product details, pricing, stock levels, and technical documentation. Retrieve specifications, explore categories and manufacturers, and access real-time inventory information to compare components.