{
    "openapi": "3.1.0",
    "info": {
        "title": "San Antonio data center zoning envelope API",
        "version": "1.0.0",
        "description": "How much land inside the San Antonio city limits would still be eligible for a data center under the Development Services staff proposal, citywide and by council district. THE RULES SCORED HERE HAVE NOT BEEN ADOPTED: they are a proposal in stakeholder feedback, the Zoning Commission finalises in September 2026 and Council votes in October. Every response carries the criteria and the as_of date for that reason. Measured on a 100-foot raster over the City own GIS layers; it answers \"roughly how much land\", never \"is this address eligible\".",
        "contact": {
            "url": "https:\/\/brandshyp.org\/san-antonio-data-center-zoning\/"
        },
        "license": {
            "name": "Public record (City of San Antonio open GIS)",
            "url": "https:\/\/brandshyp.org\/san-antonio-data-center-zoning\/"
        }
    },
    "servers": [
        {
            "url": "https:\/\/brandshyp.org\/api\/v1"
        }
    ],
    "security": [],
    "paths": {
        "\/dc-zoning": {
            "get": {
                "operationId": "getDcZoningRoot",
                "summary": "Discovery document",
                "description": "Endpoint list plus the headline acreage.",
                "responses": {
                    "200": {
                        "description": "Success. Every JSON body carries criteria (with as_of and the not-adopted status) and caveats.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dc-zoning\/envelope": {
            "get": {
                "operationId": "getDcZoningEnvelope",
                "summary": "Citywide totals",
                "description": "Acres allowed today, after each rule, and at the proposed setback. The lost_* figures overlap and must never be summed.",
                "responses": {
                    "200": {
                        "description": "Success. Every JSON body carries criteria (with as_of and the not-adopted status) and caveats.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dc-zoning\/districts": {
            "get": {
                "operationId": "getDcZoningDistricts",
                "summary": "By council district",
                "description": "The same calculation for each of the ten council districts.",
                "responses": {
                    "200": {
                        "description": "Success. Every JSON body carries criteria (with as_of and the not-adopted status) and caveats.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dc-zoning\/criteria": {
            "get": {
                "operationId": "getDcZoningCriteria",
                "summary": "The rule that was scored",
                "description": "The complete versioned criteria: permitted districts, protected uses, setback, and the assumptions the published proposal does not settle.",
                "responses": {
                    "200": {
                        "description": "Success. Every JSON body carries criteria (with as_of and the not-adopted status) and caveats.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dc-zoning\/sweep": {
            "get": {
                "operationId": "getDcZoningSweep",
                "summary": "Eligible acres by setback distance",
                "description": "The answer at 300, 500, 750 and 1000 feet, because the setback is the number actually being negotiated.",
                "responses": {
                    "200": {
                        "description": "Success. Every JSON body carries criteria (with as_of and the not-adopted status) and caveats.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dc-zoning\/quality": {
            "get": {
                "operationId": "getDcZoningQuality",
                "summary": "What this cannot tell you",
                "description": "Resolution, the unpublished measurement basis, and why there is deliberately no parcel lookup.",
                "responses": {
                    "200": {
                        "description": "Success. Every JSON body carries criteria (with as_of and the not-adopted status) and caveats.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dc-zoning\/envelope.csv": {
            "get": {
                "operationId": "getDcZoningCsv",
                "summary": "Per-district table as CSV",
                "description": "One row per council district plus an ALL row, with the full setback sweep. Header comments carry the not-adopted status.",
                "responses": {
                    "200": {
                        "description": "CSV",
                        "content": {
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Unknown route, wrong method, or the dataset is unavailable.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}