Discover/JYSK API
live

JYSK APIjysk.ca

Access JYSK.ca product data via API: search, category browsing, full specs, dimensional data, store stock availability, and category tree.

Endpoint health
verified 3d ago
get_category_products
search_products
get_product_details
get_product_dimensional_data
get_store_availability
6/6 passing latest checkself-healing
Endpoints
6
Updated
26d ago

What is the JYSK API?

The JYSK.ca API gives developers structured access to JYSK Canada's furniture and home goods catalog through 6 endpoints. Use search_products to query the catalog by keyword and retrieve product names, SKUs, URLs, and prices. Other endpoints cover category browsing, full product specifications, dimensional and packaging data, per-store stock levels, and the complete site category hierarchy.

Try it
Page number for pagination.
Search keyword (e.g. 'sofa', 'mattress', 'desk').
api.parse.bot/scraper/aa42b5e3-604d-44d1-bc2e-d8c2601d7b8b/<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/aa42b5e3-604d-44d1-bc2e-d8c2601d7b8b/search_products?page=1&query=sofa' \
  -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 jysk-ca-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: JYSK.ca SDK — search, browse categories, get details and availability."""
from parse_apis.jysk_ca_e_commerce_api import Jysk, ProductNotFound

client = Jysk()

# Search for sofas — limit caps total items fetched across all pages.
for product in client.products.search(query="sofa", limit=5):
    print(product.name, product.price, product.sku)

# Drill into one product's full details and dimensions.
product = client.products.search(query="mattress", limit=1).first()
if product:
    detail = product.details()
    print(detail.name, detail.product_id, detail.description[:80])
    for key, val in detail.specifications.items():
        print(f"  {key}: {val}")

    dims = product.dimensions()
    print(dims.measurements, dims.number_of_packages)
    for pkg in dims.package_dimensions_structured:
        print(f"  Package {pkg.package}: {pkg.value}")

# Check store availability for a product.
if product:
    for store in product.availability.list(limit=3):
        print(store.source_id, store.quantity, store.store_pickup_label)

# Browse a category to find products.
for p in client.products.browse_category(category_path="living-room-furniture/sofas-sofa-beds-futons", limit=3):
    print(p.name, p.price, p.url)

# List top-level categories and their subcategories.
cat = client.categories.list(limit=1).first()
if cat:
    print(cat.name, cat.url)
    for sub in cat.subcategories:
        print(f"  {sub.name}: {sub.url}")

# Typed error handling for a non-existent product.
try:
    bad = client.products.search(query="sofa", limit=1).first()
    if bad:
        bad.details()
except ProductNotFound as exc:
    print(f"Product not found: {exc}")

print("exercised: products.search / browse_category / details / dimensions / availability.list / categories.list")
All endpoints · 6 totalmissing one? ·

Search for products on JYSK.ca by keyword. Returns a paginated list of matching products with name, URL, SKU, and price. Pagination via page number; results are ordered by relevance.

Input
ParamTypeDescription
pageintegerPage number for pagination.
queryrequiredstringSearch keyword (e.g. 'sofa', 'mattress', 'desk').
Response
{
  "type": "object",
  "fields": {
    "page": "current page number",
    "products": "array of product objects each containing name, url, sku, and price",
    "total_pages": "total number of pages available"
  },
  "sample": {
    "data": {
      "page": 1,
      "products": [
        {
          "sku": "58217",
          "url": "https://www.jysk.ca/config-damhale-sofa.html",
          "name": "DAMHALE",
          "price": "$699"
        },
        {
          "sku": "52570",
          "url": "https://www.jysk.ca/config-skejby-modular-sofa-parts.html",
          "name": "SKEJBY",
          "price": "$199"
        }
      ],
      "total_pages": 1
    },
    "status": "success"
  }
}

About the JYSK API

Search and Browse

The search_products endpoint accepts a query string (e.g. 'sofa', 'mattress') and returns a paginated list of matching products. Each result includes name, url, sku, and price, along with page and total_pages for cursor navigation. The get_category_products endpoint works the same way but scopes results to a specific category path — paths are derived from URLs returned by get_category_tree (e.g. living-room-furniture/sofas-sofa-beds-futons).

Product Details and Dimensions

