{
    "openapi": "3.1.0",
    "info": {
        "title": "San Antonio 311 response times API",
        "version": "1.0.0",
        "description": "Every 311 service request the City of San Antonio publishes, measured against the City\u2019s OWN deadline (SLADate) and its OWN late flag (LateYesNo), by request type and council district. Deadlines differ by request type from same-day to about three months, so a late rate is only meaningful beside its sla_days, and request types must never be aggregated into categories. The City republishes a rolling twelve months; older months exist here only because this archive keeps them.",
        "contact": {
            "url": "https:\/\/brandshyp.org\/san-antonio-311-response-times\/"
        },
        "license": {
            "name": "Public record (City of San Antonio)",
            "url": "https:\/\/brandshyp.org\/san-antonio-311-response-times\/"
        }
    },
    "servers": [
        {
            "url": "https:\/\/brandshyp.org\/api\/v1"
        }
    ],
    "security": [],
    "paths": {
        "\/service-requests": {
            "get": {
                "operationId": "getSrRoot",
                "summary": "Discovery document",
                "description": "Endpoint list plus the headline late rate.",
                "responses": {
                    "200": {
                        "description": "Success. Every body carries deadline_note, caveats and the archive window.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/service-requests\/types": {
            "get": {
                "operationId": "getSrTypes",
                "summary": "By request type",
                "description": "One row per request type with its own deadline. This is the only valid grain for comparison.",
                "responses": {
                    "200": {
                        "description": "Success. Every body carries deadline_note, caveats and the archive window.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/service-requests\/districts": {
            "get": {
                "operationId": "getSrDistricts",
                "summary": "By council district",
                "description": "Late rate per council district. District 0 is not a council district.",
                "responses": {
                    "200": {
                        "description": "Success. Every body carries deadline_note, caveats and the archive window.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/service-requests\/months": {
            "get": {
                "operationId": "getSrMonths",
                "summary": "By month",
                "description": "Monthly series. Use only rows where complete AND mature are both true.",
                "responses": {
                    "200": {
                        "description": "Success. Every body carries deadline_note, caveats and the archive window.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/service-requests\/quality": {
            "get": {
                "operationId": "getSrQuality",
                "summary": "What this cannot tell you",
                "description": "Sentinel rows, the rolling-window limit, and why there is no category ranking and no address lookup.",
                "responses": {
                    "200": {
                        "description": "Success. Every body carries deadline_note, caveats and the archive window.",
                        "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/service-requests\/types.csv": {
            "get": {
                "operationId": "getSrCsv",
                "summary": "Request types as CSV",
                "description": "One row per request type, with its deadline beside its late rate.",
                "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"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}