{"openapi": "3.1.0", "info": {"title": "EstateX Cenova Nemovitosti API", "version": "1.0.0", "description": "Produkční API pro odhad ceny nemovitosti z adresy nebo URL inzerátu."}, "servers": [{"url": "https://shadow.czechai.io"}], "paths": {"/v1/cenova/estimate": {"get": {"summary": "Odhad ceny z univerzálního inputu", "parameters": [{"name": "input", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Adresa nebo URL inzerátu."}, {"name": "type", "in": "query", "required": false, "schema": {"type": "string", "enum": ["byt", "dum", "pozemek", "komercni"], "default": "byt"}}, {"name": "area", "in": "query", "required": false, "schema": {"type": "number", "default": 65}, "description": "Plocha v m2."}, {"name": "dispozice", "in": "query", "required": false, "schema": {"type": "string"}, "description": "Např. 2, 2+kk, 3+1."}, {"name": "rent", "in": "query", "required": false, "schema": {"type": "number"}, "description": "Volitelný měsíční nájem pro investiční metriku."}, {"name": "ltv", "in": "query", "required": false, "schema": {"type": "number", "default": 80}, "description": "Loan-to-value v procentech."}, {"name": "interest_rate", "in": "query", "required": false, "schema": {"type": "number", "default": 5.49}, "description": "Roční úrok hypotéky v procentech."}], "responses": {"200": {"description": "Odhad včetně valuation, intervalu, confidence a srovnatelných nabídek."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}, "post": {"summary": "Odhad ceny přes JSON tělo", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["input"], "properties": {"input": {"type": "string", "examples": ["Národní 16, Praha 1", "https://www.sreality.cz/..."]}, "type": {"type": "string", "enum": ["byt", "dum", "pozemek", "komercni"], "default": "byt"}, "area": {"type": "number", "default": 65}, "dispozice": {"type": "string", "examples": ["2", "2+kk", "3+1"]}, "rent": {"type": "number", "description": "Volitelný měsíční nájem."}, "ltv": {"type": "number", "default": 80}, "interest_rate": {"type": "number", "default": 5.49}, "mortgage_years": {"type": "number", "default": 30}}}}}}, "responses": {"200": {"description": "Odhad včetně valuation, intervalu, confidence a srovnatelných nabídek."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}}, "/v1/cenova/adjudicate": {"get": {"summary": "Samostatný verdikt oceňovacího arbitra", "description": "Vrací kompaktní rozhodnutí APPROVE, CONFIRM, REVIEW nebo NEGATE nad produkčním odhadem.", "parameters": [{"name": "input", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Adresa nebo URL inzerátu."}, {"name": "type", "in": "query", "required": false, "schema": {"type": "string", "enum": ["byt", "dum", "pozemek", "komercni"], "default": "byt"}}, {"name": "area", "in": "query", "required": false, "schema": {"type": "number", "default": 65}, "description": "Plocha v m2."}, {"name": "dispozice", "in": "query", "required": false, "schema": {"type": "string"}, "description": "Např. 2, 2+kk, 3+1."}, {"name": "rent", "in": "query", "required": false, "schema": {"type": "number"}, "description": "Volitelný měsíční nájem pro investiční metriku."}, {"name": "ltv", "in": "query", "required": false, "schema": {"type": "number", "default": 80}, "description": "Loan-to-value v procentech."}, {"name": "interest_rate", "in": "query", "required": false, "schema": {"type": "number", "default": 5.49}, "description": "Roční úrok hypotéky v procentech."}], "responses": {"200": {"description": "Kompaktní verdikt včetně ceny, intervalu, confidence, důvodů a varování."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}, "post": {"summary": "Samostatný verdikt arbitra přes JSON tělo", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["input"], "properties": {"input": {"type": "string", "examples": ["Národní 16, Praha 1", "https://www.sreality.cz/..."]}, "type": {"type": "string", "enum": ["byt", "dum", "pozemek", "komercni"], "default": "byt"}, "area": {"type": "number", "default": 65}, "dispozice": {"type": "string", "examples": ["2", "2+kk", "3+1"]}, "rent": {"type": "number", "description": "Volitelný měsíční nájem."}, "ltv": {"type": "number", "default": 80}, "interest_rate": {"type": "number", "default": 5.49}, "mortgage_years": {"type": "number", "default": 30}}}}}}, "responses": {"200": {"description": "Kompaktní verdikt včetně ceny, intervalu, confidence, důvodů a varování."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}}, "/v1/cenova/council": {"get": {"summary": "EstateX Valuation Council", "description": "Vrací finální rozhodnutí nad produkčním arbitrem a nezávislou Direct CMA kontrolou.", "parameters": [{"name": "input", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Adresa nebo URL inzerátu."}, {"name": "type", "in": "query", "required": false, "schema": {"type": "string", "enum": ["byt", "dum", "pozemek", "komercni"], "default": "byt"}}, {"name": "area", "in": "query", "required": false, "schema": {"type": "number", "default": 65}, "description": "Plocha v m2."}, {"name": "dispozice", "in": "query", "required": false, "schema": {"type": "string"}, "description": "Např. 2, 2+kk, 3+1."}, {"name": "rent", "in": "query", "required": false, "schema": {"type": "number"}, "description": "Volitelný měsíční nájem pro investiční metriku."}, {"name": "ltv", "in": "query", "required": false, "schema": {"type": "number", "default": 80}, "description": "Loan-to-value v procentech."}, {"name": "interest_rate", "in": "query", "required": false, "schema": {"type": "number", "default": 5.49}, "description": "Roční úrok hypotéky v procentech."}], "responses": {"200": {"description": "Council verdikt včetně finální ceny, produkčního odhadu a Direct CMA kontroly."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}, "post": {"summary": "EstateX Valuation Council přes JSON tělo", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["input"], "properties": {"input": {"type": "string", "examples": ["Národní 16, Praha 1", "https://www.sreality.cz/..."]}, "type": {"type": "string", "enum": ["byt", "dum", "pozemek", "komercni"], "default": "byt"}, "area": {"type": "number", "default": 65}, "dispozice": {"type": "string", "examples": ["2", "2+kk", "3+1"]}, "rent": {"type": "number", "description": "Volitelný měsíční nájem."}, "ltv": {"type": "number", "default": 80}, "interest_rate": {"type": "number", "default": 5.49}, "mortgage_years": {"type": "number", "default": 30}}}}}}, "responses": {"200": {"description": "Council verdikt včetně finální ceny, produkčního odhadu a Direct CMA kontroly."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}}, "/v1/cenova/report": {"get": {"summary": "Tisknutelný EstateX HTML report", "description": "Vytvoří klientský HTML report nad Council oceněním. V prohlížeči lze uložit nebo tisknout do PDF.", "parameters": [{"name": "input", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Adresa nebo URL inzerátu."}, {"name": "type", "in": "query", "required": false, "schema": {"type": "string", "enum": ["byt", "dum", "pozemek", "komercni"], "default": "byt"}}, {"name": "area", "in": "query", "required": false, "schema": {"type": "number", "default": 65}}, {"name": "dispozice", "in": "query", "required": false, "schema": {"type": "string"}}], "responses": {"200": {"description": "HTML report."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}, "post": {"summary": "Tisknutelný EstateX HTML report přes JSON tělo", "responses": {"200": {"description": "HTML report."}, "400": {"description": "Neplatný vstup."}, "429": {"description": "Rate-limit."}}}}, "/v1/cenova/admin/stats": {"get": {"summary": "Zamčené admin statistiky", "parameters": [{"name": "X-Admin-Token", "in": "header", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Souhrn použití API."}, "401": {"description": "Chybí admin token."}}}}}}