get_product_details takes a full product URL and returns structured data: sku, product_id, name, description, specifications (key-value pairs of technical attributes), and a variants array with type, label, ID, and linked products. get_product_dimensional_data targets the same product URL but parses out logistics-relevant fields specifically: measurements, weight, package_weight, package_dimensions, number_of_packages, plus structured arrays (package_weight_structured, package_dimensions_structured) that break multi-package specs into per-package objects. Any field absent from the source product spec returns as null.

Store Availability

get_store_availability accepts a leaf-level product_id — the numeric SKU of a specific variant as returned by search_products or get_category_products — and returns an items array covering all stores. Each item includes sku, quantity, source_id, and store_pickup_label. Note that configurable or parent product IDs will not work; only variant-level SKUs return valid stock data.

Category Tree

get_category_tree requires no inputs and returns the full site navigation hierarchy as a categories array. Each entry includes name, url, and a nested subcategories array, making it straightforward to enumerate all valid paths for use with get_category_products.

Reliability & maintenanceVerified

The JYSK API is a managed, monitored endpoint for jysk.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jysk.ca 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 jysk.ca 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
3d ago
Latest check
6/6 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 price comparison tool tracking JYSK.ca furniture prices by SKU over time
  • Generate a store locator feature showing which nearby locations have a specific product variant in stock using get_store_availability
  • Feed dimensional and package weight data from get_product_dimensional_data into a shipping cost estimator
  • Populate a product catalog or CMS with full specs, descriptions, and variant options from get_product_details
  • Map the full JYSK.ca category hierarchy with get_category_tree to build a structured navigation or sitemap
  • Monitor in-stock quantities across all store locations for inventory trend analysis
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 JYSK Canada offer an official developer API?+
JYSK does not publish a public developer API or documentation for programmatic access to its Canadian catalog. This Parse API provides structured access to that data.
What product ID should I pass to `get_store_availability`, and why does it matter?+
You must pass a leaf-level (variant) product ID — the numeric sku value returned by search_products or get_category_products. Passing a parent or configurable product ID will not return valid store stock data. Each store entry in the response includes sku, quantity, source_id, and store_pickup_label.
Does the API return customer reviews or ratings for products?+
Not currently. The API covers product specifications, descriptions, variants, dimensional data, and store stock levels. You can fork this API on Parse and revise it to add an endpoint that retrieves review and rating data.
Are dimensional fields always populated in `get_product_dimensional_data`?+
No. Fields like weight, measurements, package_weight, and package_dimensions return null when the source product listing does not include that specification. The structured arrays (package_weight_structured, package_dimensions_structured) will be empty in those cases.
Does the API cover JYSK stores outside Canada, such as JYSK.com or European storefronts?+
Not currently. All endpoints are scoped to jysk.ca and reflect Canadian catalog, pricing, and store availability only. You can fork this API on Parse and revise it to target a different JYSK regional domain.
Page content last updated . Spec covers 6 endpoints from jysk.ca.
Related APIs in EcommerceSee all →
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.
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.
jula.fi API
Search and browse products from Jula.fi to find hardware items with detailed information including prices (with and without VAT), stock availability, brand details, and product SKUs. Explore products by category or search for specific items to compare pricing and check real-time stock status.
lowes.com API
Search and browse products from Lowe's, including product listings by category, detailed product information, and pricing. Retrieve comprehensive details on specific items to compare options and make informed purchasing decisions.
elkjop.no API
Search and browse Elkjøp Norway's complete product catalog with live pricing, specifications, and customer reviews, while checking real-time stock availability and delivery options across store locations. Discover weekly deals, outlet products, and recommended accessories to make informed shopping decisions.
hagebau.de API
Browse Hagebau's complete product catalog, search across thousands of items by category and brand, and check real-time store availability for building materials and home improvement products. Access detailed product specifications, filter by brand, and discover what's in stock at your nearest location.
wayfair.com API
Browse and search Wayfair's product catalog. Retrieve product details by SKU or URL, explore daily sales and promotions, browse categories, and filter products by keyword, price, and physical dimensions.
leroymerlin.fr API
Search and browse Leroy Merlin France's complete product catalog to find items by category, view pricing, product details, and compare offerings from Leroy Merlin and their online partners. Access real-time product information including names, IDs, URLs, and seller details to help you discover and evaluate home improvement and DIY products.