{"openapi":"3.1.0","info":{"title":"SANTISMM Labs API","version":"1.2.0","description":"Metadata for every SANTISMM Lab plus deterministic, versioned execution endpoints for the Agent Economics, Evaluation Sample Size and Human Supervision Capacity calculators.","license":{"name":"CC BY 4.0","identifier":"CC-BY-4.0","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://labs.santismm.com"}],"paths":{"/api/labs":{"get":{"operationId":"listLabs","summary":"List every lab","responses":{"200":{"description":"Lab catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabList"}}}}}}},"/api/labs/{slug}":{"get":{"operationId":"getLab","summary":"Get one lab definition","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Lab definition","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lab"}}}},"404":{"description":"Unknown lab"}}}},"/api/calculate/agent-economics":{"post":{"operationId":"calculateAgentEconomics","summary":"Calculate monthly agent cost, cost per verified outcome, savings, ROI and break-even success rate","parameters":[{"name":"locale","in":"query","required":false,"description":"Language for interpretations, assumptions and warnings. Defaults to Spanish for direct API compatibility.","schema":{"type":"string","enum":["en","es","pt"],"default":"es"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentEconomicsInputs"}}}},"responses":{"200":{"description":"Deterministic calculation with assumptions, units, warnings and citation URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentEconomicsCalculation"}}}},"400":{"description":"Malformed JSON or invalid calculator inputs."},"413":{"description":"Request body exceeds 16 KiB."}}}},"/api/calculate/evaluation-sample-size":{"post":{"operationId":"calculateEvaluationSampleSize","summary":"Calculate evaluation samples for failure detection and rate estimation","parameters":[{"name":"locale","in":"query","required":false,"description":"Language for interpretations, assumptions and warnings. Defaults to Spanish for direct API compatibility.","schema":{"type":"string","enum":["en","es","pt"],"default":"es"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationSampleSizeInputs"}}}},"responses":{"200":{"description":"Deterministic calculation with assumptions, units, warnings and citation URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationSampleSizeCalculation"}}}},"400":{"description":"Malformed JSON or invalid calculator inputs."},"413":{"description":"Request body exceeds 16 KiB."}}}},"/api/calculate/human-supervision-capacity":{"post":{"operationId":"calculateHumanSupervisionCapacity","summary":"Calculate review workload, required FTE, headroom, backlog and sustainable volume","parameters":[{"name":"locale","in":"query","required":false,"description":"Language for interpretations, assumptions and warnings. Defaults to Spanish for direct API compatibility.","schema":{"type":"string","enum":["en","es","pt"],"default":"es"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HumanSupervisionCapacityInputs"}}}},"responses":{"200":{"description":"Deterministic calculation with assumptions, units, warnings and citation URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HumanSupervisionCapacityCalculation"}}}},"400":{"description":"Malformed JSON or invalid calculator inputs."},"413":{"description":"Request body exceeds 16 KiB."}}}}},"components":{"schemas":{"RelatedContent":{"type":"object","required":["title","url","relationship"],"properties":{"title":{"type":"string"},"url":{"type":"string","format":"uri"},"relationship":{"type":"string"}}},"Lab":{"type":"object","required":["slug","kind","title","description","inputs","outputs","assumptions","canonical_url","api_url"],"properties":{"slug":{"type":"string"},"kind":{"enum":["calculator","converter","experiment","educational-game"]},"label":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"inputs":{"type":"array","items":{"type":"string"}},"outputs":{"type":"array","items":{"type":"string"}},"formulas":{"type":"array","items":{"type":"string"}},"assumptions":{"type":"array","items":{"type":"string"}},"version":{"type":"string"},"updated":{"type":"string","format":"date"},"canonical_url":{"type":"string","format":"uri"},"api_url":{"type":"string","format":"uri"},"calculation_url":{"type":"string","format":"uri"},"related_content":{"type":"array","items":{"$ref":"#/components/schemas/RelatedContent"}}}},"LabList":{"type":"object","required":["count","results"],"properties":{"count":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Lab"}}}},"AgentEconomicsInputs":{"type":"object","additionalProperties":false,"required":["monthlyVolume","manualMinutes","hourlyCost","inputTokens","outputTokens","inputPrice","outputPrice","toolCost","retryRate","successRate","reviewRate","reviewMinutes","reworkMinutes"],"properties":{"monthlyVolume":{"type":"number","minimum":0},"manualMinutes":{"type":"number","minimum":0},"hourlyCost":{"type":"number","minimum":0},"inputTokens":{"type":"number","minimum":0},"outputTokens":{"type":"number","minimum":0},"inputPrice":{"type":"number","minimum":0},"outputPrice":{"type":"number","minimum":0},"toolCost":{"type":"number","minimum":0},"retryRate":{"type":"number","minimum":0,"maximum":500},"successRate":{"type":"number","minimum":1,"maximum":100},"reviewRate":{"type":"number","minimum":0,"maximum":100},"reviewMinutes":{"type":"number","minimum":0},"reworkMinutes":{"type":"number","minimum":0}}},"EvaluationSampleSizeInputs":{"type":"object","additionalProperties":false,"required":["failureRate","confidence","margin","population"],"properties":{"failureRate":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":100},"confidence":{"type":"number","enum":[90,95,99]},"margin":{"type":"number","minimum":0.1,"maximum":50},"population":{"type":"number","minimum":1}}},"HumanSupervisionCapacityInputs":{"type":"object","additionalProperties":false,"required":["volume","sample","reviewMinutes","escalationRate","escalationMinutes","workdays","hoursDay","utilization","reviewers","hourlyCost"],"properties":{"volume":{"type":"number","minimum":0},"sample":{"type":"number","minimum":0,"maximum":100},"reviewMinutes":{"type":"number","minimum":0},"escalationRate":{"type":"number","minimum":0,"maximum":100},"escalationMinutes":{"type":"number","minimum":0},"workdays":{"type":"number","minimum":1,"maximum":31},"hoursDay":{"type":"number","minimum":0.1,"maximum":24},"utilization":{"type":"number","minimum":1,"maximum":100},"reviewers":{"type":"number","minimum":0.1},"hourlyCost":{"type":"number","minimum":0}}},"CalculationBase":{"type":"object","required":["schema_version","source","language","slug","version","canonical_url","api_url","methodology_url","inputs","results","units","interpretation","assumptions","formulas","warnings","license"],"properties":{"schema_version":{"const":"1.0"},"source":{"const":"SANTISMM Labs"},"language":{"type":"string","enum":["en","es","pt"]},"slug":{"type":"string"},"version":{"type":"string"},"updated":{"type":"string","format":"date"},"canonical_url":{"type":"string","format":"uri"},"api_url":{"type":"string","format":"uri"},"methodology_url":{"type":"string","format":"uri"},"inputs":{"type":"object"},"results":{"type":"object"},"units":{"type":"object","additionalProperties":{"type":"string"}},"interpretation":{"type":"string"},"assumptions":{"type":"array","items":{"type":"string"}},"formulas":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}},"license":{"type":"object"}}},"AgentEconomicsCalculation":{"allOf":[{"$ref":"#/components/schemas/CalculationBase"},{"type":"object","properties":{"inputs":{"$ref":"#/components/schemas/AgentEconomicsInputs"}}}]},"EvaluationSampleSizeCalculation":{"allOf":[{"$ref":"#/components/schemas/CalculationBase"},{"type":"object","properties":{"inputs":{"$ref":"#/components/schemas/EvaluationSampleSizeInputs"}}}]},"HumanSupervisionCapacityCalculation":{"allOf":[{"$ref":"#/components/schemas/CalculationBase"},{"type":"object","properties":{"inputs":{"$ref":"#/components/schemas/HumanSupervisionCapacityInputs"}}}]}}}}