{"openapi":"3.1.0","info":{"title":"GroundTruth + GruntPay","version":"1.0.0","description":"Independent two-model AI reads of subsurface scans (GroundTruth) and voice-first itemized bids for the trades (GruntPay)."},"servers":[{"url":"https://gtfi.ai"}],"paths":{"/api/agent/scan":{"post":{"operationId":"read_scan","summary":"Two independent AI models read a scan and flag the dangerous call","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"type":"string"},"discipline":{"type":"string"},"field_note":{"type":"string"}},"required":["image_url"]}}}},"responses":{"200":{"description":"Targets, hazard classes and the QA flag. Advisory only."}}}},"/api/agent/estimate":{"post":{"operationId":"draft_estimate","summary":"Turn a plain-English job description into an itemized bid","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"job_description":{"type":"string"},"trade":{"type":"string"}},"required":["job_description"]}}}},"responses":{"200":{"description":"Line items, total, assumptions."}}}},"/api/agent/pricing":{"get":{"operationId":"get_pricing","summary":"Plans and prices for both products","responses":{"200":{"description":"Pricing."}}}}}}