{"service":"HALOWERK rohstoffwerk","version":"1.0.0","currency":"USDC","network":"eip155:8453","network_name":"Base Mainnet","recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","payment_header":"PAYMENT-SIGNATURE","endpoints":[{"method":"POST","path":"/cable-mass","url":"https://material.halowerk.com/cable-mass","tool":"cable_conductor_mass","price_usdc":0.002,"price_model":"per_call","summary":"Returns the exact conductor mass of a cable run and an estimated range for the total cable mass, so a scrap lot can be valued before it is weighed.","description":"Conductor mass is calculated from nominal cross-section, core count and length against the material density; for a nominal cross-section this is exact and independent of stranding. Total cable mass and the copper share are returned as a range derived from published manufacturer weight tables per cross-section band, not as a type-test value. Insulation, filler and armour are not modelled individually.","input_schema":{"type":"object","required":["cable_type","cores","cross_section_mm2"],"additionalProperties":false,"properties":{"cable_type":{"type":"string","description":"Cable designation, e.g. NYM-J, NYY-J, H07V-K, H05VV-F, H07RN-F, NYCWY."},"cores":{"type":"integer","minimum":1,"maximum":61,"description":"Number of load-carrying cores."},"cross_section_mm2":{"type":"number","minimum":0.05,"maximum":1000,"description":"Nominal cross-section of one core in mm2."},"length_m":{"type":"number","minimum":0.1,"maximum":100000,"default":1,"description":"Cable length in metres. Default 1."},"conductor":{"type":"string","enum":["copper","aluminium"],"default":"copper"},"concentric_conductor_mm2":{"type":"number","minimum":0,"maximum":500,"description":"Cross-section of the concentric conductor, if present."}}},"needs_history":false,"payment_required":true,"serviceName":"cable_conductor_mass","tags":["recycling","copper","cable"],"example_request":{"cable_type":"NYM-J","cores":3,"cross_section_mm2":1.5,"length_m":100},"requestExample":{"cable_type":"NYM-J","cores":3,"cross_section_mm2":1.5,"length_m":100},"outputSchema":{"type":"object"},"outputExample":{"cable_type":"NYM-J","standard":"VDE 0250-204","sheath":"PVC","conductor_material":"copper","cores":3,"cross_section_mm2":1.5,"length_m":100,"conductor_mass_kg_per_m":0.0403,"conductor_mass_kg":4.032,"concentric_conductor_mass_kg":null,"cable_mass_kg_estimate":{"low":8.87,"high":12.096},"conductor_share_percent":{"low":33.3,"high":45.5},"band_used":"klein","mass_ratio_used":{"low":2.2,"high":3},"density_g_per_cm3":8.96,"assumptions":["Conductor mass uses the nominal cross-section; stranded and solid conductors of the same nominal size are treated alike.","Total cable mass is a range from published weight tables per cross-section band, not a type-test value.","Filler, armour and screens other than a stated concentric conductor are not modelled."],"unavailable_fields":[],"method":"geometry x density, sheath factor by cross-section band"}},{"method":"POST","path":"/dhl-shipping-label","url":"https://material.halowerk.com/dhl-shipping-label","tool":"dhl_shipping_label","price_usdc":0.005,"price_model":"per_call","summary":"Validates one domestic DHL Parcel Germany shipment and, in the configured sandbox, can create its test PDF shipping label.","description":"Sends one domestic German shipment to the official DHL Parcel DE Shipping v2 API. Validation-only is the default and causes no DHL state change. Test-label creation is permitted only in the configured sandbox; production creation stays disabled unless the operator explicitly enables it. Address and contact values are forwarded to DHL solely for this request and are never archived by HALOWERK. The caller confirms authority and any consent required for forwarding recipient data.","input_schema":{"type":"object","required":["billing_number","reference","shipper","consignee","weight_kg","authorization_confirmed"],"additionalProperties":false,"properties":{"profile":{"type":"string","minLength":1,"maxLength":35,"default":"STANDARD_GRUPPENPROFIL"},"product":{"type":"string","enum":["V01PAK","V62KP"],"default":"V01PAK"},"billing_number":{"type":"string","pattern":"^[A-Za-z0-9]{14}$"},"reference":{"type":"string","minLength":8,"maxLength":35},"ship_date":{"type":"string","format":"date"},"shipper":{"type":"object","required":["name","street","postal_code","city"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":50},"street":{"type":"string","minLength":1,"maxLength":50},"house_number":{"type":"string","minLength":1,"maxLength":10},"postal_code":{"type":"string","pattern":"^[0-9]{5}$"},"city":{"type":"string","minLength":1,"maxLength":40},"email":{"type":"string","minLength":3,"maxLength":80}}},"consignee":{"type":"object","required":["name","street","postal_code","city"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":50},"street":{"type":"string","minLength":1,"maxLength":50},"house_number":{"type":"string","minLength":1,"maxLength":10},"postal_code":{"type":"string","pattern":"^[0-9]{5}$"},"city":{"type":"string","minLength":1,"maxLength":40},"email":{"type":"string","minLength":3,"maxLength":80}}},"weight_kg":{"type":"number","exclusiveMinimum":0,"maximum":31.5},"dimensions_cm":{"type":"object","required":["length","width","height"],"additionalProperties":false,"properties":{"length":{"type":"integer","minimum":1,"maximum":200},"width":{"type":"integer","minimum":1,"maximum":200},"height":{"type":"integer","minimum":1,"maximum":200}}},"print_format":{"type":"string","enum":["A4","910-300-600","910-300-610","910-300-700","910-300-700-oz","910-300-710","910-300-300","910-300-300-oz","910-300-400","910-300-410"],"default":"A4"},"validate_only":{"type":"boolean","default":true},"authorization_confirmed":{"type":"boolean","const":true}}},"needs_history":false,"payment_required":true,"serviceName":"dhl_shipping_label","tags":["logistics","shipping","dhl","label"],"example_request":{"billing_number":"33333333330102","reference":"HALOWERK-TEST-0001","shipper":{"name":"HALOWERK Test","street":"Sträßchensweg","house_number":"10","postal_code":"53113","city":"Bonn"},"consignee":{"name":"Testempfänger","street":"Kurt-Schumacher-Str.","house_number":"20","postal_code":"53113","city":"Bonn"},"weight_kg":0.5,"validate_only":true,"authorization_confirmed":true},"requestExample":{"billing_number":"33333333330102","reference":"HALOWERK-TEST-0001","shipper":{"name":"HALOWERK Test","street":"Sträßchensweg","house_number":"10","postal_code":"53113","city":"Bonn"},"consignee":{"name":"Testempfänger","street":"Kurt-Schumacher-Str.","house_number":"20","postal_code":"53113","city":"Bonn"},"weight_kg":0.5,"validate_only":true,"authorization_confirmed":true},"outputSchema":{"type":"object"}},{"method":"POST","path":"/scrap-margin","url":"https://material.halowerk.com/scrap-margin","tool":"scrap_purchase_margin","price_usdc":0.003,"price_model":"per_call","summary":"Calculates the margin of a scrap purchase after recovery yield, melting loss and handling cost, and returns the break-even purchase price per kilogram.","description":"Takes the gross lot weight, the purchase price paid per kilogram of gross weight and the sales price per kilogram of recovered metal, then applies recovery yield and melting loss for the scrap grade. Yield and loss default to practice values per grade and can be overridden. Handling, transport and disposal cost are optional flat amounts. The endpoint applies no market price and fetches none: sales_price_eur_per_kg is supplied by the caller.","input_schema":{"type":"object","required":["grade","gross_weight_kg","purchase_price_eur_per_kg","sales_price_eur_per_kg"],"additionalProperties":false,"properties":{"grade":{"type":"string","description":"Scrap grade key, e.g. copper_millberry, cable_scrap_high, motor_scrap."},"gross_weight_kg":{"type":"number","minimum":0.1,"maximum":1000000},"purchase_price_eur_per_kg":{"type":"number","minimum":0,"maximum":10000,"description":"Price paid per kilogram of gross weight."},"sales_price_eur_per_kg":{"type":"number","minimum":0,"maximum":10000,"description":"Achievable price per kilogram of recovered metal."},"yield_percent":{"type":"number","minimum":1,"maximum":100,"description":"Overrides the recovery yield of the grade."},"melting_loss_percent":{"type":"number","minimum":0,"maximum":50,"description":"Overrides the melting loss of the grade."},"processing_cost_eur":{"type":"number","minimum":0,"maximum":1000000,"default":0},"transport_cost_eur":{"type":"number","minimum":0,"maximum":1000000,"default":0},"disposal_cost_eur_per_kg":{"type":"number","minimum":0,"maximum":1000,"default":0,"description":"Cost per kilogram of non-metal residue."}}},"needs_history":false,"payment_required":true,"serviceName":"scrap_purchase_margin","tags":["recycling","pricing","copper"],"example_request":{"grade":"beispiel","gross_weight_kg":0.1,"purchase_price_eur_per_kg":0,"sales_price_eur_per_kg":0,"processing_cost_eur":0,"transport_cost_eur":0,"disposal_cost_eur_per_kg":0},"requestExample":{"grade":"beispiel","gross_weight_kg":0.1,"purchase_price_eur_per_kg":0,"sales_price_eur_per_kg":0,"processing_cost_eur":0,"transport_cost_eur":0,"disposal_cost_eur_per_kg":0},"outputSchema":{"type":"object"}},{"method":"POST","path":"/awg-metric","url":"https://material.halowerk.com/awg-metric","tool":"awg_metric_convert","price_usdc":0.001,"price_model":"per_call","summary":"Converts an AWG size into diameter, cross-section, mass per metre and DC resistance, or maps a metric cross-section back to the nearest AWG size.","description":"Uses the geometric AWG definition, so results are exact for solid round conductors. Mass per metre and resistance follow from the material density and resistivity at 20 degrees Celsius; stranded conductors carry roughly two to five percent more mass and resistance per metre than the same nominal size and are not modelled separately. Supply either awg or cross_section_mm2, not both. Sizes 4/0 through 40 AWG are covered.","input_schema":{"type":"object","additionalProperties":false,"properties":{"awg":{"type":"string","description":"AWG size, e.g. \"12\", \"0\", \"2/0\", \"4/0\"."},"cross_section_mm2":{"type":"number","minimum":0.01,"maximum":1000,"description":"Metric cross-section for the reverse direction."},"material":{"type":"string","enum":["copper","aluminium"],"default":"copper"},"length_m":{"type":"number","minimum":0.1,"maximum":100000,"default":1}}},"needs_history":false,"payment_required":true,"serviceName":"awg_metric_convert","tags":["materials","cable","conversion"],"example_request":{"awg":"12","material":"copper","length_m":10},"requestExample":{"awg":"12","material":"copper","length_m":10},"outputSchema":{"type":"object"},"outputExample":{"direction":"awg_to_metric","awg":"12","awg_exact_match":true,"material":"copper","diameter_mm":2.0525,"cross_section_mm2":3.3088,"nearest_iec_60228_mm2":4,"mass_kg_per_km":29.647,"mass_kg":0.2965,"length_m":10,"dc_resistance_ohm_per_km_at_20c":5.2107,"resistivity_ohm_mm2_per_m":0.017241,"density_g_per_cm3":8.96,"assumptions":["Solid round conductor per the geometric AWG definition.","Stranded conductors add roughly two to five percent mass and resistance per metre.","Resistance is DC at 20 degrees Celsius, no temperature or skin effect correction."],"method":"diameter_mm = 0.127 * 92^((36-n)/39)"}},{"method":"POST","path":"/cable-type-vision","url":"https://material.halowerk.com/cable-type-vision","tool":"cable_type_vision","price_usdc":0.005,"price_model":"per_call","summary":"Inspects one public cable photograph and returns only visually supported cable-type candidates, markings and construction details with explicit uncertainty.","description":"Downloads one HTTPS image through the hub SSRF guard, then asks the configured OpenAI vision model for strict structured JSON. It reports observed features and readable markings, at most five ranked type candidates, and conductor material, core count or cross-section only where the image supports them; unknown values remain null or unknown. The result is identification assistance, not an electrical safety clearance, approval, voltage-state determination or substitute for inspection and testing.","input_schema":{"type":"object","required":["image_url"],"additionalProperties":false,"properties":{"image_url":{"type":"string","minLength":12,"maxLength":2048,"pattern":"^https://","description":"Public HTTPS URL of one JPEG, PNG, WebP or non-animated GIF cable photograph."}}},"needs_history":false,"payment_required":true,"serviceName":"cable_type_vision","tags":["recycling","cable","vision"],"example_request":{"image_url":"https://upload.wikimedia.org/wikipedia/commons/2/25/AbmantelnNYM.jpg"},"requestExample":{"image_url":"https://upload.wikimedia.org/wikipedia/commons/2/25/AbmantelnNYM.jpg"},"outputSchema":{"type":"object","additionalProperties":false,"required":["observed_features","readable_markings","type_candidates","conductor_material","core_count","cross_section_mm2","overall_confidence","limitations","safety_notice"],"properties":{"observed_features":{"type":"array","items":{"type":"string"},"maxItems":20},"readable_markings":{"type":"array","items":{"type":"string"},"maxItems":20},"type_candidates":{"type":"array","maxItems":5,"items":{"type":"object","additionalProperties":false,"required":["type","confidence","reasoning"],"properties":{"type":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1},"reasoning":{"type":"string"}}}},"conductor_material":{"type":"object","additionalProperties":false,"required":["value","basis"],"properties":{"value":{"anyOf":[{"type":"string","enum":["copper","aluminium","other","unknown"]},{"type":"null"}]},"basis":{"type":"string"}}},"core_count":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"cross_section_mm2":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}]},"overall_confidence":{"type":"number","minimum":0,"maximum":1},"limitations":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":20},"safety_notice":{"type":"string","const":"This visual identification is not an electrical safety clearance."}}}},{"method":"POST","path":"/copper-co2","url":"https://material.halowerk.com/copper-co2","tool":"copper_recycling_co2","price_usdc":0.002,"price_model":"per_call","summary":"Returns the greenhouse gas saving of a copper quantity taken through a secondary route instead of primary cathode production, as a range with the factors used.","description":"Multiplies the copper quantity by literature emission factors for the chosen secondary route and for primary cathode production, and reports the difference as low, typical and high. The factors are published life cycle averages and are stated in the response; they are not a certified product carbon footprint and are not a valid basis for a carbon credit, a customer declaration or an audited claim.","input_schema":{"type":"object","required":["copper_kg"],"additionalProperties":false,"properties":{"copper_kg":{"type":"number","minimum":0.01,"maximum":10000000},"route":{"type":"string","enum":["secondary_remelt","secondary_refined","cable_granulation"],"default":"secondary_refined"},"primary_factor_kg_co2e_per_kg":{"type":"number","minimum":0,"maximum":50,"description":"Overrides the primary cathode factor."},"secondary_factor_kg_co2e_per_kg":{"type":"number","minimum":0,"maximum":50,"description":"Overrides the secondary route factor."},"transport_km":{"type":"number","minimum":0,"maximum":40000,"default":0},"transport_factor_kg_co2e_per_tkm":{"type":"number","minimum":0,"maximum":5,"description":"Own transport factor per tonne-kilometre. Without it transport stays excluded."}}},"needs_history":false,"payment_required":true,"serviceName":"copper_recycling_co2","tags":["recycling","copper","emissions"],"example_request":{"copper_kg":0.01,"route":"secondary_refined","transport_km":0},"requestExample":{"copper_kg":0.01,"route":"secondary_refined","transport_km":0},"outputSchema":{"type":"object"},"outputExample":{"copper_kg":0.01,"route":"secondary_refined","route_name":"Secondary copper, refined from mixed scrap","primary_emissions_kg_co2e":{"low":0.03,"typical":0.04,"high":0.06},"secondary_emissions_kg_co2e":{"low":0.01,"typical":0.01,"high":0.02},"saving_kg_co2e":{"low":0.01,"typical":0.03,"high":0.05},"saving_percent_typical":72.5,"transport_emissions_kg_co2e":null,"factors_used_kg_co2e_per_kg":{"primary":{"low":3,"typical":4,"high":5.5},"secondary":{"low":0.7,"typical":1.1,"high":1.8},"overridden":{"primary":false,"secondary":false}},"unavailable_fields":["transport_emissions_kg_co2e"],"limits":["Literature life cycle averages, not a certified product carbon footprint.","Not valid as a carbon credit, customer declaration or audited claim.","Ore grade, electricity mix and process route drive the spread; use own verified factors where available."],"method":"quantity x factor difference between primary cathode and the selected secondary route"}},{"method":"POST","path":"/pcb-precious-metals","url":"https://material.halowerk.com/pcb-precious-metals","tool":"pcb_precious_metal_estimate","price_usdc":0.004,"price_model":"per_call","summary":"Estimates the gold, silver, palladium and copper content of a scrap board lot as a range per board class, optionally valued with prices supplied by the caller.","description":"Returns published content ranges per board class multiplied by the lot mass. The spread between low and high is wide and real: content depends on board generation, manufacturer and how much of the assembly is included. This is a planning estimate for sorting and pre-valuation, not an assay, not a settlement basis and not a substitute for a sampled analysis. Values are only calculated when price_eur_per_g is supplied by the caller; no metal price is retrieved or resold here.","input_schema":{"type":"object","required":["board_class","mass_kg"],"additionalProperties":false,"properties":{"board_class":{"type":"string","description":"Board class key, e.g. mobile_phone_pcb, server_board, memory_module, cpu_ceramic."},"mass_kg":{"type":"number","minimum":0.01,"maximum":100000,"description":"Mass of the board lot, boards only, without housings or drives."},"price_eur_per_g":{"type":"object","additionalProperties":false,"description":"Own prices per gram. Only metals given here are valued.","properties":{"gold":{"type":"number","minimum":0,"maximum":100000},"silver":{"type":"number","minimum":0,"maximum":100000},"palladium":{"type":"number","minimum":0,"maximum":100000},"copper":{"type":"number","minimum":0,"maximum":100000}}},"recovery_percent":{"type":"number","minimum":1,"maximum":100,"description":"Share actually recovered at the smelter. Without it the gross content is reported."}}},"needs_history":false,"payment_required":true,"serviceName":"pcb_precious_metal_estimate","tags":["recycling","weee","precious-metals"],"example_request":{"board_class":"beispiel","mass_kg":0.01},"requestExample":{"board_class":"beispiel","mass_kg":0.01},"outputSchema":{"type":"object"}},{"method":"POST","path":"/parcel-bundling","url":"https://material.halowerk.com/parcel-bundling","tool":"parcel_bundling_check","price_usdc":0.003,"price_model":"per_call","summary":"Decides whether shipping items bundled into fewer parcels is cheaper than shipping them singly, against the rate table the caller supplies.","description":"Packs items into parcels by descending weight, first fit, within a maximum parcel weight and an optional maximum girth, prices each parcel with the cheapest matching bracket of the supplied rate table and compares the total against single shipment. The rate table is caller data: no carrier tariff is stored or redistributed. First fit is a heuristic, not a proven optimum.","input_schema":{"type":"object","required":["items","rates"],"additionalProperties":false,"properties":{"items":{"type":"array","minItems":1,"maxItems":200,"description":"Items to ship. Girth limits apply only when every item carries all three dimensions.","items":{"type":"object","required":["weight_kg"],"additionalProperties":false,"properties":{"name":{"type":"string"},"weight_kg":{"type":"number","minimum":0.001,"maximum":1000},"length_cm":{"type":"number","minimum":0.1,"maximum":500},"width_cm":{"type":"number","minimum":0.1,"maximum":500},"height_cm":{"type":"number","minimum":0.1,"maximum":500},"quantity":{"type":"integer","minimum":1,"maximum":500,"default":1}}}},"rates":{"type":"array","minItems":1,"maxItems":40,"description":"Own rate brackets; the cheapest fitting bracket wins.","items":{"type":"object","required":["max_weight_kg","price_eur"],"additionalProperties":false,"properties":{"label":{"type":"string"},"max_weight_kg":{"type":"number","minimum":0.001,"maximum":1000},"max_girth_cm":{"type":"number","minimum":1,"maximum":1000},"price_eur":{"type":"number","minimum":0,"maximum":100000}}}},"max_parcel_weight_kg":{"type":"number","minimum":0.1,"maximum":1000,"description":"Limit per parcel; defaults to the heaviest bracket."},"packaging_cost_eur":{"type":"number","minimum":0,"maximum":10000,"default":0,"description":"Packaging cost per parcel."}}},"needs_history":false,"payment_required":true,"serviceName":"parcel_bundling_check","tags":["logistics","shipping","optimisation"],"example_request":{"items":[{"weight_kg":0.001,"quantity":1}],"rates":[{"max_weight_kg":0.001,"price_eur":0}],"packaging_cost_eur":0},"requestExample":{"items":[{"weight_kg":0.001,"quantity":1}],"rates":[{"max_weight_kg":0.001,"price_eur":0}],"packaging_cost_eur":0},"outputSchema":{"type":"object"},"outputExample":{"item_count":1,"total_weight_kg":0,"max_parcel_weight_kg_used":0.001,"dimensions_complete":false,"bundled":{"parcels":1,"parcel_detail":[{"parcel":1,"weight_kg":0,"girth_cm":null,"items":["item"],"rate_label":null,"price_eur":0}],"packaging_eur":0,"total_eur":0},"single":{"parcels":1,"packaging_eur":0,"total_eur":0},"saving_eur":0,"saving_percent":0,"recommendation":"no_difference","assumptions":["First fit by descending weight; a proven optimum is not claimed.","Girth limits are only applied when every item carries all three dimensions.","Bundling stacks heights and takes the largest length and width; no nesting or reorientation.","Rate brackets are caller data; no carrier tariff is stored or redistributed."],"method":"first fit decreasing, cheapest matching bracket per parcel"}},{"method":"POST","path":"/dhl-tracking","url":"https://material.halowerk.com/dhl-tracking","tool":"dhl_tracking","price_usdc":0.004,"price_model":"per_call","summary":"Returns the current DHL Parcel Germany shipment status, delivery estimate and structured status codes for one authorized tracking number.","description":"Queries the official DHL Parcel DE Tracking API for one shipment and returns a privacy-minimized result: current status, timestamps and codes, product, delivery estimate, countries and any public event history supplied by DHL. The caller must be the sender, recipient or an authorized party and confirm all required consent; tracking data must not be combined with advertising.","input_schema":{"type":"object","required":["tracking_number","authorization_confirmed"],"additionalProperties":false,"properties":{"tracking_number":{"type":"string","minLength":8,"maxLength":50,"pattern":"^[A-Za-z0-9 -]+$","description":"One DHL Parcel Germany tracking number."},"recipient_postal_code":{"type":"string","pattern":"^[0-9]{5}$","description":"Optional recipient postal code for disambiguation and additional public details."},"language":{"type":"string","enum":["de","en"],"default":"de","description":"Language of DHL status text."},"authorization_confirmed":{"type":"boolean","const":true,"description":"Must be true: caller is sender, recipient or authorized by them and has all legally required consent."}}},"needs_history":false,"payment_required":true,"serviceName":"dhl_tracking","tags":["logistics","tracking","dhl","parcel"],"example_request":{"tracking_number":"961001046136","recipient_postal_code":"12345","language":"de","authorization_confirmed":true},"requestExample":{"tracking_number":"961001046136","recipient_postal_code":"12345","language":"de","authorization_confirmed":true},"outputSchema":{"type":"object","required":["tracking_number","delivered","product","current_event","events","estimated_delivery","fetched_at","attribution","source"],"properties":{"tracking_number":{"type":"string"},"delivered":{"type":["boolean","null"]},"return_shipment":{"type":["boolean","null"]},"product":{"type":"object"},"current_event":{"type":"object"},"events":{"type":"array"},"estimated_delivery":{"type":"object"},"origin_country":{"type":["string","null"]},"destination_country":{"type":["string","null"]},"international":{"type":["boolean","null"]},"shipment_weight_kg":{"type":["number","null"]},"fetched_at":{"type":"string"},"unavailable_fields":{"type":"array","items":{"type":"string"}},"attribution":{"type":"string"},"source":{"type":"string"}}}}],"updated_at":"2026-11-13T11:51:53.772Z"}