{"openapi":"3.1.0","info":{"title":"Divux","version":"1.0.0","description":"Real, dated facts for AI assistants: prices, recalls, medicines, clinical trials, money, schools, places, travel and more, from official and licensed sources. Free, no account. Same tools as the MCP connector at https://mcp.divux.si"},"servers":[{"url":"https://divux.si"}],"paths":{"/api/v1/tools/search_products":{"post":{"operationId":"search_products","summary":"Shopper: search products","description":"Find a product the user has already chosen, by exact name, model number or barcode (UPC/EAN), and get its id for compare_prices. Use this when the user is ready to buy: they ask where to buy it, for the best price now, whether a price is a good deal, or for a link. For a parts or shopping list, sear","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"The chosen product's name, model number or UPC/EAN, e.g. 'Sony WH-1000XM6' or '045496884963'; not a category"},"limit":{"default":5,"type":"integer","minimum":1,"maximum":10},"min_price":{"description":"Lowest price in USD, when the user gives a budget floor","type":"number","minimum":0},"max_price":{"description":"Highest price in USD, e.g. 100 for 'under $100'","type":"number","minimum":0},"in_stock_only":{"default":false,"description":"Only products with at least one in-stock offer","type":"boolean"},"brand":{"description":"Only this brand, e.g. 'Dyson', when the user names one","type":"string","maxLength":60},"condition":{"description":"new unless the user asks for used, open-box or refurbished; 'used' covers all of those","type":"string","enum":["new","used"]}},"required":["query"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/compare_prices":{"post":{"operationId":"compare_prices","summary":"Shopper: compare prices","description":"Compare current offers for one chosen product across US stores, ranked by price (item plus shipping where the store lists it, tax excluded). Use this at the buy step: the user asks where to buy it, what it costs at different stores, whether a price or sale is a good deal, if it's cheaper somewhere e","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product_id":{"type":"string","description":"Product id from search_products"},"condition":{"default":"new","description":"new (default) unless the user asks for used, open-box or refurbished; 'used' covers all of those; 'any' shows everything.","type":"string","enum":["new","used","any"]},"include_out_of_stock":{"default":false,"type":"boolean"},"detail":{"default":false,"description":"false: top 3 offers (default, best for chat and voice). true: up to 8.","type":"boolean"}},"required":["product_id"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/plan_build":{"post":{"operationId":"plan_build","summary":"Builder: plan a build","description":"Turn a project you designed (planter, shelf, desk, raised bed, fence, patio, painted room, pipe rack) into exact numbers and a blueprint page. Works for boards, pipe, tube, sheets, and materials bought by area, volume or count. You design it, choose materials and estimate prices yourself (search the","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":100,"description":"Project name, e.g. 'Cedar planter 24 x 12 in'"},"parts":{"description":"Every piece, for anything other than a cedar picket planter. Leave this out when picket_planter is set. If both are sent, picket_planter is used.","maxItems":150,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80,"description":"e.g. 'Long side' or 'Leg'"},"material":{"type":"string","minLength":1,"maxLength":60,"description":"e.g. '2x4', '1x6 cedar', 'cedar fence picket', '3/4 plywood'"},"size":{"type":"array","prefixItems":[{"type":"number","exclusiveMinimum":0,"maximum":600},{"type":"number","exclusiveMinimum":0,"maximum":600},{"type":"number","exclusiveMinimum":0,"maximum":600}],"items":false,"minItems":3,"maxItems":3,"description":"Real size in inches along width (x), depth (y), height (z)"},"at":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-600,"maximum":600},{"type":"number","minimum":-600,"maximum":600},{"type":"number","minimum":-600,"maximum":600}],"items":false,"minItems":3,"maxItems":3},"description":"Required. Where each copy sits: its lowest corner [x, y, z] in inches, x across, y front to back, z up. size is in the same axes (x, y, z). Without positions there is no drawing, no 3D view and no blueprint views. One entry per copy. Example, a 24 x 12 in planter 11.25 in tall: front [0,0,0], back [0,11.25,0], left [0,0.75,0], right [23.25,0.75,0]."},"qty":{"description":"Not needed: copies are counted from 'at'","type":"integer","minimum":1,"maximum":200},"step":{"description":"Assembly step (1-based) this piece goes on in, matching 'steps'","type":"integer","minimum":1,"maximum":50},"search":{"description":"What to type into a store search for this material, e.g. 'cedar fence picket 6 ft' or '1x6x8 cedar board'. Send it when the default wording may not find the right lumber.","type":"string","maxLength":80}},"required":["name","material","size","at"]}},"picket_planter":{"description":"Cedar fence-picket planter. When set, Divux designs the pieces. For any other project, omit this and send parts.","type":"object","properties":{"length":{"type":"number","exclusiveMinimum":0,"maximum":80,"description":"Outside length in inches. 36 for a 3 ft box, 48 for 4 ft, 60 for 5 ft. Not rounded."},"width":{"type":"number","exclusiveMinimum":0,"maximum":60,"description":"Outside width in inches. Rounded to whole 5 1/2 in pickets: 12 becomes 11, 18 becomes 16 1/2."},"courses":{"type":"integer","minimum":1,"maximum":4,"description":"How many pickets high the walls are. 3 for the low 4 ft box, 2 for the raised and tall boxes."},"leg_below":{"type":"number","minimum":0,"maximum":48,"description":"How far the legs stick out below the walls, in inches. 1 for the low box, 6.5 for the raised box, 20 for the tall box."}},"required":["length","width","courses","leg_below"]},"stock":{"description":"Board lengths or sheets you'd buy, with your price estimates. Without it, divux uses common US store lengths and shows no prices.","maxItems":40,"type":"array","items":{"type":"object","properties":{"material":{"type":"string","maxLength":60},"length":{"type":"number","exclusiveMinimum":0,"maximum":600,"description":"Board length, or sheet length, in inches"},"width":{"description":"Sheet width in inches","type":"number","exclusiveMinimum":0,"maximum":120},"price_estimate":{"description":"Your estimate in USD for one","type":"number","minimum":0,"maximum":10000}},"required":["material","length"]}},"extras":{"description":"Screws, nails, glue, finish, and tools needed","maxItems":60,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"kind":{"type":"string","enum":["hardware","tool","supply"]},"qty":{"type":"integer","minimum":1,"maximum":10000},"search":{"description":"What to type into a store search, e.g. 'Titebond III exterior wood glue' or 'exterior deck screws 2.5 inch'. Send it for glue, finish and hardware so the live prices show the right product.","type":"string","maxLength":80},"price_estimate":{"description":"Your estimate in USD for one (for a tool, the tool)","type":"number","minimum":0,"maximum":10000}},"required":["name","kind","qty"]}},"quantities":{"description":"Materials bought by area, volume or count: paint, stain, tile, flooring, fabric, soil, mulch, gravel, concrete","maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80,"description":"e.g. 'Exterior paint', 'Potting soil', 'Concrete mix', 'Floor tile'"},"form":{"type":"string","enum":["area","volume","count"]},"dims":{"description":"Inches: [length, width] for area, [length, width, depth] for volume","minItems":2,"maxItems":3,"type":"array","items":{"type":"number","exclusiveMinimum":0,"maximum":100000}},"amount":{"description":"Square feet, cubic feet or pieces, when dims don't fit","type":"number","exclusiveMinimum":0,"maximum":1000000},"times":{"description":"Repeat the dims, e.g. 2 coats or 4 walls","type":"integer","minimum":1,"maximum":1000},"per_unit":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"description":"What one unit covers (sq ft, cu ft or pieces), e.g. 350 for a gallon of paint, 0.6 for an 80 lb concrete bag"},"unit":{"type":"string","minLength":1,"maxLength":30,"description":"e.g. 'gallon', '80 lb bag', 'box'"},"waste_pct":{"description":"Extra to buy; default 10 for area, 5 for volume, 0 for count","type":"number","minimum":0,"maximum":100},"price_estimate":{"description":"Your estimate in USD for one unit","type":"number","minimum":0,"maximum":10000}},"required":["name","form","per_unit","unit"]}},"steps":{"description":"Assembly steps in order; pieces refer to them with 'step'","maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"units":{"description":"Units for the reply text; imperial (inches) if left out. The plan page has its own switch.","type":"string","enum":["imperial","metric"]},"kerf":{"description":"Saw blade width in inches; if left out, divux assumes 1/8 inch and says so under Assumed","type":"number","minimum":0,"maximum":0.5}},"required":["title"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/plan_recipe":{"post":{"operationId":"plan_recipe","summary":"Recipes: nutrition, allergens and a shopping list","description":"You write the recipe or the week of meals; divux does the math you can't do exactly and gives the person a page. Send the recipe (title, servings, ingredients, steps) or a week as days with meals. divux returns exact nutrition per serving and per day from USDA food data, allergen flags, any active F","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"description":"Name for a week plan, e.g. 'High-protein week'. A single recipe uses its own title.","type":"string","minLength":1,"maxLength":100},"recipe":{"description":"One recipe. Leave out when sending days.","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":100,"description":"Recipe name"},"servings":{"description":"How many servings the recipe as written makes","type":"number","exclusiveMinimum":0,"maximum":100},"ingredients":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"The ingredient, e.g. 'rolled oats', 'chicken breast', 'olive oil'. Put preparation in note, not here."},"amount":{"description":"The exact amount as a number: 1.5, or '1 1/2'. Not 'a handful' or 'to taste'.","type":"number","exclusiveMinimum":0,"maximum":100000},"unit":{"description":"g, kg, oz, lb, ml, l, tsp, tbsp, cup, fl oz, or a count word (clove, slice, piece). Leave out for whole items like eggs.","type":"string","maxLength":30},"grams":{"description":"The weight in grams of this whole amount, when you know it (best for a can, a cup of something unusual, or a branded item). It beats any conversion.","type":"number","exclusiveMinimum":0,"maximum":100000},"query":{"description":"What to look up for nutrition when name is not enough, e.g. 'chicken breast raw' or 'cheddar cheese'","type":"string","maxLength":100},"brand":{"description":"Only when the person named a brand, e.g. 'Cheerios': Divux then checks recent FDA recalls for it","type":"string","maxLength":60},"per_100g":{"description":"Nutrition per 100 g from the package, only if you have it; skips the lookup","type":"object","properties":{"kcal":{"type":"number","minimum":0,"maximum":1000},"protein_g":{"type":"number","minimum":0,"maximum":100},"fat_g":{"type":"number","minimum":0,"maximum":100},"sat_fat_g":{"type":"number","minimum":0,"maximum":100},"carbs_g":{"type":"number","minimum":0,"maximum":100},"sugars_g":{"type":"number","minimum":0,"maximum":100},"added_sugars_g":{"type":"number","minimum":0,"maximum":100},"fiber_g":{"type":"number","minimum":0,"maximum":100},"sodium_mg":{"type":"number","minimum":0,"maximum":40000}}},"price_estimate":{"description":"Your estimate in USD for this amount of the ingredient, when the person gave a budget. Divux doesn't look up prices here.","type":"number","minimum":0,"maximum":10000},"note":{"description":"Preparation, e.g. 'finely chopped'","type":"string","maxLength":100}},"required":["name","amount"]}},"steps":{"description":"The method, one step per entry, in order","maxItems":40,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"note":{"description":"A short tip or description for the top of the page","type":"string","maxLength":300}},"required":["title","servings","ingredients"]},"days":{"description":"A week of meals, up to 21 recipes in all. Leave out when sending one recipe.","maxItems":7,"type":"array","items":{"type":"object","properties":{"day":{"type":"string","minLength":1,"maxLength":20,"description":"e.g. 'Monday'"},"meals":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"object","properties":{"meal":{"description":"breakfast, lunch, dinner, snack","type":"string","maxLength":30},"recipe":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":100,"description":"Recipe name"},"servings":{"description":"How many servings the recipe as written makes","type":"number","exclusiveMinimum":0,"maximum":100},"ingredients":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"The ingredient, e.g. 'rolled oats', 'chicken breast', 'olive oil'. Put preparation in note, not here."},"amount":{"description":"The exact amount as a number: 1.5, or '1 1/2'. Not 'a handful' or 'to taste'.","type":"number","exclusiveMinimum":0,"maximum":100000},"unit":{"description":"g, kg, oz, lb, ml, l, tsp, tbsp, cup, fl oz, or a count word (clove, slice, piece). Leave out for whole items like eggs.","type":"string","maxLength":30},"grams":{"description":"The weight in grams of this whole amount, when you know it (best for a can, a cup of something unusual, or a branded item). It beats any conversion.","type":"number","exclusiveMinimum":0,"maximum":100000},"query":{"description":"What to look up for nutrition when name is not enough, e.g. 'chicken breast raw' or 'cheddar cheese'","type":"string","maxLength":100},"brand":{"description":"Only when the person named a brand, e.g. 'Cheerios': Divux then checks recent FDA recalls for it","type":"string","maxLength":60},"per_100g":{"description":"Nutrition per 100 g from the package, only if you have it; skips the lookup","type":"object","properties":{"kcal":{"type":"number","minimum":0,"maximum":1000},"protein_g":{"type":"number","minimum":0,"maximum":100},"fat_g":{"type":"number","minimum":0,"maximum":100},"sat_fat_g":{"type":"number","minimum":0,"maximum":100},"carbs_g":{"type":"number","minimum":0,"maximum":100},"sugars_g":{"type":"number","minimum":0,"maximum":100},"added_sugars_g":{"type":"number","minimum":0,"maximum":100},"fiber_g":{"type":"number","minimum":0,"maximum":100},"sodium_mg":{"type":"number","minimum":0,"maximum":40000}}},"price_estimate":{"description":"Your estimate in USD for this amount of the ingredient, when the person gave a budget. Divux doesn't look up prices here.","type":"number","minimum":0,"maximum":10000},"note":{"description":"Preparation, e.g. 'finely chopped'","type":"string","maxLength":100}},"required":["name","amount"]}},"steps":{"description":"The method, one step per entry, in order","maxItems":40,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"note":{"description":"A short tip or description for the top of the page","type":"string","maxLength":300}},"required":["title","servings","ingredients"]},"make":{"description":"Servings cooked; default the recipe's own servings","type":"number","exclusiveMinimum":0,"maximum":100},"eat":{"description":"Servings one person eats; default 1","type":"number","exclusiveMinimum":0,"maximum":20}},"required":["recipe"]}}},"required":["day","meals"]}},"goals":{"description":"The person's own targets per day; the page's bars are drawn against them instead of FDA Daily Values","type":"object","properties":{"kcal":{"type":"number","exclusiveMinimum":0,"maximum":10000},"protein_g":{"type":"number","exclusiveMinimum":0,"maximum":1000},"carbs_g":{"type":"number","exclusiveMinimum":0,"maximum":2000},"fat_g":{"type":"number","exclusiveMinimum":0,"maximum":1000},"sat_fat_g":{"type":"number","exclusiveMinimum":0,"maximum":500},"sugars_g":{"type":"number","exclusiveMinimum":0,"maximum":2000},"fiber_g":{"type":"number","exclusiveMinimum":0,"maximum":500},"sodium_mg":{"type":"number","exclusiveMinimum":0,"maximum":50000}}},"diet":{"description":"Diets to check the ingredients against","maxItems":5,"type":"array","items":{"type":"string","enum":["vegetarian","vegan","gluten_free","dairy_free","nut_free"]}},"household":{"description":"Family meals: who eats. Divux scales portions per person, and flags or rejects ingredients that break an allergy or avoid.","type":"object","properties":{"adults":{"description":"Number of adults","type":"integer","minimum":0,"maximum":20},"kids":{"description":"Each child's age in years, e.g. [3, 8]. Children get smaller portions by age.","maxItems":12,"type":"array","items":{"type":"number","minimum":0,"maximum":17}},"allergies":{"description":"Allergies in the household: milk, eggs, fish, shellfish, tree nuts, peanuts, wheat, soy, sesame (or any other word, which is treated as an avoid)","maxItems":12,"type":"array","items":{"type":"string","maxLength":40}},"avoid":{"description":"Foods the household won't eat, e.g. 'mushrooms', 'cilantro'","maxItems":20,"type":"array","items":{"type":"string","maxLength":40}},"strict":{"description":"True to refuse the plan (nothing saved) when an ingredient breaks an allergy or avoid; otherwise they are flagged","type":"boolean"}}},"budget":{"description":"Weekly food budget in USD. With price_estimate on ingredients, Divux totals the shopping list and warns when it's over.","type":"number","exclusiveMinimum":0,"maximum":100000}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_trip":{"post":{"operationId":"check_trip","summary":"Trip check: destination advice, fares and airport delays","description":"Everything for a trip in one call; send only the parts needed. Destination (country, plus latitude and longitude for weather): official travel advice from the US State Department, UK FCDO and Canada side by side, active disaster alerts, weather risk for the days ahead, CDC travel health notices, pub","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"description":"Destination country in English or two-letter code, e.g. 'Japan' or 'JP'","type":"string","minLength":2,"maxLength":60},"lat":{"description":"Latitude of the place being visited, for weather","type":"number","minimum":-90,"maximum":90},"lon":{"description":"Longitude of the place being visited, for weather","type":"number","minimum":-180,"maximum":180},"start_date":{"description":"Trip start, YYYY-MM-DD","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end_date":{"description":"Trip end, YYYY-MM-DD","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"home_currency":{"description":"Traveler's currency, e.g. 'USD'","type":"string","minLength":3,"maxLength":3},"local_currency":{"description":"Destination currency, e.g. 'JPY'","type":"string","minLength":3,"maxLength":3},"from":{"description":"For fares: departure city or airport code, e.g. 'New York' or 'JFK'","type":"string","maxLength":60},"to":{"description":"For fares: destination city or airport code, e.g. 'Lisbon'; defaults to the country's capital","type":"string","maxLength":60},"depart":{"description":"For fares: departure month YYYY-MM or date YYYY-MM-DD; defaults to start_date","type":"string","maxLength":10},"return":{"description":"For fares: return month or date; defaults to end_date; leave both out for one-way","type":"string","maxLength":10},"one_way":{"description":"For fares: true for one-way; defaults to one-way when there's no return","type":"boolean"},"direct_only":{"description":"For fares: true for nonstop flights only","type":"boolean"},"airports":{"description":"US airport codes for the FAA's delays right now, e.g. ['SFO', 'JFK']; an empty list for every US airport with a delay","maxItems":10,"type":"array","items":{"type":"string","minLength":3,"maxLength":4}}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_car":{"post":{"operationId":"check_car","summary":"Car: official facts about a vehicle, and fuel cost","description":"Official US facts about a car, truck or SUV from a VIN or a year, make and model: specs decoded from the VIN (NHTSA vPIC), recalls (NHTSA), owner complaints with the most-reported problem areas, NHTSA 5-star crash ratings, and EPA fuel economy (fueleconomy.gov). Add miles (you work out the distance)","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"vin":{"description":"17-character VIN, if known","type":"string","maxLength":24},"year":{"description":"Model year, when there's no VIN","type":"integer","minimum":1981,"maximum":2100},"make":{"description":"Make, e.g. 'Honda'","type":"string","maxLength":40},"model":{"description":"Model, e.g. 'CR-V'","type":"string","maxLength":60},"miles":{"description":"For fuel cost: driving distance in miles, one way","type":"number","exclusiveMinimum":0,"maximum":20000},"round_trip":{"description":"For fuel cost: true to double the distance","type":"boolean"},"state":{"description":"For fuel cost: two-letter US state where most of the driving happens, e.g. CA","type":"string","minLength":2,"maxLength":2},"fuel":{"description":"For fuel cost, when the model comes in both","type":"string","enum":["regular","diesel"]},"mpg":{"description":"For fuel cost: the car's mpg, if known or when there's no specific car","type":"number","exclusiveMinimum":0,"maximum":200},"fuel_only":{"description":"true when only fuel cost is wanted; skips recall, complaint and crash-rating lookups (needs miles and mpg, or year/make/model)","type":"boolean"}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/compare_transfers":{"post":{"operationId":"compare_transfers","summary":"Money abroad: compare transfer quotes","description":"Exact math on sending money abroad or changing currency. Send the amount, the two currencies and each provider's fee and exchange rate (you find the quotes); divux returns what arrives with each, the exchange-rate markup against the ECB reference rate, the total cost as a percent, a ranking, and the","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"send_amount":{"type":"number","exclusiveMinimum":0,"maximum":10000000,"description":"Amount being converted, before fees, in the sending currency"},"send_currency":{"type":"string","minLength":3,"maxLength":3,"description":"Sending currency, e.g. 'USD'"},"receive_currency":{"type":"string","minLength":3,"maxLength":3,"description":"Receiving currency, e.g. 'MXN'"},"receive_country":{"description":"Receiving country's two-letter code, e.g. 'MX', for the World Bank benchmark","type":"string","minLength":2,"maxLength":2},"quotes":{"description":"Quotes you found, one per provider","maxItems":12,"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","minLength":1,"maxLength":60,"description":"Provider name, e.g. 'Remitly'"},"fee":{"type":"number","minimum":0,"maximum":1000000,"description":"Transfer fee in the sending currency (0 if none)"},"rate":{"type":"number","exclusiveMinimum":0,"description":"Exchange rate offered: receiving currency per 1 sending currency"},"receive_amount":{"description":"Amount the provider says arrives, if shown","type":"number","exclusiveMinimum":0}},"required":["provider","fee","rate"]}}},"required":["send_amount","send_currency","receive_currency"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_food":{"post":{"operationId":"check_food","summary":"Food: nutrition, ingredients and recalls","description":"Nutrition facts for a food from its barcode (UPC/EAN, via Open Food Facts) or its name (USDA FoodData Central): calories, protein, fat, saturated fat, carbs, sugars, fiber and sodium per 100 g or 100 ml, per serving and for gram amounts when the source uses grams, with % Daily Value from the FDA's r","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"barcode":{"description":"UPC or EAN printed under the bars, 8 to 14 digits","type":"string","maxLength":20},"query":{"description":"Food name, with brand when known, e.g. 'Chobani plain Greek yogurt' or 'banana'","type":"string","maxLength":100},"fdc_id":{"description":"A USDA FoodData Central id from an earlier result's alternatives","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"amount_g":{"description":"Amount eaten in grams, to scale the values","type":"number","exclusiveMinimum":0,"maximum":5000},"items":{"description":"For a meal: each food or menu item; divux adds them up","maxItems":12,"type":"array","items":{"type":"object","properties":{"name":{"description":"Item name, e.g. 'Chipotle chicken burrito bowl'","type":"string","maxLength":100},"query":{"description":"Food name to look up, with brand when known","type":"string","maxLength":100},"barcode":{"type":"string","maxLength":20},"fdc_id":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"amount_g":{"type":"number","exclusiveMinimum":0,"maximum":5000},"servings":{"description":"How many servings; default 1","type":"number","exclusiveMinimum":0,"maximum":20},"nutrients":{"description":"Per-serving numbers you read on a restaurant's or brand's own nutrition page, instead of a lookup","type":"object","properties":{"kcal":{"type":"number","minimum":0,"maximum":10000},"protein_g":{"type":"number","minimum":0,"maximum":1000},"fat_g":{"type":"number","minimum":0,"maximum":1000},"sat_fat_g":{"type":"number","minimum":0,"maximum":1000},"carbs_g":{"type":"number","minimum":0,"maximum":2000},"sugars_g":{"type":"number","minimum":0,"maximum":2000},"added_sugars_g":{"type":"number","minimum":0,"maximum":2000},"fiber_g":{"type":"number","minimum":0,"maximum":500},"sodium_mg":{"type":"number","minimum":0,"maximum":50000}}}}}},"targets":{"description":"The person's own daily or meal targets, for what's left","type":"object","properties":{"kcal":{"type":"number","exclusiveMinimum":0,"maximum":10000},"protein_g":{"type":"number","exclusiveMinimum":0,"maximum":1000},"carbs_g":{"type":"number","exclusiveMinimum":0,"maximum":2000},"fat_g":{"type":"number","exclusiveMinimum":0,"maximum":1000},"sodium_mg":{"type":"number","exclusiveMinimum":0,"maximum":50000},"sugars_g":{"type":"number","exclusiveMinimum":0,"maximum":2000},"fiber_g":{"type":"number","exclusiveMinimum":0,"maximum":500}}}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_cosmetic":{"post":{"operationId":"check_cosmetic","summary":"Cosmetics: what's in skincare and makeup, and EU rules","description":"What's in a skincare, makeup, hair or body product and what the EU Cosmetics Regulation says about each ingredient, from the European Commission's CosIng annexes: banned (Annex II, with any exception), restricted with the maximum concentration, where it may be used and the required warnings (Annex I","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ingredients":{"description":"The INCI ingredient list, comma separated, e.g. 'Aqua, Glycerin, Niacinamide, Phenoxyethanol'","type":"string","maxLength":4000},"product":{"description":"Product name with brand, e.g. 'CeraVe Moisturizing Cream'","type":"string","maxLength":120},"barcode":{"description":"UPC or EAN on the package","type":"string","maxLength":20}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_pet":{"post":{"operationId":"check_pet","summary":"Pets: pet food recalls and what is toxic to dogs and cats","description":"Two checks for dog and cat owners. (1) Pet food and treat recalls by brand or product, from the FDA's recalls list for animal and veterinary products, newest first, with the reason, the company and the FDA notice link. (2) What a curated list of common foods and plants (chocolate, grapes and raisins","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":120,"description":"A pet food or treat brand or product (e.g. 'Fromm', 'Pedigree wet dog food') or a food or plant name (e.g. 'grapes', 'lily', 'xylitol')"},"species":{"description":"The pet, when known","type":"string","enum":["dog","cat"]}},"required":["query"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_kitchen":{"post":{"operationId":"check_kitchen","summary":"Kitchen: cooking temperatures, storage times, baking math, ratios and swaps","description":"Exact kitchen numbers an AI would otherwise guess, in both units, with the official chart behind each. Topics: (1) temperature: the federal minimum internal temperature for poultry, ground meat, beef, pork, lamb, veal, fish, egg dishes and leftovers in F and C, with rest times, and a comparison with","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"description":"Which kind of answer; inferred from query or the other fields when left out","type":"string","enum":["temperature","storage","baking","ratio","substitute"]},"kind":{"description":"For baking: scale, percent (baker's percentages and hydration) or altitude. For ratio: wet_brine, dry_brine, pickle, cure, coffee or tea","type":"string","enum":["scale","percent","altitude","wet_brine","dry_brine","pickle","cure","coffee","tea"]},"query":{"description":"The question in the person's words, e.g. 'how long does cooked rice keep'","type":"string","maxLength":200},"food":{"description":"The food, tea type or ingredient, e.g. 'chicken', 'salmon', 'buttermilk', 'green tea'","type":"string","maxLength":80},"amount":{"description":"For ratios: the water or liquid (brine, pickle, coffee, tea) or the meat weight (dry brine, cure)","type":"number","exclusiveMinimum":0,"maximum":100000},"unit":{"description":"Unit for amount: g, kg, oz, lb, ml, l, tsp, tbsp, cup or floz","type":"string","maxLength":10},"ingredients":{"description":"For baking scale or percent: the recipe's ingredients with amounts. Weigh flour and water in g, oz or lb for percentages","maxItems":30,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"amount":{"type":"number","exclusiveMinimum":0,"maximum":100000},"unit":{"type":"string","maxLength":10}},"required":["name","amount"]}},"factor":{"description":"Scale factor, e.g. 1.5","type":"number","minimum":0.1,"maximum":20},"from_servings":{"description":"Servings the recipe makes","type":"number","exclusiveMinimum":0,"maximum":1000},"to_servings":{"description":"Servings wanted","type":"number","exclusiveMinimum":0,"maximum":1000},"altitude_ft":{"description":"Altitude in feet","type":"number","minimum":-1000,"maximum":14000},"altitude_m":{"description":"Altitude in metres","type":"number","minimum":-300,"maximum":4300},"avoid":{"description":"Allergens to avoid; swaps that list them are flagged and sorted last","maxItems":5,"type":"array","items":{"type":"string","enum":["egg","dairy","gluten","nuts","soy"]}},"reading_f":{"description":"A thermometer reading in F to compare with the food's minimum","type":"number","minimum":-50,"maximum":600},"reading_c":{"description":"A thermometer reading in C to compare with the food's minimum","type":"number","minimum":-45,"maximum":315}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/send_feedback":{"post":{"operationId":"send_feedback","summary":"Report a problem or idea to Divux","description":"Send Divux a short report: a wrong fact, a tool that failed, a tool that is missing, or an idea. Use it only when the person asks you to report something to Divux, or when a Divux answer was clearly wrong (for example it contradicts the official page it links). Do not use it to rate answers, to send","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"description":"wrong_fact: an answer had a wrong or outdated fact. broken_tool: a tool failed or acted oddly. missing_tool: a tool or data Divux should have. idea: anything else.","type":"string","enum":["wrong_fact","broken_tool","missing_tool","idea"]},"tool":{"description":"The Divux tool involved, by name (e.g. check_food), when there was one","type":"string","maxLength":40},"summary":{"type":"string","minLength":1,"maxLength":300,"description":"What went wrong or what you suggest, in one or two sentences, with no personal details"},"details":{"description":"Optional: what was asked of the tool (in general words), what it returned and what the official source says instead","type":"string","maxLength":1000}},"required":["kind","summary"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_place":{"post":{"operationId":"check_place","summary":"Place: hazards, weather, schools, parks and the night sky","description":"Official facts about a US address or point: flood zone, natural-hazard ratings, weather alerts, air quality, crime rate, drinking water, internet providers, electricity price, home price trends, EV chargers, county health, childcare prices and nearby housing counselors. Use when someone is buying, r","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"description":"US street address with city and state, e.g. '1600 Pennsylvania Ave NW, Washington, DC 20500'","type":"string","maxLength":200},"lat":{"description":"Latitude, when there's no street address (e.g. the center of a ZIP or city)","type":"number","minimum":-90,"maximum":90},"lon":{"description":"Longitude, with lat","type":"number","minimum":-180,"maximum":180},"place":{"description":"Name of the place, for the answer","type":"string","maxLength":80},"park":{"description":"A US national park or site's name or 4-letter NPS code, e.g. 'Yosemite', 'mora'","type":"string","minLength":3,"maxLength":80},"sky":{"description":"true for the night sky at the point: aurora chance, moon, darkness and, on US coasts, tides","type":"boolean"},"schools":{"description":"true for public schools near the address or point, closest first","type":"boolean"},"level":{"description":"School level, with schools","type":"string","enum":["elementary","middle","high"]},"radius_miles":{"description":"School search radius, default 2","type":"number","minimum":0.5,"maximum":15},"limit":{"description":"How many schools","type":"integer","minimum":1,"maximum":15},"college":{"description":"A US college's name, e.g. 'University of Washington', 'Rice University'","type":"string","minLength":3,"maxLength":120},"state":{"description":"Two-letter state to narrow a common college name, e.g. 'WA'","type":"string","maxLength":2},"major":{"description":"A field of study at the college, for what its graduates earn and borrow, e.g. 'nursing'","type":"string","maxLength":60},"compare_to":{"description":"A second US street address, to set next to `address` and list the numbers that differ. Not a ranking.","type":"string","maxLength":200}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_medicine":{"post":{"operationId":"check_medicine","summary":"Medicine: FDA label, recalls, shortages, pharmacy cost","description":"Official facts about a medicine from its brand or generic name (e.g. 'Advil', 'metformin'). In the EU and EEA (send the country): the European Medicines Agency's authorisation, what it's approved for, shortages and safety letters to doctors. In the US: whether it's over the counter or prescription, ","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80,"description":"Brand or generic name, e.g. 'Advil' or 'metformin'"},"with":{"description":"A second medicine the person takes, to look for in both labels","type":"string","maxLength":80},"country":{"description":"Where the person lives; an EU or EEA country uses the European Medicines Agency instead of the FDA","type":"string","maxLength":60}},"required":["name"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_inflation":{"post":{"operationId":"check_inflation","summary":"Money value: inflation math from the official CPI","description":"Exact inflation math for any country: what an amount from one year is worth in another, the total price change, the average yearly rate and the latest inflation rate. The US uses the Bureau of Labor Statistics CPI-U (monthly, back to 1913); other countries use their national consumer price index as ","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","exclusiveMinimum":0,"maximum":1000000000000,"description":"Amount in the country's currency (dollars for the US)"},"from":{"description":"Year (1990), or for the US a month (1990-06), the amount is from","type":"string","maxLength":7},"to":{"description":"Year or month to convert to; defaults to the latest figure","type":"string","maxLength":7},"country":{"description":"Country name or two-letter code; defaults to the United States. Amounts are in that country's currency.","type":"string","maxLength":60}},"required":["amount","from"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_care":{"post":{"operationId":"check_care","summary":"Care: doctors, hospitals and nursing homes","description":"Clinicians: the federal NPI registry (CMS) for a named doctor, nurse practitioner, therapist or other provider (last name, first name, state), or clinicians of a specialty in a city or state: credential, specialty, state license number, practice address and phone, whether the record is active, and w","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"description":"clinician (doctor, nurse practitioner, therapist and others), hospital or nursing_home; clinician when a name or specialty is sent","type":"string","enum":["clinician","hospital","nursing_home"]},"last_name":{"description":"Clinician's last name","type":"string","maxLength":60},"first_name":{"description":"Clinician's first name","type":"string","maxLength":60},"specialty":{"description":"Clinician specialty, e.g. 'pediatrics', 'dermatology', 'family medicine', 'psychologist'","type":"string","maxLength":80},"name":{"description":"Part of a hospital's or nursing home's name, to check one place","type":"string","maxLength":80},"city":{"type":"string","maxLength":60},"state":{"description":"Two-letter state","type":"string","minLength":2,"maxLength":2},"zip":{"description":"Hospitals and nursing homes: 5-digit ZIP code instead of city and state","type":"string","maxLength":10},"limit":{"type":"integer","minimum":1,"maximum":20}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_company":{"post":{"operationId":"check_company","summary":"Company: is a company real, its complaints and its SEC filings","description":"Outside the US (send the country): whether a company is in the global LEI register (GLEIF): its legal name, country, local registry number, whether it's active and its ultimate parent. In the US: the Consumer Financial Protection Bureau's complaint record (counts, top problems, on-time answers, how ","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","minLength":1,"maxLength":80,"description":"Company name or US stock ticker, e.g. 'Capital One', 'Chime', 'NVDA'"},"months":{"description":"How far back to count; default 24","type":"integer","minimum":1,"maximum":120},"country":{"description":"Country where the company is registered or operates; leave out for the US","type":"string","maxLength":60}},"required":["company"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_trials":{"post":{"operationId":"check_trials","summary":"Trials: clinical trials recruiting near you","description":"Clinical trials recruiting now for a condition, from ClinicalTrials.gov: title, phase, sponsor, who can join (age, sex, healthy volunteers), the nearest recruiting site and its distance, and the study page. Send the place's latitude and longitude (you work them out) to search within a radius, and an","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"condition":{"type":"string","minLength":3,"maxLength":120,"description":"Condition, e.g. 'type 1 diabetes', 'early-stage triple negative breast cancer'"},"lat":{"type":"number","minimum":-90,"maximum":90},"lon":{"type":"number","minimum":-180,"maximum":180},"place":{"description":"Name of the place, e.g. 'Boston, MA'. Used to find the place when lat and lon are left out","type":"string","maxLength":80},"radius_miles":{"description":"Default 50","type":"number","minimum":5,"maximum":500},"age":{"type":"integer","minimum":0,"maximum":120},"intervention":{"description":"A drug or treatment to narrow to, e.g. 'pembrolizumab'","type":"string","maxLength":80},"limit":{"type":"integer","minimum":1,"maximum":15}},"required":["condition"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_rates":{"post":{"operationId":"check_rates","summary":"Rates: interest rates now, after inflation","description":"Other countries: the central bank's policy rate (Bank for International Settlements, about 40 central banks, the ECB for euro countries) with the date it last changed and the country's latest yearly inflation. US: today's Treasury yields from the Treasury's daily par yield curve (1 month to 30 years","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"description":"Dollar amount to show interest for","type":"number","exclusiveMinimum":0,"maximum":10000000000},"term":{"description":"Term for the interest example; default 1 year","type":"string","enum":["1 month","3 months","6 months","1 year","2 years","5 years","10 years","30 years"]},"country":{"description":"Country name or two-letter code; defaults to the United States","type":"string","maxLength":60}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_illness":{"post":{"operationId":"check_illness","summary":"Illness: what's going around","description":"What's going around. Any country: outbreaks the World Health Organization reported there in the past 12 months (Disease Outbreak News). A US state, this week, from CDC open data: the state's acute respiratory illness level, wastewater levels for COVID, flu A and RSV at a typical site with the direct","x-openai-isConsequential":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"description":"US state name or two-letter code, e.g. 'WA'","type":"string","minLength":2,"maxLength":30},"county":{"description":"US county name without 'County', e.g. 'King'","type":"string","maxLength":40},"country":{"description":"Any other country, for WHO outbreak reports; leave out for the US","type":"string","maxLength":60}}}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/game_deals":{"post":{"operationId":"game_deals","summary":"Game deals: the lowest price for a PC game","description":"The lowest current price for a PC game across the digital stores Divux tracks (Steam, GOG, Epic Games Store, Humble, Fanatical, Green Man Gaming and more), each store's price and discount, and the lowest price ever seen with its date. Use when someone wants to buy a PC game or asks if it's on sale o","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":2,"maxLength":80,"description":"Game title, e.g. 'Elden Ring'"}},"required":["title"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_wage":{"post":{"operationId":"check_wage","summary":"Wage: what a job pays where you live","description":"What a job pays. In the US: a metro area, state or the whole country, from the Bureau of Labor Statistics' Occupational Employment and Wage Statistics (May 2025, all industries): median yearly pay, the 10th to 90th percentile range and how many people do the job. Canada: live from Statistics Canada,","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"job":{"type":"string","minLength":2,"maxLength":80,"description":"Job title, e.g. 'registered nurse', 'electrician', 'software developer'"},"place":{"description":"US only: city ('Seattle', 'Austin, TX'), state ('WA' or 'Washington'), or leave out for national","type":"string","maxLength":60},"country":{"description":"Country name or two-letter code; defaults to the United States","type":"string","maxLength":60}},"required":["job"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_recalls":{"post":{"operationId":"check_recalls","summary":"Shopper: check recalls","description":"Look up official recalls in the US (default), the UK or Canada. In the US, category 'product' searches CPSC consumer-product recalls by words in the product name (brand plus product type works best, e.g. 'Rowenta vacuum'); 'food_drug' searches FDA food, drug and medical device enforcement reports (e","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"description":"product (CPSC), food_drug (FDA food, drugs and medical devices) or vehicle (NHTSA)","type":"string","enum":["product","food_drug","vehicle"]},"query":{"description":"Product, food, drug or medical device words, for product and food_drug, e.g. 'stroller', 'peanut butter' or 'CPAP'","type":"string","maxLength":80},"make":{"description":"Vehicle make, e.g. 'Honda' (vehicle only)","type":"string","maxLength":40},"model":{"description":"Vehicle model, e.g. 'Civic' (vehicle only)","type":"string","maxLength":40},"year":{"description":"Vehicle model year (vehicle only)","type":"integer","minimum":1950,"maximum":2100},"country":{"description":"Where the person lives or bought it: United States (default), United Kingdom, Canada or any EU/EEA country","type":"string","maxLength":60}},"required":["category"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/check_kids":{"post":{"operationId":"check_kids","summary":"Kids: recalls and safety for baby and child gear","description":"Check what a family owns or is about to buy for a baby or child against official recalls, in one call: cribs, sleepers, strollers, high chairs, toys, furniture (CPSC), infant formula and baby food (FDA), and car seats. Each item comes back with any recalls, what the notice says to do (stop using, re","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"description":"Up to 6 things, brand plus product, one per entry: 'Fisher-Price Rock n Play', 'Similac formula', 'IKEA Malm dresser', 'Graco 4Ever car seat'","minItems":1,"maxItems":6,"type":"array","items":{"type":"string","minLength":2,"maxLength":80}},"ages":{"description":"The children's ages, e.g. 'newborn, 3 years'; used only to decide whether safe-sleep guidance applies","type":"string","maxLength":80},"country":{"description":"Where the family lives: United States (default), United Kingdom, Canada or an EU/EEA country","type":"string","maxLength":60}},"required":["items"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}},"/api/v1/tools/find_energy_star":{"post":{"operationId":"find_energy_star","summary":"Shopper: find ENERGY STAR models","description":"Check whether an appliance model is ENERGY STAR certified, or list certified models (most efficient first), from the EPA's official data. Categories: heat pumps, heat pump water heaters, clothes washers, clothes dryers, refrigerators, dishwashers. Use this when someone asks if a model is ENERGY STAR","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"description":"Appliance category","type":"string","enum":["heat_pump","heat_pump_water_heater","clothes_washer","clothes_dryer","refrigerator","dishwasher"]},"brand":{"description":"Brand to filter by, e.g. 'Rheem'","type":"string","maxLength":40},"model":{"description":"Model number or part of it, to check certification","type":"string","maxLength":40},"most_efficient_only":{"default":false,"description":"Only models meeting ENERGY STAR Most Efficient criteria (not available for water heaters)","type":"boolean"}},"required":["category"]}}}},"responses":{"200":{"description":"The answer: text to say, plus the same data as JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"text":{"type":"string"},"data":{"type":"object"}}}}}}}}}}}