{"openapi":"3.1.0","info":{"title":"FusionWW Public Content API","summary":"Official public API for Fusion Worldwide's electronic component catalog","description":"Official public REST API provided by Fusion Worldwide (https://www.fusionww.com), a global distributor of electronic components. Provides programmatic access to 700,000+ products, full-text search, manufacturer and category browsing, marketing content, and blog posts.\n\n**No authentication required.** This API is free and open for use by developers, AI agents, LLM tools, and partner integrations.\n\n- **Website**: https://www.fusionww.com\n- **LLM Guide**: https://api.fusionww.com/llms.txt\n- **Contact**: contact@fusionww.com\n","termsOfService":"https://www.fusionww.com/terms","contact":{"name":"Fusion Worldwide","url":"https://www.fusionww.com/","email":"contact@fusionww.com"},"license":{"name":"Public Access — No Authentication Required"},"version":"1.0.0"},"servers":[{"url":"https://api.fusionww.com","description":"Production"}],"paths":{"/":{"get":{"tags":["Meta"],"summary":"API info","description":"Root endpoint with API info and useful links.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1":{"get":{"tags":["Meta"],"summary":"API v1 index","description":"Version 1 API index — lists all available endpoints.","operationId":"v1_index_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["Meta"],"summary":"Health check","description":"Check connectivity to Redis and Algolia.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/meta/stats":{"get":{"tags":["Meta"],"summary":"Catalog statistics","description":"Return catalog statistics — product count and last sync time.","operationId":"stats_v1_meta_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/meta/sync-health":{"get":{"tags":["Meta"],"summary":"Sync job health","description":"Last-run status of every Redis-populating sync job (ECM-4012).\n\nEach job records {status, lastRunAt, durationMs, error} at sync:health:{job}\nvia jobs/sync_health.py. A job is flagged stale when its last run is older\nthan its schedule allows (SYNC_JOB_MAX_AGE_SECONDS) — including the\n\"never ran / record missing\" case. Consumed by the admin portal dashboard\nand intended as the probe target for an alert rule (see alerting.md).\n\nSECURITY (PR #3258 review): this API is public/unauthenticated, so the raw\n`error` string is NEVER returned — exception text from job failures can\nembed internal detail (SQL host/statement, upstream URLs). Anonymous\ncallers get `hasError: true`; the full error stays in the worker logs\n(already emitted by jobs/sync_health._record).","operationId":"sync_job_health_v1_meta_sync_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/meta/attribute-stats":{"get":{"tags":["Meta"],"summary":"Product attribute statistics","description":"Return all product attribute names with the number of products that have each attribute.","operationId":"attribute_stats_v1_meta_attribute_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"tags":["Meta"],"summary":"LLM-friendly API description","description":"Return a plain-text description of the API for LLM consumption.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/catalog/categories":{"get":{"tags":["Catalog"],"summary":"List all categories (tree)","description":"Return the full category tree with product counts.","operationId":"list_categories_v1_catalog_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/catalog/categories/{category_id}":{"get":{"tags":["Catalog"],"summary":"Get category by ID","description":"Return a single category with breadcrumbs.","operationId":"get_category_v1_catalog_categories__category_id__get","parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/categories/{category_id}/products":{"get":{"tags":["Catalog"],"summary":"List products in category","description":"Return paginated products for a category.","operationId":"list_category_products_v1_catalog_categories__category_id__products_get","parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/manufacturers":{"get":{"tags":["Catalog"],"summary":"List all manufacturers","description":"Return all manufacturers sorted alphabetically.","operationId":"list_manufacturers_v1_catalog_manufacturers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/catalog/manufacturers/{manufacturer_id}":{"get":{"tags":["Catalog"],"summary":"Get manufacturer by ID","description":"Return a single manufacturer.","operationId":"get_manufacturer_v1_catalog_manufacturers__manufacturer_id__get","parameters":[{"name":"manufacturer_id","in":"path","required":true,"schema":{"type":"integer","title":"Manufacturer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/manufacturers/{manufacturer_id}/products":{"get":{"tags":["Catalog"],"summary":"List products by manufacturer","description":"Return paginated products for a manufacturer.","operationId":"list_manufacturer_products_v1_catalog_manufacturers__manufacturer_id__products_get","parameters":[{"name":"manufacturer_id","in":"path","required":true,"schema":{"type":"integer","title":"Manufacturer Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/products/id/{product_id}":{"get":{"tags":["Catalog"],"summary":"Get product by internal ID","description":"Return a single product by internal ID.","operationId":"get_product_by_id_v1_catalog_products_id__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/products/mpn/{mpn}/active":{"get":{"tags":["Catalog"],"summary":"Get active product by MPN","description":"Return an active product (ProductStatus=1) matching the given MPN.\n\nUsed to find an active equivalent for dropped products (ECM-2778).\nReturns 404 if no active product with this MPN exists.","operationId":"get_active_product_by_mpn_v1_catalog_products_mpn__mpn__active_get","parameters":[{"name":"mpn","in":"path","required":true,"schema":{"type":"string","title":"Mpn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/products/{mpn}":{"get":{"tags":["Catalog"],"summary":"Get product by MPN","description":"Return a single product by manufacturer part number.\n\n`{mpn:path}` so MPNs containing slashes (common) resolve correctly.","operationId":"get_product_by_mpn_v1_catalog_products__mpn__get","parameters":[{"name":"mpn","in":"path","required":true,"schema":{"type":"string","title":"Mpn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/search":{"get":{"tags":["Search"],"summary":"Search products","description":"Full-text product search powered by Algolia.\n\nReturns paginated results with relevance ranking and typo tolerance.\nPass analytics=false for health checks and test queries to exclude from analytics.","operationId":"search_v1_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Search query","default":"","title":"Q"},"description":"Search query"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category name","title":"Category"},"description":"Filter by category name"},{"name":"manufacturer","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by manufacturer name","title":"Manufacturer"},"description":"Filter by manufacturer name"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Per Page"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order","title":"Sort"},"description":"Sort order"},{"name":"analytics","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to count this search in Algolia analytics","default":true,"title":"Analytics"},"description":"Whether to count this search in Algolia analytics"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/search/popular":{"get":{"tags":["Search"],"summary":"Popular searches and categories","description":"Return the most popular search terms and product categories\nbased on Algolia Analytics (last 7 days).\n\nData is populated by the admin portal's hourly cron job (POST to this endpoint).\nFalls back to curated defaults if no data has been pushed yet.","operationId":"popular_searches_v1_search_popular_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["Search"],"summary":"Update popular searches (admin cron)","description":"Accept pre-computed popular searches data from the admin portal cron job.\nStores in Redis for fast reads. No auth required — internal ingress only.","operationId":"update_popular_searches_v1_search_popular_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/search/suggest":{"get":{"tags":["Search"],"summary":"Search suggestions","description":"Return autocomplete suggestions for a search prefix.","operationId":"suggest_v1_search_suggest_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Prefix query for autocomplete","default":"","title":"Q"},"description":"Prefix query for autocomplete"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/navigation":{"get":{"tags":["Content"],"summary":"Site navigation tree","description":"Return the full site navigation tree assembled from content pages.","operationId":"navigation_v1_content_navigation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/homepage":{"get":{"tags":["Content"],"summary":"Homepage content","description":"Return the homepage sections and configuration.","operationId":"homepage_v1_content_homepage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/pages":{"get":{"tags":["Content"],"summary":"List page types","description":"Return all available page types.","operationId":"list_page_types_v1_content_pages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/pages/{page_type}":{"get":{"tags":["Content"],"summary":"List pages by type","description":"Return all page slugs for a given page type.","operationId":"list_pages_v1_content_pages__page_type__get","parameters":[{"name":"page_type","in":"path","required":true,"schema":{"type":"string","title":"Page Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/pages/{page_type}/{slug}":{"get":{"tags":["Content"],"summary":"Get page by type and slug","description":"Return a single content page with sections.","operationId":"get_page_v1_content_pages__page_type___slug__get","parameters":[{"name":"page_type","in":"path","required":true,"schema":{"type":"string","title":"Page Type"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/pages/{page_type}/{slug}/{level2_slug}":{"get":{"tags":["Content"],"summary":"Get level-2 page","description":"Return a level-2 content page (e.g. quality/process → quality/testing).","operationId":"get_level2_page_v1_content_pages__page_type___slug___level2_slug__get","parameters":[{"name":"page_type","in":"path","required":true,"schema":{"type":"string","title":"Page Type"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"level2_slug","in":"path","required":true,"schema":{"type":"string","title":"Level2 Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/categories/{category_id}/seo":{"get":{"tags":["Content"],"summary":"Category SEO content","description":"Return SEO content (eyebrow, title, description, sections) for a category.","operationId":"get_category_seo_v1_content_categories__category_id__seo_get","parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"integer","title":"Category Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/industries":{"get":{"tags":["Content"],"summary":"List all industries","description":"Return all industry pages.","operationId":"list_industries_v1_content_industries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/industries/{slug}":{"get":{"tags":["Content"],"summary":"Get industry page","description":"Return a single industry page with sections.","operationId":"get_industry_v1_content_industries__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/services":{"get":{"tags":["Content"],"summary":"List all services","description":"Return all service pages.","operationId":"list_services_v1_content_services_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/services/{slug}":{"get":{"tags":["Content"],"summary":"Get service page","description":"Return a single service page with sections.","operationId":"get_service_v1_content_services__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/announcements":{"get":{"tags":["Content"],"summary":"Active announcements","description":"Return the current site announcements.","operationId":"announcements_v1_content_announcements_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/site-config":{"get":{"tags":["Content"],"summary":"Site configuration","description":"Return site-wide configuration (phone, email, social links, etc.).","operationId":"site_config_v1_content_site_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/blog":{"get":{"tags":["Content"],"summary":"List blog posts","description":"Return paginated blog posts (newest first).\n\nWhen `tag` is omitted, returns only public posts (Market Intelligence,\nCompany News, Press Release). When `tag` is provided, filters to that\nspecific tag ID. Use `exclude_tags` to remove posts matching additional\ntag IDs from the results. Use `additional_tag` to further narrow results\nto posts that also have a secondary tag. Use `search` to filter by\ncase-insensitive substring match on title or summary. Use `ids` to\nreturn only posts matching specific article IDs (ignores tag filters when set).\n\nECM-2771 server-side filters for the Industry Insider rail:\n`status`, `commodity`, `content_type` are repeatable. Within a group\nthe match is OR (any of the supplied values); across groups it is\nAND (a post must satisfy every supplied group). All three accept\nthe prefix-stripped tag names (e.g. `Stable`, `GPUs`) — same\nvalues returned by `/v1/content/blog/status-tags` and\n`/v1/content/blog/commodity-tags`.","operationId":"list_blog_posts_v1_content_blog_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Per Page"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by HubSpot tag ID","title":"Tag"},"description":"Filter by HubSpot tag ID"},{"name":"exclude_tags","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer"},"description":"Exclude posts with these tag IDs","default":[],"title":"Exclude Tags"},"description":"Exclude posts with these tag IDs"},{"name":"additional_tag","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Secondary tag filter (post must also have this tag)","title":"Additional Tag"},"description":"Secondary tag filter (post must also have this tag)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Search posts by title or summary","title":"Search"},"description":"Search posts by title or summary"},{"name":"ids","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":200,"description":"Filter to specific article IDs (for favorites)","default":[],"title":"Ids"},"description":"Filter to specific article IDs (for favorites)"},{"name":"status","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Match any of these Status tag names (ECM-2771)","default":[],"title":"Status"},"description":"Match any of these Status tag names (ECM-2771)"},{"name":"commodity","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":30,"description":"Match any of these Insider Commodity tag names (ECM-2771)","default":[],"title":"Commodity"},"description":"Match any of these Insider Commodity tag names (ECM-2771)"},{"name":"content_type","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Match any of these content types: video | audio | image | ticker-update (ECM-2771)","default":[],"title":"Content Type"},"description":"Match any of these content types: video | audio | image | ticker-update (ECM-2771)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/blog/tags":{"get":{"tags":["Content"],"summary":"List topic tags","description":"Return topic category tags for the insights filter bar.\n\nTags are synced from HubSpot during the blog sync job. Only tags with\nthe 'Topic:' prefix are included, with the prefix stripped from the name.","operationId":"list_topic_tags_v1_content_blog_tags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/blog/status-tags":{"get":{"tags":["Content"],"summary":"List status tags (ECM-2771)","description":"Return status tags for the Industry Insider filter rail.\n\nTags are synced from HubSpot during the blog sync job. Only tags with\nthe 'Status:' prefix are included (e.g. 'Status: Stable',\n'Status: Critical'), with the prefix stripped from the name.","operationId":"list_status_tags_v1_content_blog_status_tags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/blog/commodity-tags":{"get":{"tags":["Content"],"summary":"List insider commodity tags (ECM-2771)","description":"Return insider commodity tags for the Industry Insider page.\n\nDrives the 'Commodity' filter group + per-card chips. Tags are synced\nfrom HubSpot during the blog sync job. Only tags with the 'Insider\nCommodity:' prefix are included, with the prefix stripped from the\nname. Distinct from the 'Topic:' family used by the regular Insights\npage.","operationId":"list_commodity_tags_v1_content_blog_commodity_tags_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/content/blog/{slug}":{"get":{"tags":["Content"],"summary":"Get blog post","description":"Return a single blog post with full HTML content.","operationId":"get_blog_post_v1_content_blog__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"full_content","in":"query","required":false,"schema":{"type":"boolean","description":"Return full HTML content even for gated posts (for SSG build)","default":false,"title":"Full Content"},"description":"Return full HTML content even for gated posts (for SSG build)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/content/pro-offers/{list_guid}":{"get":{"tags":["Pro-Offers"],"summary":"Pro-Offer landing page data","description":"Return a pro-offer list with live offer data.\n\nReturns the list payload for Published lists (or any status with a valid\npreview token). Returns a redirect hint for Archived lists. 404s for\nDraft, Approved (without preview token), soft-deleted, or missing.","operationId":"get_pro_offer_list_v1_content_pro_offers__list_guid__get","parameters":[{"name":"list_guid","in":"path","required":true,"schema":{"type":"string","description":"ProOfferLists.ProOfferListGuid (UUID)","title":"List Guid"},"description":"ProOfferLists.ProOfferListGuid (UUID)"},{"name":"preview","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional signed JWT minted by the admin portal. When valid, bypasses the Status=2 gate so Ops can preview Draft, Approved, Published, or Archived lists in the same template the public landing page uses.","title":"Preview"},"description":"Optional signed JWT minted by the admin portal. When valid, bypasses the Status=2 gate so Ops can preview Draft, Approved, Published, or Archived lists in the same template the public landing page uses."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/products":{"get":{"tags":["Partner"],"summary":"List products with pricing","description":"Return paginated products with pricing data.","operationId":"list_products_v1_partner_products_get","security":[{"BearerAuth":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"perPage","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Perpage"}},{"name":"manufacturer","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by manufacturer name","title":"Manufacturer"},"description":"Filter by manufacturer name"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category name","title":"Category"},"description":"Filter by category name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/products/{mpn}":{"get":{"tags":["Partner"],"summary":"Get product by MPN with pricing","description":"Return a single product with pricing by manufacturer part number.\n\n`{mpn:path}` so MPNs containing slashes (common) resolve correctly.","operationId":"get_product_v1_partner_products__mpn__get","security":[{"BearerAuth":[]}],"parameters":[{"name":"mpn","in":"path","required":true,"schema":{"type":"string","title":"Mpn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/search":{"get":{"tags":["Partner"],"summary":"Search products with pricing","description":"Full-text product search with pricing data, powered by Algolia.","operationId":"search_v1_partner_search_get","security":[{"BearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Search query","default":"","title":"Q"},"description":"Search query"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category name","title":"Category"},"description":"Filter by category name"},{"name":"manufacturer","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by manufacturer name","title":"Manufacturer"},"description":"Filter by manufacturer name"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"perPage","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Perpage"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/inventory/{mpn}":{"get":{"tags":["Partner"],"summary":"Get inventory for a single MPN","description":"Return inventory availability for a single product.\n\n`{mpn:path}` so MPNs containing slashes (common) resolve correctly.","operationId":"get_inventory_v1_partner_inventory__mpn__get","security":[{"BearerAuth":[]}],"parameters":[{"name":"mpn","in":"path","required":true,"schema":{"type":"string","title":"Mpn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/inventory/batch":{"post":{"tags":["Partner"],"summary":"Batch inventory lookup","description":"Return inventory availability for multiple MPNs.","operationId":"batch_inventory_v1_partner_inventory_batch_post","security":[{"BearerAuth":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"perPage","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Perpage"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_batch_inventory_v1_partner_inventory_batch_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/pricing/{mpn}":{"get":{"tags":["Partner"],"summary":"Get pricing for a single MPN","description":"Return full pricing with tier breaks for a single product.","operationId":"get_pricing_v1_partner_pricing__mpn__get","security":[{"BearerAuth":[]}],"parameters":[{"name":"mpn","in":"path","required":true,"schema":{"type":"string","title":"Mpn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/pricing/batch":{"post":{"tags":["Partner"],"summary":"Batch pricing lookup","description":"Return pricing with tier breaks for multiple MPNs.","operationId":"batch_pricing_v1_partner_pricing_batch_post","security":[{"BearerAuth":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"perPage","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Perpage"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_batch_pricing_v1_partner_pricing_batch_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner/quotes/bom":{"post":{"tags":["Partner"],"summary":"Request a BOM quote","description":"Submit a Bill of Materials for instant pricing.\n\nReturns availability and pricing for each line item based on current\ninventory. Up to 100 line items per request.","operationId":"bom_quote_v1_partner_quotes_bom_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BomQuoteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}},"/v1/partner/rfq":{"post":{"tags":["Partner"],"summary":"Submit an RFQ","description":"Submit a Request for Quote for manual processing by the sales team.\n\nReturns an RFQ tracking ID. Our team will respond within 24 hours.\nUp to 100 line items per request.","operationId":"submit_rfq_v1_partner_rfq_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RfqRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"BearerAuth":[]}]}}},"components":{"schemas":{"Body_batch_inventory_v1_partner_inventory_batch_post":{"properties":{"mpns":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Mpns","description":"List of MPNs to look up inventory for"}},"type":"object","required":["mpns"],"title":"Body_batch_inventory_v1_partner_inventory_batch_post"},"Body_batch_pricing_v1_partner_pricing_batch_post":{"properties":{"mpns":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Mpns","description":"List of MPNs to look up pricing for"}},"type":"object","required":["mpns"],"title":"Body_batch_pricing_v1_partner_pricing_batch_post"},"BomLineItem":{"properties":{"mpn":{"type":"string","title":"Mpn"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity"},"targetPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Targetprice"}},"type":"object","required":["mpn","quantity"],"title":"BomLineItem","description":"A single line item in a BOM quote request."},"BomQuoteRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BomLineItem"},"type":"array","maxItems":100,"minItems":1,"title":"Items"},"currency":{"type":"string","title":"Currency","default":"USD"}},"type":"object","required":["items"],"title":"BomQuoteRequest","description":"Request body for BOM quote."},"CategorySummary":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"ancestors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Ancestors"}},"type":"object","required":["id","name"],"title":"CategorySummary","description":"Compact category reference embedded in product responses."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ManufacturerSummary":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},"type":"object","required":["id","name"],"title":"ManufacturerSummary","description":"Compact manufacturer reference embedded in product responses."},"Product":{"properties":{"@context":{"type":"string","title":"@Context","default":"https://schema.org"},"@type":{"type":"string","title":"@Type","default":"Product"},"productId":{"type":"integer","title":"Productid"},"mpn":{"type":"string","title":"Mpn"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"manufacturer":{"anyOf":[{"$ref":"#/components/schemas/ManufacturerSummary"},{"type":"null"}]},"category":{"anyOf":[{"$ref":"#/components/schemas/CategorySummary"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl"},"alternateMpns":{"items":{"type":"string"},"type":"array","title":"Alternatempns"},"taxonomy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Taxonomy"},"productInfo":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Productinfo"},"countryOfOrigin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Countryoforigin"},"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"},"isActive":{"type":"boolean","title":"Isactive","default":true},"productStatus":{"type":"integer","title":"Productstatus","default":1},"relevance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Relevance"},"quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity"},"leadTimeDays":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Leadtimedays"},"totalAvailableQuantity":{"type":"integer","title":"Totalavailablequantity","default":0},"attributes":{"items":{"$ref":"#/components/schemas/ProductAttribute"},"type":"array","title":"Attributes"},"images":{"items":{"$ref":"#/components/schemas/ProductImage"},"type":"array","title":"Images"},"documents":{"items":{"$ref":"#/components/schemas/ProductDocument"},"type":"array","title":"Documents"},"seoDescription":{"anyOf":[{"$ref":"#/components/schemas/SeoDescription"},{"type":"null"}]},"seoKeyFeatures":{"items":{"type":"string"},"type":"array","title":"Seokeyfeatures"}},"type":"object","required":["productId","mpn","name"],"title":"Product","description":"Full product representation served from Redis."},"ProductAttribute":{"properties":{"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"},"isFilter":{"type":"boolean","title":"Isfilter","default":false},"typeId":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Typeid"},"heroIndex":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Heroindex"},"displayIndex":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Displayindex"},"isHidden":{"type":"boolean","title":"Ishidden","default":false}},"type":"object","required":["name","value"],"title":"ProductAttribute","description":"Product category attribute with metadata."},"ProductDocument":{"properties":{"id":{"type":"integer","title":"Id"},"url":{"type":"string","title":"Url"},"isActive":{"type":"boolean","title":"Isactive","default":true},"createdOn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Createdon"},"updatedOn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updatedon"}},"type":"object","required":["id","url"],"title":"ProductDocument","description":"Product document (datasheet)."},"ProductImage":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"ProductImage","description":"Product image."},"ProductListPagination":{"properties":{"page":{"type":"integer","title":"Page","default":1},"perPage":{"type":"integer","title":"Perpage","default":20},"total":{"type":"integer","title":"Total","default":0},"totalPages":{"type":"integer","title":"Totalpages","default":0}},"type":"object","title":"ProductListPagination","description":"Pagination metadata exactly as emitted (camelCase) by product list routes."},"ProductListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Product"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/ProductListPagination"},"_links":{"additionalProperties":{"type":"string"},"type":"object","title":"Links"}},"type":"object","title":"ProductListResponse","description":"Envelope for /categories/{id}/products and /manufacturers/{id}/products."},"RfqLineItem":{"properties":{"mpn":{"type":"string","title":"Mpn"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity"},"targetPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Targetprice"}},"type":"object","required":["mpn","quantity"],"title":"RfqLineItem","description":"A single line item in an RFQ submission."},"RfqRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RfqLineItem"},"type":"array","maxItems":100,"minItems":1,"title":"Items"},"contactEmail":{"type":"string","title":"Contactemail"},"contactName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contactname"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"currency":{"type":"string","title":"Currency","default":"USD"}},"type":"object","required":["items","contactEmail"],"title":"RfqRequest","description":"Request body for RFQ submission."},"SearchHit":{"properties":{"productId":{"type":"integer","title":"Productid"},"mpn":{"type":"string","title":"Mpn"},"name":{"type":"string","title":"Name"},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl"},"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"}},"type":"object","required":["productId","mpn","name"],"title":"SearchHit","description":"A single search result from Algolia."},"SearchResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SearchHit"},"type":"array","title":"Data","default":[]},"query":{"type":"string","title":"Query","default":""},"page":{"type":"integer","title":"Page","default":1},"per_page":{"type":"integer","title":"Per Page","default":20},"totalHits":{"type":"integer","title":"Totalhits","default":0},"totalPages":{"type":"integer","title":"Totalpages","default":0},"processingTimeMs":{"type":"integer","title":"Processingtimems","default":0}},"type":"object","title":"SearchResponse","description":"Paginated search results."},"SeoDescription":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"keyFeatures":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Keyfeatures"},"h2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"H2"},"applicationData":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Applicationdata"}},"type":"object","title":"SeoDescription","description":"SEO content for a product."},"SuggestResponse":{"properties":{"suggestions":{"items":{"type":"string"},"type":"array","title":"Suggestions","default":[]},"query":{"type":"string","title":"Query","default":""}},"type":"object","title":"SuggestResponse","description":"Autocomplete / query suggestion results."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"BearerAuth":{"type":"http","description":"API key issued by FusionWW. Pass as: Authorization: Bearer <api_key>","scheme":"bearer"}}}}