{"openapi":"3.1.0","info":{"title":"Hydro-HUB — UNIPLU Brasil","description":"Consulta de estações e precipitação dos Parquets UNIPLU por UF e ano. Datas são retornadas como armazenadas na fonte; consulte o campo UTC da estação para interpretar o horário.","version":"1.0.0"},"paths":{"/api/health":{"get":{"tags":["Disponibilidade"],"summary":"Health","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/coverage":{"get":{"tags":["Cobertura"],"summary":"Coverage","operationId":"coverage_api_coverage_get","parameters":[{"name":"uf","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"null"}],"title":"Uf"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stations":{"get":{"tags":["Estações"],"summary":"Stations","operationId":"stations_api_stations_get","parameters":[{"name":"uf","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}$","description":"Sigla da UF, por exemplo PB","title":"Uf"},"description":"Sigla da UF, por exemplo PB"},{"name":"ano","in":"query","required":true,"schema":{"type":"integer","maximum":2100,"minimum":1800,"title":"Ano"}},{"name":"gauge_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}],"title":"Gauge Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/precipitation":{"get":{"tags":["Precipitação"],"summary":"Precipitation","operationId":"precipitation_api_precipitation_get","parameters":[{"name":"uf","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}$","description":"Sigla da UF, por exemplo PB","title":"Uf"},"description":"Sigla da UF, por exemplo PB"},{"name":"ano","in":"query","required":true,"schema":{"type":"integer","maximum":2100,"minimum":1800,"title":"Ano"}},{"name":"gauge_code","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"Código retornado por /api/stations","title":"Gauge Code"},"description":"Código retornado por /api/stations"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":1000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/precipitation/series":{"get":{"tags":["Precipitação"],"summary":"Série da estação em todos os anos","description":"JSON: consulta todos os anos com paginação. CSV: exporta todos os registros do período, sem aplicar limit ou offset. Sem start/end, inclui todo o histórico disponível na UF. Não preenche lacunas nem altera os valores da fonte.","operationId":"precipitation_series_api_precipitation_series_get","parameters":[{"name":"uf","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}$","description":"Sigla da UF, por exemplo PB","title":"Uf"},"description":"Sigla da UF, por exemplo PB"},{"name":"gauge_code","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"title":"Gauge Code"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":1000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":0,"default":0,"title":"Offset"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","csv"],"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stations/area":{"get":{"tags":["Estações"],"summary":"Estações em uma área e período","description":"Retângulo geográfico em longitude/latitude (graus). Inclui metadados das estações nos anos do período; não garante medições em cada dia. A posição é a registrada em cada ano na fonte.","operationId":"stations_area_api_stations_area_get","parameters":[{"name":"west","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"West"}},{"name":"south","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"South"}},{"name":"east","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"East"}},{"name":"north","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"North"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"End"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":1000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/precipitation/area":{"get":{"tags":["Precipitação"],"summary":"Precipitação de estações em uma área e período","description":"Seleciona as estações por posição nos metadados de cada ano. JSON paginado; CSV contém todos os registros do período e ignora limit/offset. Não agrega nem preenche lacunas. Datas sem fuso seguem a fonte.","operationId":"precipitation_area_api_precipitation_area_get","parameters":[{"name":"west","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"West"}},{"name":"south","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"South"}},{"name":"east","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"East"}},{"name":"north","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"North"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"End"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":1000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":1000000,"minimum":0,"default":0,"title":"Offset"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","csv"],"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}