{
    "openapi": "3.1.0",
    "info": {
        "title": "MojDomček Public Catalogue API",
        "version": "1.0.0",
        "description": "Read-only catalogue of published houses. No authentication. Prices include an explicit price basis and VAT flag. Drafts and personal data are excluded."
    },
    "servers": [
        {
            "url": "https://mojdomcek.com/"
        }
    ],
    "paths": {
        "/api/catalog": {
            "get": {
                "operationId": "getPublishedHouseCatalogue",
                "summary": "List all published houses, variants and prices",
                "responses": {
                    "200": {
                        "description": "Current public catalogue",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "houses",
                                        "generatedAt"
                                    ],
                                    "properties": {
                                        "generatedAt": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "pricingNote": {
                                            "type": "string"
                                        },
                                        "houses": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "required": [
                                                    "id",
                                                    "name",
                                                    "url",
                                                    "offers"
                                                ],
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "url": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "description": {
                                                        "type": "string"
                                                    },
                                                    "offers": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "price": {
                                                                    "type": [
                                                                        "number",
                                                                        "null"
                                                                    ]
                                                                },
                                                                "currency": {
                                                                    "type": "string"
                                                                },
                                                                "priceBasis": {
                                                                    "type": "string"
                                                                },
                                                                "vatIncluded": {
                                                                    "type": [
                                                                        "boolean",
                                                                        "null"
                                                                    ]
                                                                },
                                                                "builtAreaM2": {
                                                                    "type": [
                                                                        "number",
                                                                        "null"
                                                                    ]
                                                                },
                                                                "usableAreaM2": {
                                                                    "type": [
                                                                        "number",
                                                                        "null"
                                                                    ]
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}