{"id":28336061,"url":"https://github.com/santura-dev/weather-api","last_synced_at":"2026-05-07T16:06:03.177Z","repository":{"id":277976209,"uuid":"933773659","full_name":"santura-dev/Weather-API","owner":"santura-dev","description":"This project is a Flask-based weather API that provides real-time weather, forecast, and historical data for cities worldwide. It fetches data from the Visual Crossing API, uses Redis for caching to improve performance, and integrates Flask’s rate limiter to control request frequency and prevent misuse.","archived":false,"fork":false,"pushed_at":"2025-05-31T09:27:42.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-30T19:36:29.383Z","etag":null,"topics":["api","flask","redis","redis-cache","weather","weather-api","weather-app","weather-data","weather-forecast","weather-information","weatherapp"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/santura-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-16T16:57:48.000Z","updated_at":"2025-05-31T09:27:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"fcb93809-8805-403f-bbae-067d671ed999","html_url":"https://github.com/santura-dev/Weather-API","commit_stats":null,"previous_names":["ravenlb/weather-api","santura-dev/weather-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/santura-dev/Weather-API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santura-dev%2FWeather-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santura-dev%2FWeather-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santura-dev%2FWeather-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santura-dev%2FWeather-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/santura-dev","download_url":"https://codeload.github.com/santura-dev/Weather-API/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santura-dev%2FWeather-API/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32745160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","flask","redis","redis-cache","weather","weather-api","weather-app","weather-data","weather-forecast","weather-information","weatherapp"],"created_at":"2025-05-26T22:25:34.411Z","updated_at":"2026-05-07T16:06:02.805Z","avatar_url":"https://github.com/santura-dev.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Weather API Project\n\nThis project is a weather API service built using Flask that provides weather data based on city inputs. The application fetches data from the Visual Crossing API and caches it using Redis. It includes a rate limiter to avoid abuse and offers multiple endpoints for different types of weather and air quality data.\n\n## Features\n- Current weather data for any city.\n- Weather data for a custom date range.\n- Air quality data for any city.\n- Redis caching for improved performance.\n- Flask rate limiting for API requests.\n\n## Installation\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/RavenLB/Weather-API.git\ncd weather-API\n```\n\n### 2. Install Required Dependencies\nCreate a virtual environment and install the dependencies:\n```bash\npython -m venv venv\nsource venv/bin/activate  # For macOS/Linux\nvenv\\Scripts\u0007ctivate  # For Windows\npip install -r requirements.txt\n```\n\n### 3. Set Up Environment Variables\nCreate a `.env` file in the root directory and add your API key for Visual Crossing API and Redis configuration:\n```bash\nWEATHER_API_KEY=your_api_key_here\nWEATHER_URL=visual_crossing_url\n\nREDIS_HOST=localhost\nREDIS_PORT=your_redis_port\n\n```\n\n### 4. Run the Application\nStart the Flask application:\n```bash\nflask run\n```\n\nThe app will be available at `http://127.0.0.1:5000`.\n\n## API Endpoints\n\n### 1. **Get Current Weather**\n**URL:** `/weather/current/\u003ccity\u003e`\n\n**Path Parameters:**\n- `city`: The name of the city (required).\n\nExample:\n```bash\nhttp://127.0.0.1:5000/weather/current/Amsterdam\n```\n\n### 2. **Get Weather Forecast**\n**URL:** `/weather/forecast/\u003ccity\u003e/\u003cdays\u003e`\n\n**Path Parameters:**\n- `city`: The name of the city (required).\n- `days`: Number of days in the future to forecast (1-15, required).\n\nExample:\n```bash\nhttp://127.0.0.1:5000/weather/forecast/Amsterdam/7\n```\n\n### 3. **Get Historical Weather**\n**URL:** `/weather/historical/\u003ccity\u003e/\u003cstart\u003e/\u003cend\u003e`\n\n**Path Parameters:**\n- `city`: The name of the city (required).\n- `start`: Start date of the range (required, format: YYYY-MM-DD).\n- `end`: End date of the range (required, format: YYYY-MM-DD).\n\nExample:\n```bash\nhttp://127.0.0.1:5000/weather/historical/Amsterdam/2023-01-01/2023-01-07\n```\n\n\n## Technologies Used\n- Python\n- Flask\n- Redis\n- Visual Crossing API\n- Flask Limiter\n\n## Contributing\nFeel free to fork the repository, submit issues, or create pull requests.\n\n## License\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsantura-dev%2Fweather-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsantura-dev%2Fweather-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsantura-dev%2Fweather-api/lists"}