Raw schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "Optional identifier of what is being priced."
},
"product_type": {
"type": "string",
"enum": [
"saas",
"ecommerce",
"marketplace",
"digital",
"api",
"custom"
],
"description": "Optional category. Defaults to \"custom\"."
},
"current_price": {
"type": "number",
"minimum": 0,
"description": "The current or reference price. Optional: functions that price relative to an incumbent need it, but lastprice/cost-plus prices from unit_cost instead."
},
"unit_cost": {
"type": "number",
"minimum": 0,
"description": "What the work costs you. It lets lastprice/cost-plus price with no current_price, which is the usual case when pricing a task you are about to run. Routing picks a function that can use it; to require cost-plus, pass its UUID from list_functions as function_id."
},
"target_margin_pct": {
"type": "number",
"minimum": 0,
"maximum": 95,
"description": "Margin on price for cost-plus, not markup on cost: price = unit_cost / (1 - margin). Defaults to 30."
},
"min_price": {
"type": "number",
"minimum": 0,
"description": "Optional minimum acceptable price. A competitive offer needs this or a declared unit_cost and target_margin_pct."
},
"max_price": {
"type": "number",
"minimum": 0,
"description": "Optional maximum acceptable price."
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "Three-letter ISO currency code, e.g. USD."
},
"customer_segment": {
"type": "string",
"description": "Optional segment, e.g. enterprise."
},
"geo": {
"type": "string",
"description": "Optional geography hint, e.g. US."
},
"routing_preference": {
"type": "string",
"enum": [
"cheapest",
"fastest",
"explicit",
"round_robin",
"weighted",
"policy",
"default"
],
"description": "How to route across pricing functions. Defaults to \"default\"."
},
"function_id": {
"type": "string",
"format": "uuid",
"description": "Optional explicit pricing function UUID to use."
},
"include_explanation": {
"type": "boolean",
"description": "If true, ask for an explanation and confidence with the price."
},
"metadata": {
"type": "object",
"description": "Optional context. For competitive pricing: competitor_price, competitor_currency and competitive_action (match or undercut); undercut requires undercut_pct. Confirm product comparability before calling."
}
},
"required": [
"currency"
]
}