Servidor MCP

ComplianceCN — toys, batteries, cosmetics, food contact: CE, GPSR, UN 38.3, CPC/GCC and more

io.github.liamohtee/agentcn
Negocio y operaciones Legal y cumplimiento Público y accesible MCP 2025-11-25

Qué hace este MCP

Assesses EU, UK, US, and Australian product-market compliance, including declarations, labeling, batteries, marketplace documentation, and certification evidence.

check_amazon_compliance_request
Amazon or another marketplace asked for compliance files
Use when Amazon or another marketplace requests compliance files or suspends a listing pending documents. Returns the product/market evidence checklist, evidence held and gaps immediately; no case or follow-up required.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Optional destination-market hints. Omit when product_description names the destination.'}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction.'}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'default': 'zh', 'description': 'Language for seller-facing text. Questions and messages come back in it; en or zh.'}, 'age_group': {'enum': ['under_3', '3_to_13', '14_plus', 'unknown'], 'type': 'string', 'description': 'Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow.'}, 'has_radio': {'type': 'boolean', 'description': 'Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'product_name': {'type': 'string', 'maxLength': 160, 'description': 'Human-readable product or SKU name'}, 'evidence_held': {'type': 'array', 'items': {'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, 'default': [], 'maxItems': 90, 'description': "Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document."}, 'sales_channel': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements.'}, 'verified_only': {'type': 'boolean', 'default': True, 'description': 'Exclude decision rules not checked against primary sources'}, 'eu_destination': {'enum': ['DE', 'other_eu', 'unknown'], 'type': 'string', 'description': 'Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU.'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'applicable_modules': {'type': 'array', 'items': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics.'}, 'product_description': {'type': 'string', 'maxLength': 6000, 'minLength': 10, 'description': 'Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied.'}, 'sells_in_california': {'type': 'boolean', 'description': 'Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements.'}, 'is_childrens_product': {'type': 'boolean', 'description': "Whether the product is marketed as a children's product; keep unknown when not established."}, 'accessible_small_parts': {'type': 'boolean', 'description': 'Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use.'}, 'includes_mains_charger': {'type': 'boolean', 'description': 'Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope.'}, 'evidence_inventory_complete': {'type': 'boolean', 'default': False, 'description': 'True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
check_battery_transport_documents
Forwarder will not take the battery product
Use when a forwarder or carrier queries or refuses a battery shipment. Returns applicable UN 38.3 test-summary requirements, shipping marks and transport evidence gaps for the cell/pack. Answers immediately from declared facts; does not inspect documents.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Optional destination-market hints. Omit when product_description names the destination.'}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction.'}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'default': 'zh', 'description': 'Language for seller-facing text. Questions and messages come back in it; en or zh.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'product_name': {'type': 'string', 'maxLength': 160, 'description': 'Human-readable product or SKU name'}, 'evidence_held': {'type': 'array', 'items': {'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, 'default': [], 'maxItems': 90, 'description': "Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document."}, 'sales_channel': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements.'}, 'verified_only': {'type': 'boolean', 'default': True, 'description': 'Exclude decision rules not checked against primary sources'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'applicable_modules': {'type': 'array', 'items': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics.'}, 'product_description': {'type': 'string', 'maxLength': 6000, 'minLength': 10, 'description': 'Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied.'}, 'includes_mains_charger': {'type': 'boolean', 'description': 'Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope.'}, 'evidence_inventory_complete': {'type': 'boolean', 'default': False, 'description': 'True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing.'}, 'battery_compartment_security': {'enum': ['tool_required', 'two_independent_actions', 'other_secured', 'unsecured', 'unknown'], 'type': 'string', 'description': 'How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
check_eu_declaration_basis
EU declaration basis
Use when a buyer, customs or distributor requests an EU Declaration of Conformity. Returns applicable legislation, standards, evidence gaps and fields needing confirmation immediately. Does not issue or sign a declaration.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Optional destination-market hints. Omit when product_description names the destination.'}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction.'}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'default': 'zh', 'description': 'Language for seller-facing text. Questions and messages come back in it; en or zh.'}, 'age_group': {'enum': ['under_3', '3_to_13', '14_plus', 'unknown'], 'type': 'string', 'description': 'Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow.'}, 'has_radio': {'type': 'boolean', 'description': 'Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'product_name': {'type': 'string', 'maxLength': 160, 'description': 'Human-readable product or SKU name'}, 'evidence_held': {'type': 'array', 'items': {'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, 'default': [], 'maxItems': 90, 'description': "Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document."}, 'sales_channel': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements.'}, 'verified_only': {'type': 'boolean', 'default': True, 'description': 'Exclude decision rules not checked against primary sources'}, 'eu_destination': {'enum': ['DE', 'other_eu', 'unknown'], 'type': 'string', 'description': 'Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU.'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'applicable_modules': {'type': 'array', 'items': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics.'}, 'product_description': {'type': 'string', 'maxLength': 6000, 'minLength': 10, 'description': 'Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied.'}, 'is_childrens_product': {'type': 'boolean', 'description': "Whether the product is marketed as a children's product; keep unknown when not established."}, 'food_contact_material': {'enum': ['plastic', 'metal', 'ceramic_glass', 'paper_board', 'silicone_rubber', 'multi_material', 'unknown'], 'type': 'string', 'description': 'The material that touches food. Migration limits and test methods differ by material.'}, 'includes_mains_charger': {'type': 'boolean', 'description': 'Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope.'}, 'is_electrically_operated': {'type': 'boolean', 'description': 'Whether the toy is electrically operated, including mains-powered or battery-powered operation.'}, 'evidence_inventory_complete': {'type': 'boolean', 'default': False, 'description': 'True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
check_label_and_packaging
Label and packaging review
Use when checking labels, artwork or packaging. Returns destination-market marks, warning language, responsible-entity details and evidence gaps from declared product facts. Answers immediately; does not inspect artwork.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Optional destination-market hints. Omit when product_description names the destination.'}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction.'}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'default': 'zh', 'description': 'Language for seller-facing text. Questions and messages come back in it; en or zh.'}, 'age_group': {'enum': ['under_3', '3_to_13', '14_plus', 'unknown'], 'type': 'string', 'description': 'Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow.'}, 'has_radio': {'type': 'boolean', 'description': 'Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'product_name': {'type': 'string', 'maxLength': 160, 'description': 'Human-readable product or SKU name'}, 'evidence_held': {'type': 'array', 'items': {'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, 'default': [], 'maxItems': 90, 'description': "Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document."}, 'sales_channel': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements.'}, 'verified_only': {'type': 'boolean', 'default': True, 'description': 'Exclude decision rules not checked against primary sources'}, 'eu_destination': {'enum': ['DE', 'other_eu', 'unknown'], 'type': 'string', 'description': 'Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU.'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'applicable_modules': {'type': 'array', 'items': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics.'}, 'product_description': {'type': 'string', 'maxLength': 6000, 'minLength': 10, 'description': 'Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied.'}, 'sells_in_california': {'type': 'boolean', 'description': 'Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements.'}, 'is_childrens_product': {'type': 'boolean', 'description': "Whether the product is marketed as a children's product; keep unknown when not established."}, 'food_contact_material': {'enum': ['plastic', 'metal', 'ceramic_glass', 'paper_board', 'silicone_rubber', 'multi_material', 'unknown'], 'type': 'string', 'description': 'The material that touches food. Migration limits and test methods differ by material.'}, 'accessible_small_parts': {'type': 'boolean', 'description': 'Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use.'}, 'evidence_inventory_complete': {'type': 'boolean', 'default': False, 'description': 'True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing.'}, 'battery_compartment_security': {'enum': ['tool_required', 'two_independent_actions', 'other_secured', 'unsecured', 'unknown'], 'type': 'string', 'description': 'How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
check_us_import_certification
US certification and entry filing
Use when a US importer or broker requests CPC/GCC certification, FCC SDoC or entry-filing data. Returns applicable certificate requirements, supporting evidence and responsible-party details immediately; does not issue certificates.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Optional destination-market hints. Omit when product_description names the destination.'}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction.'}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'default': 'zh', 'description': 'Language for seller-facing text. Questions and messages come back in it; en or zh.'}, 'age_group': {'enum': ['under_3', '3_to_13', '14_plus', 'unknown'], 'type': 'string', 'description': 'Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow.'}, 'has_radio': {'type': 'boolean', 'description': 'Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'product_name': {'type': 'string', 'maxLength': 160, 'description': 'Human-readable product or SKU name'}, 'evidence_held': {'type': 'array', 'items': {'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, 'default': [], 'maxItems': 90, 'description': "Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document."}, 'sales_channel': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements.'}, 'verified_only': {'type': 'boolean', 'default': True, 'description': 'Exclude decision rules not checked against primary sources'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'applicable_modules': {'type': 'array', 'items': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics.'}, 'product_description': {'type': 'string', 'maxLength': 6000, 'minLength': 10, 'description': 'Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied.'}, 'sells_in_california': {'type': 'boolean', 'description': 'Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements.'}, 'is_childrens_product': {'type': 'boolean', 'description': "Whether the product is marketed as a children's product; keep unknown when not established."}, 'accessible_small_parts': {'type': 'boolean', 'description': 'Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use.'}, 'evidence_inventory_complete': {'type': 'boolean', 'default': False, 'description': 'True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing.'}, 'toy_chemical_assessment_complete': {'type': 'boolean', 'description': 'Whether a chemical safety assessment covering migration limits has already been completed for this toy.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
compare_market_requirements
Compare markets
Compare requirements for a product across 2-4 of EU, UK, US and Australia. Answers immediately: no case, no account, no follow-up. Send category, markets and known facts. Missing facts produce optional refinements; do not ask or rerun automatically.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['category', 'markets'], 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 2}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Product category'}, 'language': {'enum': ['zh', 'en'], 'type': 'string', 'default': 'zh', 'description': 'Response language. Defaults to Chinese.'}, 'age_group': {'enum': ['under_3', '3_to_13', '14_plus', 'not_applicable', 'unknown'], 'type': 'string', 'description': 'Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow.'}, 'food_type': {'type': 'string', 'maxLength': 80, 'description': 'The food the product will contact. Simulant selection for migration testing depends on it.'}, 'has_radio': {'type': 'boolean', 'description': 'Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'is_sunscreen': {'type': 'boolean', 'description': 'Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties.'}, 'repeated_use': {'enum': ['single_use', 'repeated_use', 'unknown'], 'type': 'string', 'description': 'Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles.'}, 'verified_only': {'type': 'boolean', 'description': 'Exclude rules not yet checked against primary sources. Default false: unverified material is included but labelled via review_status and the trust envelope.'}, 'eu_destination': {'enum': ['DE', 'other_eu', 'unknown'], 'type': 'string', 'description': 'Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU.'}, 'contact_duration': {'type': 'string', 'maxLength': 80, 'description': 'How long the product touches food in normal use. Long-term contact triggers stricter migration testing.'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'claims_therapeutic': {'type': 'boolean', 'description': 'Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime.'}, 'contact_temperature': {'type': 'string', 'maxLength': 80, 'description': 'The temperature at contact. Hot fill and cooking raise migration limits and change the test.'}, 'ingredients_reviewed': {'type': 'boolean', 'description': 'Whether the full ingredient list has already been checked against restricted-substance annexes.'}, 'is_childrens_product': {'type': 'boolean', 'description': "Whether the product is marketed as a children's product; keep unknown when not established."}, 'food_contact_material': {'type': 'string', 'maxLength': 120, 'description': 'The material that touches food. Migration limits and test methods differ by material.'}, 'accessible_small_parts': {'type': 'boolean', 'description': 'Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use.'}, 'includes_mains_charger': {'type': 'boolean', 'description': 'Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope.'}, 'is_electrically_operated': {'type': 'boolean', 'description': 'Whether the toy is electrically operated, including mains-powered or battery-powered operation.'}, 'battery_compartment_security': {'enum': ['tool_required', 'two_independent_actions', 'other_secured', 'unsecured', 'unknown'], 'type': 'string', 'description': 'How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard.'}, 'toy_chemical_assessment_complete': {'type': 'boolean', 'description': 'Whether a chemical safety assessment covering migration limits has already been completed for this toy.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
describe_coverage
Describe coverage
Get a short scope and human-review service summary. Set detail=full for the coverage matrix, input definitions and methodology; optional, not a prerequisite. Start product cases at Stage 1 with market_access_check.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'detail': {'enum': ['summary', 'full'], 'type': 'string', 'default': 'summary', 'description': 'Full adds per-market coverage, input definitions and methodology.'}, 'language': {'enum': ['zh', 'en'], 'type': 'string', 'default': 'zh', 'description': 'Response language. Defaults to Chinese.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
explain_claim
Explain claim
Retrieve the primary sources, verification date and evidence gaps for a claim_id from an earlier result. Copy the exact ID; not a general question-answering tool.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claim_id'], 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.'}, 'claim_id': {'type': 'string', 'maxLength': 160, 'minLength': 3}, 'language': {'enum': ['zh', 'en'], 'type': 'string', 'default': 'zh', 'description': 'Response language. Defaults to Chinese.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
market_access_check
Product market-access check
Free, unlimited EU/UK/US/AU product assessments with human review for a signed next-step pack. Send a plain-language `message` in English or Chinese; the first response already contains preliminary requirements. Follow `next_action`: execute it exactly as returned and answer questions by `key`. The first reviewed pack is free per confirmed seller email; further packs are arranged with ComplianceCN. Provide email and consent through this same tool when next_action requests them; no browser form is required. Human review requires email confirmation and reviewer sign-off.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'email': {'type': 'string', 'maxLength': 320, 'description': "For request_review_email only: the seller's real notification email, used with their permission."}, 'action': {'enum': ['continue', 'start_stage_2', 'confirm_stage_2', 'request_review_email', 'correct_stage_2', 'confirm_stage_1', 'correct_stage_1'], 'type': 'string', 'default': 'continue', 'description': 'Follow the returned next_action. Use correct_stage_2 for seller corrections; confirm_stage_1/correct_stage_1 are legacy aliases.'}, 'answers': {'type': 'object', 'description': 'Optional structured answers keyed by the stable question.key values returned by the previous call.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'type': 'string', 'maxLength': 6000}, {'type': 'boolean'}, {'type': 'number'}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 240}, 'maxItems': 40}]}}, 'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'message': {'type': 'string', 'maxLength': 6000, 'minLength': 1, 'description': "The seller's initial product/market description or their latest natural-language clarification. Do not repeat information already supplied."}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'description': 'Preferred response language; inferred from the seller message when omitted.'}, 'consent_to_contact': {'type': 'boolean', 'description': "For request_review_email: true only with the seller's permission to email them about this case. Reuse existing scoped consent; never infer it."}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
preflight_product
Structured product readiness check
Check structured product facts, destination markets and evidence held. Returns requirements, an evidence checklist and gaps in one response. For plain-language input use market_access_check. Automated findings are provisional; a signed pack requires human review.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Optional destination-market hints. Omit when product_description names the destination.'}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction.'}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'default': 'zh', 'description': 'Language for seller-facing text. Questions and messages come back in it; en or zh.'}, 'age_group': {'enum': ['under_3', '3_to_13', '14_plus', 'unknown'], 'type': 'string', 'description': 'Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow.'}, 'food_type': {'enum': ['dry', 'aqueous', 'acidic', 'fatty', 'alcoholic', 'mixed', 'unknown'], 'type': 'string', 'description': 'The food the product will contact. Simulant selection for migration testing depends on it.'}, 'has_radio': {'type': 'boolean', 'description': 'Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'is_sunscreen': {'type': 'boolean', 'description': 'Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties.'}, 'product_name': {'type': 'string', 'maxLength': 160, 'description': 'Human-readable product or SKU name'}, 'repeated_use': {'enum': ['single_use', 'repeated_use', 'unknown'], 'type': 'string', 'description': 'Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles.'}, 'evidence_held': {'type': 'array', 'items': {'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, 'default': [], 'maxItems': 90, 'description': "Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document."}, 'evidence_text': {'type': 'string', 'maxLength': 6000, 'description': 'Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat.'}, 'sales_channel': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements.'}, 'verified_only': {'type': 'boolean', 'default': True, 'description': 'Exclude decision rules not checked against primary sources'}, 'eu_destination': {'enum': ['DE', 'other_eu', 'unknown'], 'type': 'string', 'description': 'Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU.'}, 'evidence_notes': {'type': 'string', 'maxLength': 6000, 'description': 'Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review.'}, 'contact_duration': {'enum': ['short', 'long_term', 'unknown'], 'type': 'string', 'description': 'How long the product touches food in normal use. Long-term contact triggers stricter migration testing.'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'applicable_modules': {'type': 'array', 'items': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics.'}, 'claims_therapeutic': {'type': 'boolean', 'description': 'Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime.'}, 'contact_temperature': {'enum': ['ambient', 'hot_fill', 'cooking_reheating', 'freezing', 'unknown'], 'type': 'string', 'description': 'The temperature at contact. Hot fill and cooking raise migration limits and change the test.'}, 'product_description': {'type': 'string', 'maxLength': 6000, 'minLength': 10, 'description': 'Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied.'}, 'sells_in_california': {'type': 'boolean', 'description': 'Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements.'}, 'clarification_answer': {'type': 'string', 'maxLength': 6000, 'minLength': 1, 'description': "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU."}, 'ingredients_reviewed': {'type': 'boolean', 'description': 'Whether the full ingredient list has already been checked against restricted-substance annexes.'}, 'is_childrens_product': {'type': 'boolean', 'description': "Whether the product is marketed as a children's product; keep unknown when not established."}, 'evidence_observations': {'type': 'array', 'items': {'type': 'object', 'properties': {'issues': {'type': 'array', 'items': {'type': 'string', 'maxLength': 240}, 'default': [], 'maxItems': 16, 'description': 'Concise unresolved checks only; never include document quotations or report text.'}, 'status': {'enum': ['reported_held', 'mentioned_uncertain', 'not_held', 'needs_human_review'], 'type': 'string', 'default': 'mentioned_uncertain'}, 'confidence': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'default': 'low'}, 'provenance': {'enum': ['seller_statement', 'agent_extraction', 'llm_inference', 'keyword_inference'], 'type': 'string', 'default': 'agent_extraction'}, 'evidence_id': {'anyOf': [{'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, {'type': 'null'}], 'description': 'Canonical evidence ID when the apparent document type can be mapped safely; otherwise null.'}, 'document_date': {'anyOf': [{'type': 'string', 'maxLength': 80}, {'type': 'null'}]}, 'document_type': {'anyOf': [{'type': 'string', 'maxLength': 160}, {'type': 'null'}], 'description': 'Plain-language apparent document type; this does not authenticate or approve the document.'}, 'issuer_or_lab': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'description': 'Issuing organisation or laboratory name only; omit personal names and addresses.'}, 'models_covered': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 20, 'description': 'Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.'}, 'document_reference': {'anyOf': [{'type': 'string', 'maxLength': 260}, {'type': 'null'}], 'description': 'Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation.'}, 'standards_referenced': {'type': 'array', 'items': {'type': 'string', 'maxLength': 160}, 'default': [], 'maxItems': 24}, 'report_or_certificate_number': {'anyOf': [{'type': 'string', 'maxLength': 140}, {'type': 'null'}]}}}, 'default': [], 'maxItems': 40, 'description': 'Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.'}, 'food_contact_material': {'enum': ['plastic', 'metal', 'ceramic_glass', 'paper_board', 'silicone_rubber', 'multi_material', 'unknown'], 'type': 'string', 'description': 'The material that touches food. Migration limits and test methods differ by material.'}, 'accessible_small_parts': {'type': 'boolean', 'description': 'Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use.'}, 'includes_mains_charger': {'type': 'boolean', 'description': 'Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope.'}, 'is_electrically_operated': {'type': 'boolean', 'description': 'Whether the toy is electrically operated, including mains-powered or battery-powered operation.'}, 'evidence_inventory_complete': {'type': 'boolean', 'default': False, 'description': 'True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing.'}, 'battery_compartment_security': {'enum': ['tool_required', 'two_independent_actions', 'other_secured', 'unsecured', 'unknown'], 'type': 'string', 'description': 'How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard.'}, 'toy_chemical_assessment_complete': {'type': 'boolean', 'description': 'Whether a chemical safety assessment covering migration limits has already been completed for this toy.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
watch_product_regulatory_changes
Email me when the rules for this product change
Start free email alerts for a checked product when the seller explicitly requests them. Requires a real email, consent_to_alerts=true and a saved product/market profile. Covers matching human-reviewed ComplianceCN updates, not every regulatory change. There is no payment and no checkout step.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_profile', 'email', 'consent_to_alerts'], 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Seller email for product-change alerts. Provide only after the seller explicitly asks for the alert subscription.'}, 'product_profile': {'type': 'object', 'properties': {'case_id': {'type': 'string', 'pattern': '^ccase_[a-f0-9]{24}$', 'description': 'The case this call continues, from an earlier result. Omit to start a new product case.'}, 'markets': {'type': 'array', 'items': {'enum': ['EU', 'US', 'UK', 'AU'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Optional destination-market hints. Omit when product_description names the destination.'}, 'category': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string', 'description': 'Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction.'}, 'language': {'enum': ['zh', 'en', 'English', 'english', 'Chinese', 'chinese', '中文', '英文'], 'type': 'string', 'default': 'zh', 'description': 'Language for seller-facing text. Questions and messages come back in it; en or zh.'}, 'age_group': {'enum': ['under_3', '3_to_13', '14_plus', 'unknown'], 'type': 'string', 'description': 'Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow.'}, 'food_type': {'enum': ['dry', 'aqueous', 'acidic', 'fatty', 'alcoholic', 'mixed', 'unknown'], 'type': 'string', 'description': 'The food the product will contact. Simulant selection for migration testing depends on it.'}, 'has_radio': {'type': 'boolean', 'description': 'Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US.'}, 'has_battery': {'type': 'boolean', 'description': 'Whether the product contains or ships with any battery, including a coin cell in a remote.'}, 'battery_type': {'enum': ['button_coin', 'lithium_ion', 'other', 'none', 'unknown'], 'type': 'string', 'description': 'Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing.'}, 'is_sunscreen': {'type': 'boolean', 'description': 'Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties.'}, 'product_name': {'type': 'string', 'maxLength': 160, 'description': 'Human-readable product or SKU name'}, 'repeated_use': {'enum': ['single_use', 'repeated_use', 'unknown'], 'type': 'string', 'description': 'Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles.'}, 'evidence_held': {'type': 'array', 'items': {'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, 'default': [], 'maxItems': 90, 'description': "Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document."}, 'evidence_text': {'type': 'string', 'maxLength': 6000, 'description': 'Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat.'}, 'sales_channel': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements.'}, 'verified_only': {'type': 'boolean', 'default': True, 'description': 'Exclude decision rules not checked against primary sources'}, 'eu_destination': {'enum': ['DE', 'other_eu', 'unknown'], 'type': 'string', 'description': 'Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU.'}, 'evidence_notes': {'type': 'string', 'maxLength': 6000, 'description': 'Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review.'}, 'contact_duration': {'enum': ['short', 'long_term', 'unknown'], 'type': 'string', 'description': 'How long the product touches food in normal use. Long-term contact triggers stricter migration testing.'}, 'supply_chain_role': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's."}, 'applicable_modules': {'type': 'array', 'items': {'enum': ['battery-electronics', 'toys', 'cosmetics', 'food-contact', 'toy', '玩具', 'battery', 'electronics', '电池电子产品', '带电池电子产品', 'cosmetic', '化妆品', 'food_contact', 'foodcontact', '食品接触材料', '食品接触用品', '食品接触产品'], 'type': 'string'}, 'maxItems': 4, 'description': 'Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics.'}, 'claims_therapeutic': {'type': 'boolean', 'description': 'Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime.'}, 'contact_temperature': {'enum': ['ambient', 'hot_fill', 'cooking_reheating', 'freezing', 'unknown'], 'type': 'string', 'description': 'The temperature at contact. Hot fill and cooking raise migration limits and change the test.'}, 'product_description': {'type': 'string', 'maxLength': 6000, 'minLength': 10, 'description': 'Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied.'}, 'sells_in_california': {'type': 'boolean', 'description': 'Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements.'}, 'clarification_answer': {'type': 'string', 'maxLength': 6000, 'minLength': 1, 'description': "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU."}, 'ingredients_reviewed': {'type': 'boolean', 'description': 'Whether the full ingredient list has already been checked against restricted-substance annexes.'}, 'is_childrens_product': {'type': 'boolean', 'description': "Whether the product is marketed as a children's product; keep unknown when not established."}, 'evidence_observations': {'type': 'array', 'items': {'type': 'object', 'properties': {'issues': {'type': 'array', 'items': {'type': 'string', 'maxLength': 240}, 'default': [], 'maxItems': 16, 'description': 'Concise unresolved checks only; never include document quotations or report text.'}, 'status': {'enum': ['reported_held', 'mentioned_uncertain', 'not_held', 'needs_human_review'], 'type': 'string', 'default': 'mentioned_uncertain'}, 'confidence': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'default': 'low'}, 'provenance': {'enum': ['seller_statement', 'agent_extraction', 'llm_inference', 'keyword_inference'], 'type': 'string', 'default': 'agent_extraction'}, 'evidence_id': {'anyOf': [{'enum': ['ce_declaration', 'ce_label_artwork', 'rohs_evidence', 'radio_test_report', 'un38_3_test_summary', 'battery_label_artwork', 'eu_economic_operator', 'weee_registration', 'battery_epr_registration', 'fcc_authorization', 'fcc_sdoc', 'fcc_label_artwork', 'us_responsible_party', 'lithium_shipping_marks', 'prop65_assessment', 'marketplace_safety_report', 'ukca_or_ce_mark', 'uk_rohs_evidence', 'uk_radio_compliance', 'uk_importer_details', 'uk_weee_registration', 'uk_battery_epr_registration', 'uk_un38_3_test_summary', 'uk_marketplace_safety_report', 'au_rcm_supplier_declaration', 'au_radio_compliance', 'au_eess_supplier_evidence', 'au_importer_supplier_details', 'au_battery_shipping_evidence', 'au_marketplace_safety_report', 'toy_safety_assessment', 'en71_mechanical_report', 'en71_chemical_report', 'electrical_toy_report', 'battery_compartment_assessment', 'choking_risk_assessment', 'age_grading_rationale', 'toy_warning_artwork', 'german_warning_copy', 'marketplace_toy_evidence_package', 'toy_third_party_test_report', 'toy_cpc_certificate', 'toy_retesting_plan', 'toy_cbp_efiling_evidence', 'toy_tracking_label_artwork', 'toy_small_parts_warning_artwork', 'uk_toy_declaration', 'uk_en71_report', 'uk_toy_marking', 'uk_toy_importer_details', 'uk_toy_radio_compliance', 'uk_toy_battery_evidence', 'uk_toy_warning_artwork', 'uk_toy_retesting_plan', 'uk_toy_marketplace_evidence_package', 'au_toy_safety_report', 'au_toy_supplier_declaration', 'au_toy_warning_artwork', 'au_toy_importer_details', 'au_toy_radio_compliance', 'au_toy_battery_evidence', 'au_toy_retesting_plan', 'au_toy_marketplace_evidence_package', 'cosmetic_formula_review', 'cosmetic_safety_report', 'cosmetic_pif', 'cosmetic_cpn_notification', 'cosmetic_label_artwork', 'cosmetic_responsible_person', 'cosmetic_claim_substantiation', 'cosmetic_facility_registration', 'cosmetic_adverse_event_process', 'cosmetic_notification', 'food_contact_material_spec', 'food_contact_use_conditions_spec', 'food_contact_migration_report', 'food_contact_plastic_oml_sml_report', 'food_contact_ceramic_glass_release_report', 'food_contact_paper_board_component_review', 'food_contact_coating_adhesive_ink_review', 'food_contact_metal_release_review', 'food_contact_hot_use_protocol', 'food_contact_repeated_use_simulation', 'food_contact_doc', 'food_contact_traceability', 'food_contact_label_artwork', 'food_contact_polymer_resin_clearance', 'food_contact_fda_status', 'food_contact_supplier_declaration', 'food_contact_california_prop65_screen'], 'type': 'string'}, {'type': 'null'}], 'description': 'Canonical evidence ID when the apparent document type can be mapped safely; otherwise null.'}, 'document_date': {'anyOf': [{'type': 'string', 'maxLength': 80}, {'type': 'null'}]}, 'document_type': {'anyOf': [{'type': 'string', 'maxLength': 160}, {'type': 'null'}], 'description': 'Plain-language apparent document type; this does not authenticate or approve the document.'}, 'issuer_or_lab': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'description': 'Issuing organisation or laboratory name only; omit personal names and addresses.'}, 'models_covered': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120}, 'default': [], 'maxItems': 20, 'description': 'Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.'}, 'document_reference': {'anyOf': [{'type': 'string', 'maxLength': 260}, {'type': 'null'}], 'description': 'Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation.'}, 'standards_referenced': {'type': 'array', 'items': {'type': 'string', 'maxLength': 160}, 'default': [], 'maxItems': 24}, 'report_or_certificate_number': {'anyOf': [{'type': 'string', 'maxLength': 140}, {'type': 'null'}]}}}, 'default': [], 'maxItems': 40, 'description': 'Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.'}, 'food_contact_material': {'enum': ['plastic', 'metal', 'ceramic_glass', 'paper_board', 'silicone_rubber', 'multi_material', 'unknown'], 'type': 'string', 'description': 'The material that touches food. Migration limits and test methods differ by material.'}, 'accessible_small_parts': {'type': 'boolean', 'description': 'Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use.'}, 'includes_mains_charger': {'type': 'boolean', 'description': 'Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope.'}, 'is_electrically_operated': {'type': 'boolean', 'description': 'Whether the toy is electrically operated, including mains-powered or battery-powered operation.'}, 'evidence_inventory_complete': {'type': 'boolean', 'default': False, 'description': 'True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing.'}, 'battery_compartment_security': {'enum': ['tool_required', 'two_independent_actions', 'other_secured', 'unsecured', 'unknown'], 'type': 'string', 'description': 'How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard.'}, 'toy_chemical_assessment_complete': {'type': 'boolean', 'description': 'Whether a chemical safety assessment covering migration limits has already been completed for this toy.'}}, 'description': 'The same normalized product profile used for the completed preflight. Do not include document contents or unrelated personal data.'}, 'preflight_result': {'type': 'object', 'description': 'The completed preflight result when available. Its requirement, rule and claim IDs improve future change matching.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'consent_to_alerts': {'type': 'boolean', 'const': True, 'description': 'Must be true. The seller explicitly agrees to save this product profile and receive matched product-change and subscription-service emails.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'payload'], 'properties': {'ok': {'type': 'boolean'}, 'payload': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, 'additionalProperties': False}
Modificado
describe_coverage
21 de September de 2026 a las 02:51
Modificado
explain_claim
21 de September de 2026 a las 02:51
Modificado
check_eu_declaration_basis
21 de September de 2026 a las 02:51
Modificado
check_us_import_certification
21 de September de 2026 a las 02:51
Modificado
check_label_and_packaging
21 de September de 2026 a las 02:51
Modificado
check_battery_transport_documents
21 de September de 2026 a las 02:51
Modificado
check_amazon_compliance_request
21 de September de 2026 a las 02:51
Modificado
compare_market_requirements
21 de September de 2026 a las 02:51
Modificado
watch_product_regulatory_changes
21 de September de 2026 a las 02:51
Modificado
preflight_product
21 de September de 2026 a las 02:51
Modificado
market_access_check
21 de September de 2026 a las 02:51
Añadido
describe_coverage
17 de September de 2026 a las 12:43
Añadido
explain_claim
17 de September de 2026 a las 12:43
Añadido
check_eu_declaration_basis
17 de September de 2026 a las 12:43
Añadido
check_us_import_certification
17 de September de 2026 a las 12:43
Añadido
check_label_and_packaging
17 de September de 2026 a las 12:43
Añadido
check_battery_transport_documents
17 de September de 2026 a las 12:43
Añadido
check_amazon_compliance_request
17 de September de 2026 a las 12:43
Añadido
compare_market_requirements
17 de September de 2026 a las 12:43
Añadido
watch_product_regulatory_changes
17 de September de 2026 a las 12:43
Añadido
preflight_product
17 de September de 2026 a las 12:43
Añadido
market_access_check
17 de September de 2026 a las 12:43