{"openapi":"3.1.0","info":{"title":"Termoclina API","description":"Plataforma de vigilancia climática · Comunidad Valenciana y España","version":"0.1.0"},"paths":{"/api/v1/health":{"get":{"tags":["health"],"summary":"Health","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Api V1 Health Get"}}}}}}},"/api/v1/series":{"get":{"tags":["series"],"summary":"List Series","description":"Devuelve la serie agregada para una región y variable.","operationId":"list_series_api_v1_series_get","parameters":[{"name":"region","in":"query","required":false,"schema":{"type":"string","description":"Code de región (p.ej. 'cv')","default":"cv","title":"Region"},"description":"Code de región (p.ej. 'cv')"},{"name":"variable","in":"query","required":false,"schema":{"enum":["tmed","tmax","tmin"],"type":"string","default":"tmed","title":"Variable"}},{"name":"freq","in":"query","required":false,"schema":{"enum":["daily","monthly","annual"],"type":"string","default":"annual","title":"Freq"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}},{"name":"method","in":"query","required":false,"schema":{"type":"string","default":"aemet_v0_xlsx","title":"Method"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Series Api V1 Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stations":{"get":{"tags":["stations"],"summary":"List Stations","operationId":"list_stations_api_v1_stations_get","parameters":[{"name":"province","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtrar por provincia (p.ej. VALENCIA)","title":"Province"},"description":"Filtrar por provincia (p.ej. VALENCIA)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Stations Api V1 Stations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stations/{aemet_id}":{"get":{"tags":["stations"],"summary":"Get Station","description":"Ficha de una estación: metadatos + cobertura observacional.","operationId":"get_station_api_v1_stations__aemet_id__get","parameters":[{"name":"aemet_id","in":"path","required":true,"schema":{"type":"string","title":"Aemet Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Station Api V1 Stations  Aemet Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stations/{aemet_id}/series":{"get":{"tags":["stations"],"summary":"Get Station Series","description":"Serie diaria observacional de una estación.\n\nSi `variable=all`, devuelve tmin, tmax, tmed y precip simultáneamente.\nPor defecto últimos 365 días disponibles.","operationId":"get_station_series_api_v1_stations__aemet_id__series_get","parameters":[{"name":"aemet_id","in":"path","required":true,"schema":{"type":"string","title":"Aemet Id"}},{"name":"variable","in":"query","required":false,"schema":{"type":"string","pattern":"^(tmin|tmax|tmed|precip|all)$","default":"all","title":"Variable"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"ISO date inicial","title":"Start"},"description":"ISO date inicial"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"ISO date final","title":"End"},"description":"ISO date final"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Station Series Api V1 Stations  Aemet Id  Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regions":{"get":{"tags":["regions"],"summary":"List Regions","operationId":"list_regions_api_v1_regions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Regions Api V1 Regions Get"}}}}}}},"/api/v1/anomalies":{"get":{"tags":["anomalies"],"summary":"Anomalies","operationId":"anomalies_api_v1_anomalies_get","parameters":[{"name":"region","in":"query","required":false,"schema":{"type":"string","default":"cv","title":"Region"}},{"name":"variable","in":"query","required":false,"schema":{"enum":["tmed","tmax","tmin"],"type":"string","default":"tmed","title":"Variable"}},{"name":"freq","in":"query","required":false,"schema":{"enum":["monthly","annual"],"type":"string","default":"annual","title":"Freq"}},{"name":"baseline_from","in":"query","required":false,"schema":{"type":"integer","default":1961,"title":"Baseline From"}},{"name":"baseline_to","in":"query","required":false,"schema":{"type":"integer","default":1990,"title":"Baseline To"}},{"name":"method","in":"query","required":false,"schema":{"type":"string","default":"aemet_v0_xlsx","title":"Method"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Anomalies Api V1 Anomalies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/trend":{"get":{"tags":["trend"],"summary":"Trend","operationId":"trend_api_v1_trend_get","parameters":[{"name":"region","in":"query","required":false,"schema":{"type":"string","default":"cv","title":"Region"}},{"name":"variable","in":"query","required":false,"schema":{"enum":["tmed","tmax","tmin"],"type":"string","default":"tmed","title":"Variable"}},{"name":"method","in":"query","required":false,"schema":{"type":"string","default":"aemet_v0_xlsx","title":"Method"}},{"name":"min_days_per_year","in":"query","required":false,"schema":{"type":"integer","default":300,"title":"Min Days Per Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trend Api V1 Trend Get"}}}},"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"}}}}