{"openapi":"3.1.0","jsonSchemaDialect":"http://json-schema.org/draft-07/schema#","info":{"title":"Energy Machines public catalogue","version":"1.0.0","description":"Published engineering catalogue. Inquiry-led: no prices, ordering, authentication or writes. Confirm design-point performance with Energy Machines.","termsOfService":"https://heatpumps.energymachines.com/developers#terms"},"servers":[{"url":"https://heatpumps.energymachines.com/api/public/v1"}],"security":[],"paths":{"/families":{"get":{"operationId":"list_product_families","summary":"List public families containing published products. Use their stable slugs in the family filter.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/list_product_families"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/products":{"get":{"operationId":"search_products","summary":"Search published products. Numeric filters use canonical kW and degrees C. Follow next_offset; confirm design-point performance with the manufacturer.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"description":"Zero-based offset; follow next_offset until null to retrieve all results."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":25,"description":"Page size, subject to the server's configurable MCP_MAX_PAGE_SIZE."}},{"name":"family","in":"query","required":false,"schema":{"type":"string","description":"Exact family slug from list_product_families."}},{"name":"application","in":"query","required":false,"schema":{"type":"string","description":"Exact application token from catalogue overview filter_options."}},{"name":"use_case","in":"query","required":false,"schema":{"type":"string","description":"Exact use_case token from catalogue overview filter_options."}},{"name":"refrigerant","in":"query","required":false,"schema":{"type":"string","description":"Exact refrigerant token, e.g. R290; case insensitive."}},{"name":"compressor_type","in":"query","required":false,"schema":{"type":"string","description":"Exact compressor_type token from catalogue overview."}},{"name":"min_heating_capacity_kw","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Minimum nominal heating capacity in canonical kW; nominal figures are not design-point guarantees."}},{"name":"max_heating_capacity_kw","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Maximum nominal heating capacity in canonical kW."}},{"name":"min_supply_temp_c","in":"query","required":false,"schema":{"type":"number","description":"Required minimum maximum condenser outlet/supply temperature, degrees C. Selects products whose upper limit is at least this value."}},{"name":"min_source_temp_c","in":"query","required":false,"schema":{"type":"number","description":"Lowest available source/inlet temperature at your site, degrees C. Selects products whose lowest permitted inlet is <= this value. This does not guarantee simultaneous maximum supply temperature."}},{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Case-insensitive free text across published names, descriptions, slugs, family names and attribute values; all words must match."}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/search_products"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/products/{slug}":{"get":{"operationId":"get_product","summary":"Read a published product, flexible specifications, public media and documents. Missing values are unknown, never zero.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"description":"Stable product slug returned by search_products; not a display name."}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/get_product"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/products/compare":{"get":{"operationId":"compare_products","summary":"Compare the union of specification keys across published products; missing values are null.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"slugs","in":"query","required":true,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","minLength":1,"description":"Stable product slug returned by search_products; not a display name."},"minItems":1,"maxItems":20}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/compare_products"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/documents":{"get":{"operationId":"list_documents","summary":"List public documents linked to published products; never the asset library or internal paths.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"description":"Zero-based offset; follow next_offset until null to retrieve all results."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":25,"description":"Page size, subject to the server's configurable MCP_MAX_PAGE_SIZE."}},{"name":"product_slug","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Stable product slug returned by search_products; not a display name."}},{"name":"doc_type","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/list_documents"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/documents/{document_id}":{"get":{"operationId":"get_document_url","summary":"Resolve a document still linked to a published product. Does not download its contents.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/get_document_url"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/cases":{"get":{"operationId":"list_cases","summary":"List published installation case studies with canonical URLs and public product reference text.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"description":"Zero-based offset; follow next_offset until null to retrieve all results."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":25,"description":"Page size, subject to the server's configurable MCP_MAX_PAGE_SIZE."}},{"name":"query","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/list_cases"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/cases/{slug}":{"get":{"operationId":"get_case","summary":"Read a published installation case, public media and converted flexible specifications.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/get_case"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/company":{"get":{"operationId":"get_company_info","summary":"Read only known public company, technology, history and contact sections.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/get_company_info"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"/inquiry":{"get":{"operationId":"how_to_inquire","summary":"Explain human-reviewed inquiry preparation. No drafts, email sending or submissions are performed.","parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Locale code from the catalogue overview resource (Locale table). Omit for the default locale; missing translations use the site's fallback."}},{"name":"measurement_system","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"MeasurementSystem code from the catalogue overview resource, e.g. metric or imperial when configured. Omit for the first configured system. Numeric filter inputs always use kW and degrees C."}},{"name":"product_slug","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Stable product slug returned by search_products; not a display name."}}],"responses":{"200":{"description":"Same JSON value as the MCP structuredContent.result.","headers":{"ETag":{"schema":{"type":"string"}},"Cache-Control":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/how_to_inquire"}}}},"304":{"description":"Representation matches If-None-Match."},"400":{"description":"Invalid parameters (Zod summary in issues).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"404":{"description":"Published entity not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"429":{"description":"Rate limit exceeded; Retry-After gives seconds.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"500":{"description":"Catalogue temporarily unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}}},"components":{"schemas":{"list_product_families":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"url":{"type":"string","format":"uri"},"catalogue_url":{"type":"string","format":"uri"}},"required":["slug","name","description","url","catalogue_url"],"additionalProperties":false}},"search_products":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"family":{"type":["string","null"]},"family_name":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/family"},"locale":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/family"},"url":{"type":"string","format":"uri"},"refrigerant":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/family"},"compressor_type":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/family"},"specifications":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/specifications/items/properties/value"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/specifications/items/properties/value"}}]},"unit":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/family"},"quantity_type":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/family"},"canonical_value":{"type":"number"},"canonical_unit":{"$ref":"#/components/schemas/search_products/properties/items/items/properties/family"},"conversion_available":{"type":"boolean"}},"required":["key","value","unit","quantity_type"],"additionalProperties":false}}},"required":["slug","name","family","family_name","locale","url","refrigerant","compressor_type","specifications"],"additionalProperties":false}},"total":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"next_offset":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"measurement_system":{"type":"string"},"note":{"type":"string"}},"required":["items","total","offset","next_offset","measurement_system","note"],"additionalProperties":false},"get_product":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"family":{"type":["string","null"]},"family_name":{"$ref":"#/components/schemas/get_product/properties/family"},"locale":{"$ref":"#/components/schemas/get_product/properties/family"},"url":{"type":"string","format":"uri"},"refrigerant":{"$ref":"#/components/schemas/get_product/properties/family"},"compressor_type":{"$ref":"#/components/schemas/get_product/properties/family"},"specifications":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/get_product/properties/specifications/items/properties/value"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/get_product/properties/specifications/items/properties/value"}}]},"unit":{"$ref":"#/components/schemas/get_product/properties/family"},"quantity_type":{"$ref":"#/components/schemas/get_product/properties/family"},"canonical_value":{"type":"number"},"canonical_unit":{"$ref":"#/components/schemas/get_product/properties/family"},"conversion_available":{"type":"boolean"}},"required":["key","value","unit","quantity_type"],"additionalProperties":false}},"excerpt":{"$ref":"#/components/schemas/get_product/properties/family"},"body":{"$ref":"#/components/schemas/get_product/properties/family"},"measurement_system":{"type":"string"},"media":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"role":{"$ref":"#/components/schemas/get_product/properties/family"}},"required":["url","alt","role"],"additionalProperties":false}},"shared_content":{"type":"object","properties":{"software":{"type":"string"},"supplementary":{"type":"string"}},"required":["software","supplementary"],"additionalProperties":false},"documents":{"type":"array","items":{"type":"object","properties":{"document_id":{"type":"string"},"product_slug":{"type":"string"},"product_name":{"type":"string"},"label":{"type":"string"},"doc_type":{"$ref":"#/components/schemas/get_product/properties/family"},"mime_type":{"$ref":"#/components/schemas/get_product/properties/family"},"url":{"type":"string","format":"uri"}},"required":["document_id","product_slug","product_name","label","doc_type","mime_type","url"],"additionalProperties":false}},"note":{"type":"string"}},"required":["slug","name","family","family_name","locale","url","refrigerant","compressor_type","specifications","excerpt","body","measurement_system","media","shared_content","documents","note"],"additionalProperties":false},"compare_products":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["slug","name","url"],"additionalProperties":false}},"rows":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"values":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"specification":{"anyOf":[{"type":"object","properties":{"key":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/compare_products/properties/rows/items/properties/values/items/properties/specification/anyOf/0/properties/value"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/compare_products/properties/rows/items/properties/values/items/properties/specification/anyOf/0/properties/value"}}]},"unit":{"type":["string","null"]},"quantity_type":{"$ref":"#/components/schemas/compare_products/properties/rows/items/properties/values/items/properties/specification/anyOf/0/properties/unit"},"canonical_value":{"type":"number"},"canonical_unit":{"$ref":"#/components/schemas/compare_products/properties/rows/items/properties/values/items/properties/specification/anyOf/0/properties/unit"},"conversion_available":{"type":"boolean"}},"required":["key","value","unit","quantity_type"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","specification"],"additionalProperties":false}}},"required":["key","values"],"additionalProperties":false}},"note":{"type":"string"}},"required":["products","rows","note"],"additionalProperties":false},"list_documents":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"document_id":{"type":"string"},"product_slug":{"type":"string"},"product_name":{"type":"string"},"label":{"type":"string"},"doc_type":{"type":["string","null"]},"mime_type":{"$ref":"#/components/schemas/list_documents/properties/items/items/properties/doc_type"},"url":{"type":"string","format":"uri"}},"required":["document_id","product_slug","product_name","label","doc_type","mime_type","url"],"additionalProperties":false}},"total":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"next_offset":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["items","total","offset","next_offset"],"additionalProperties":false},"get_document_url":{"type":"object","properties":{"document_id":{"type":"string"},"product_slug":{"type":"string"},"label":{"type":"string"},"doc_type":{"type":["string","null"]},"url":{"type":"string","format":"uri"}},"required":["document_id","product_slug","label","doc_type","url"],"additionalProperties":false},"list_cases":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"place":{"type":["string","null"]},"summary":{"$ref":"#/components/schemas/list_cases/properties/items/items/properties/place"},"used_products":{"$ref":"#/components/schemas/list_cases/properties/items/items/properties/place"},"locale":{"$ref":"#/components/schemas/list_cases/properties/items/items/properties/place"},"url":{"type":"string","format":"uri"}},"required":["slug","title","place","summary","used_products","locale","url"],"additionalProperties":false}},"total":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"next_offset":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["items","total","offset","next_offset"],"additionalProperties":false},"get_case":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"place":{"type":["string","null"]},"summary":{"$ref":"#/components/schemas/get_case/properties/place"},"used_products":{"$ref":"#/components/schemas/get_case/properties/place"},"locale":{"$ref":"#/components/schemas/get_case/properties/place"},"url":{"type":"string","format":"uri"},"body":{"$ref":"#/components/schemas/get_case/properties/place"},"external_url":{"$ref":"#/components/schemas/get_case/properties/place"},"measurement_system":{"type":"string"},"specifications":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/get_case/properties/specifications/items/properties/value"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/get_case/properties/specifications/items/properties/value"}}]},"unit":{"$ref":"#/components/schemas/get_case/properties/place"},"quantity_type":{"$ref":"#/components/schemas/get_case/properties/place"},"canonical_value":{"type":"number"},"canonical_unit":{"$ref":"#/components/schemas/get_case/properties/place"},"conversion_available":{"type":"boolean"}},"required":["key","value","unit","quantity_type"],"additionalProperties":false}},"media":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"}},"required":["url","alt"],"additionalProperties":false}}},"required":["slug","title","place","summary","used_products","locale","url","body","external_url","measurement_system","specifications","media"],"additionalProperties":false},"get_company_info":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"links":{"type":"array","items":{"type":"string"}},"about_url":{"type":"string","format":"uri"},"homepage_url":{"type":"string","format":"uri"},"locale":{"type":"string"},"sections":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"}},"required":["title","body"],"additionalProperties":false}}},"required":["name","email","links","about_url","homepage_url","locale","sections"],"additionalProperties":false},"how_to_inquire":{"type":"object","properties":{"product_url":{"type":["string","null"]},"catalogue_url":{"type":"string","format":"uri"},"contact_url":{"type":"string","format":"uri"},"email":{"type":"string","format":"email"},"steps":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}},"required":["product_url","catalogue_url","contact_url","email","steps","note"],"additionalProperties":false}}}}