{"tools":[{"type":"function","function":{"name":"convert","description":"Free. Convert a finite number between two known unit codes, including mpg, L/100km, kWh/100km, W/m², flow, power, and gas mark. Messy text returns use_parse. Call paid parse instead.","parameters":{"type":"object","properties":{"value":{"type":"number","description":"Finite number. Messy text belongs on parse."},"from":{"type":"string","description":"Source unit code from GET /units."},"to":{"type":"string","description":"Target unit code from GET /units."}},"required":["value","from","to"],"additionalProperties":false}}},{"type":"function","function":{"name":"units","description":"Free. List unit codes, aliases, dimension, and definition id.","parameters":{"type":"object","properties":{},"additionalProperties":false}}},{"type":"function","function":{"name":"parse","description":"Paid $0.002. Interpret messy quantity text, including number words such as two dozen and gas mark 4. Unknown amounts are null with a reason. Does not invent a number.","parameters":{"type":"object","properties":{"text":{"type":"string","description":"Messy quantity text, including number words such as two dozen."},"to":{"description":"Optional target unit code.","type":"string"},"system":{"type":"string","enum":["us","imperial","si"],"description":"us, imperial, or si. Omit when the unit is unambiguous."},"holidays":{"description":"YYYY-MM-DD holiday dates.","type":"array","items":{"type":"string"}},"referenceDate":{"description":"YYYY-MM-DD when the text does not name a date.","type":"string"}},"required":["text"],"additionalProperties":false}}},{"type":"function","function":{"name":"batch","description":"Paid $0.01. Parse up to 100 messy texts. One bad row does not fail the batch.","parameters":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"to":{"type":"string"},"system":{"type":"string","enum":["us","imperial","si"],"description":"us, imperial, or si. Omit when the unit is unambiguous."}},"required":["text"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}}},{"type":"function","function":{"name":"receipt","description":"Paid $0.001. Canonical audit JSON and sha256 of a previous Qty result. The hash ignores the timestamp.","parameters":{"type":"object","properties":{"payload":{"description":"A previous Qty result. Extra fields are hashed.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"additionalProperties":false}}},{"type":"function","function":{"name":"compare-prices","description":"Paid $0.002. Normalise unit prices and say which offer is cheaper. Currency is a label only.","parameters":{"type":"object","properties":{"offers":{"type":"array","items":{"type":"string"}},"text":{"description":"Alternative to offers. Split on vs.","type":"string"}},"additionalProperties":false}}},{"type":"function","function":{"name":"scale-recipe","description":"Paid $0.002. Scale ingredient amounts by servings or a factor. Unlisted densities stay null.","parameters":{"type":"object","properties":{"fromServings":{"type":"number"},"toServings":{"type":"number"},"factor":{"type":"number"},"ingredients":{"type":"array","items":{"type":"string"}},"text":{"type":"string"},"system":{"type":"string","enum":["us","imperial","si"],"description":"us, imperial, or si. Omit when the unit is unambiguous."},"to":{"type":"string"}},"additionalProperties":false}}},{"type":"function","function":{"name":"size","description":"Paid $0.002. Convert shoe and clothing sizes using Qty size table v1. Ambiguous category returns null.","parameters":{"type":"object","properties":{"text":{"type":"string"},"category":{"type":"string","enum":["shoe","dress","chest","waist","bra"]},"audience":{"type":"string","enum":["men","women","kids"]},"from":{"type":"string"},"to":{"type":"string"},"size":{"type":["number","string"]},"cup":{"type":"string"}},"additionalProperties":false}}},{"type":"function","function":{"name":"date","description":"Paid $0.002. ISO-8601 durations, N days from a date, working days, and DST-aware IANA time zone conversion. Qty never reads the current clock.","parameters":{"type":"object","properties":{"text":{"type":"string","description":"ISO-8601 duration, N days from YYYY-MM-DD, working days, or a wall time."},"holidays":{"description":"YYYY-MM-DD dates skipped by working-day maths.","type":"array","items":{"type":"string"}},"referenceDate":{"description":"YYYY-MM-DD used when the text does not name a date.","type":"string"},"timeZone":{"description":"IANA zone of the wall time, such as America/New_York.","type":"string"},"toTimeZone":{"description":"IANA zone to convert into, such as Europe/London.","type":"string"}},"required":["text"],"additionalProperties":false}}},{"type":"function","function":{"name":"estimate","description":"Paid $0.003. Paint, tiles, concrete, or gravel. Coverage assumptions and the waste percent are stated on every result.","parameters":{"type":"object","properties":{"kind":{"type":"string","enum":["paint","tiles","concrete","gravel"]},"length":{"type":"number"},"width":{"type":"number"},"depth":{"type":"number"},"area":{"description":"Area when length and width are omitted. unit m means square metres.","type":"number"},"unit":{"description":"Length unit. Defaults to m. Area units may include 2 or ².","type":"string"},"coats":{"description":"Paint coats. Defaults to 2.","type":"number"},"wastePercent":{"description":"Extra material percent. Defaults to 10.","type":"number"},"tileLength":{"description":"Tile length. Defaults to 0.30 m.","type":"number"},"tileWidth":{"description":"Tile width. Defaults to 0.30 m.","type":"number"}},"required":["kind"],"additionalProperties":false}}}]}