{"id":20200907,"url":"https://github.com/openclimatefix/uk-pv-national-gsp-api","last_synced_at":"2025-07-04T22:35:49.387Z","repository":{"id":37955613,"uuid":"407129470","full_name":"openclimatefix/uk-pv-national-gsp-api","owner":"openclimatefix","description":"API for hosting nowcasting solar predictions","archived":false,"fork":false,"pushed_at":"2025-07-04T10:59:54.000Z","size":1092,"stargazers_count":9,"open_issues_count":51,"forks_count":22,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-04T11:46:58.467Z","etag":null,"topics":["nowcasting"],"latest_commit_sha":null,"homepage":"","language":"Python","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/openclimatefix.png","metadata":{"funding":{"github":["openclimatefix"],"patreon":null,"open_collective":"openclimatefix","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null},"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}},"created_at":"2021-09-16T11:00:59.000Z","updated_at":"2025-06-13T07:38:14.000Z","dependencies_parsed_at":"2023-12-25T20:04:06.683Z","dependency_job_id":"4a305e49-0769-4d7f-975a-3d879448fd5c","html_url":"https://github.com/openclimatefix/uk-pv-national-gsp-api","commit_stats":{"total_commits":823,"total_committers":18,"mean_commits":45.72222222222222,"dds":0.4957472660996355,"last_synced_commit":"bedc77dd65cc3b4667b22463105a8f43e0812241"},"previous_names":["openclimatefix/uk-pv-national-gsp-api"],"tags_count":248,"template":false,"template_full_name":null,"purl":"pkg:github/openclimatefix/uk-pv-national-gsp-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclimatefix%2Fuk-pv-national-gsp-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclimatefix%2Fuk-pv-national-gsp-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclimatefix%2Fuk-pv-national-gsp-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclimatefix%2Fuk-pv-national-gsp-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openclimatefix","download_url":"https://codeload.github.com/openclimatefix/uk-pv-national-gsp-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclimatefix%2Fuk-pv-national-gsp-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263628519,"owners_count":23490987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["nowcasting"],"created_at":"2024-11-14T04:46:09.262Z","updated_at":"2025-07-04T22:35:49.380Z","avatar_url":"https://github.com/openclimatefix.png","language":"Python","funding_links":["https://github.com/sponsors/openclimatefix","https://opencollective.com/openclimatefix"],"categories":[],"sub_categories":[],"readme":"# UK PV National and GSP API\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-23-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n[![tags badge](https://img.shields.io/github/v/tag/openclimatefix/uk-pv-national-gsp-api?include_prereleases\u0026sort=semver\u0026color=FFAC5F)](https://github.com/openclimatefix/uk-pv-national-gsp-api/tags)\n[![ease of contribution: medium](https://img.shields.io/badge/ease%20of%20contribution:%20medium-f4900c)](https://github.com/openclimatefix#how-easy-is-it-to-get-involved)\n[![Test Docker image](https://github.com/openclimatefix/uk-pv-national-gsp-api/actions/workflows/test-docker.yaml/badge.svg)](https://github.com/openclimatefix/uk-pv-national-gsp-api/actions/workflows/test-docker.yaml)\n\nAPI for hosting nowcasting solar predictions. This is for GSP and National forecasts in the UK.\n\nWe use [FastAPI](https://fastapi.tiangolo.com/).\n\n## Installation\n\nPull the docker image from\n\n```\ndocker pull openclimatefix/nowcasting_api:latest\n```\n\nYou will need to set the following environment variables:\n- `AUTH0_DOMAIN` - The Auth0 domain which can be collected from the Applications/Applications tab. It should be something like\n'XXXXXXX.eu.auth0.com'\n- `AUTH0_API_AUDIENCE` - THE Auth0 api audience, this can be collected from the Applications/APIs tab. It should be something like\n`https://XXXXXXXXXX.eu.auth0.com/api/v2/`\n- `DB_URL`- The Forecast database URL used to get GSP forecast data\n- `ORIGINS` - Endpoints that are valid CORS origins. See [FastAPI documentation](https://fastapi.tiangolo.com/tutorial/cors/).\n- `N_HISTORY_DAYS` - Default is just to load data from today and yesterday,\n    but we can set this to 5, if we want the api always to return 5 days of data\n- `ADJUST_MW_LIMIT` - the maximum the api is allowed to adjust the national forecast by\n- `FAKE` - This allows fake data to be used, rather than connecting to a database\n- `QUERY_WAIT_SECONDS` - The number of seconds to wait for an on going query\n- `CACHE_TIME_SECONDS` - The time in seconds to cache the data is used for\n- `DELETE_CACHE_TIME_SECONDS` - The time in seconds to after which the cache is delete\n- `LOGLEVEL` - The log level for the application.\n\nNote you will need a database set up at `DB_URL`. This should use the datamodel in [nowcasting_datamodel](https://github.com/openclimatefix/nowcasting_datamodel)\n\nThere are several optional environment variables:\n- `N_CALLS_PER_HOUR` - API rate limit for most endpoints. Defaults to 3600 (1 per second).\n- `N_SLOW_CALLS_PER_HOUR` - API rate limit for slow endpoints. Defaults to 60 (1 per minute).\n\n## Documentation\n\nLive documentation can be viewed at `https://api.quartz.solar/docs` or `https://api.quartz.solar/swagger`.\nThis is automatically generated from the code.\n\n## Development\n\nThis can be done it two different ways: With Python or with Docker.\nThe Docker method is preferred, because:\n- a) this should be more replicable and less prone to odd behaviors;\n- b) it also sets up a CRON service that generates new data periodically, to resemble the \"real\" forecast service.\n\n### Python\n\nCreate a virtual env\n\n```bash\npython3 -m venv ./venv\nsource venv/bin/activate\n```\n\n### Running the API\n\n#### Option 1: Docker\n 🟢 __Preferred method__\n\n1. Make sure docker is installed on your system.\n2. Use `docker compose up`\n   in the main directory with the optional `--build` flag to build the image the first time\n   to start up the application. This builds the image, sets up the database, seeds some fake data\n   and starts the API.\n3. You will now be able to access it on `http://localhost:8000`\n4. The API should restart automatically when you make changes to the code, and the CRON job will\n   periodically seed new fake data, currently set to every 15 minutes.\n\n#### Option 2: Running docker with a local version of [nowcasting_datamodel](https://github.com/openclimatefix/nowcasting_datamodel)\n1. Clone the [nowcasting_datamodel](https://github.com/openclimatefix/nowcasting_datamodel) repository\n2. Comment out the `nowcasting_datamodel` line in the `requirements.txt` file\n3. Run `docker compose up --file docker-compose-local-datamodel.yml` in the main directory, with the\n   optional `--build` flag to build the image the first time; this will start up the application and seed the\n   initial fake data in the database.\n4. You will now be able to access it on `http://localhost:8000`. Changes you make to the API code will be\n   automatically reflected in the running API, but changes to the datamodel will either require a change of any kind\n   in the API code that will reload the server, or a manual restart of the API.\n5. Data will reseed every 15 minutes.\n\n#### Option 3: Running the API with a local database (deprecated, but possible if unable to use Docker, may require some troubleshooting)\n\nTo set up the API with a local database, you will need to:\n - start your own local postgres instance on your machine\n - set `DB_URL` to your local postgres instance in the `.env` file\n - run the following commands to install required packages, create the tables in your local postgres instance, and populate them with fake data:\n\n```bash\npip install -r requirements.txt\npython script/fake_data.py\ncd nowcasting_api\nuvicorn main:app --reload\n```\nWhen running locally:\n1. You will now be able to access it on `http://localhost:8000`\n2. The API should restart automatically when you make changes to the code, but the fake\n   data currently is static. To seed new fake data, just manually restart the API.\n\n### Running the test suite\n\nTo run tests use the following command\n```bash\ndocker stop $(docker ps -a -q)\ndocker-compose -f test-docker-compose.yml build\ndocker-compose -f test-docker-compose.yml run api\n```\n\n### Routes to SQL tables\n#### National\n```mermaid\n  graph TD;\n      N1(national/forecast) --\u003e Q1;\n      Q1{Include metadata?\u003e} --\u003e|no| Q2;\n      Q1 --\u003e |yes| N2[NationalForecast];\n      N4[ForecastValueLatest];\n      Q2{forecast horizon \u003cbr\u003e minutes not None}\n      Q2--\u003e|yes| N5[ForecastValueSevenDays];\n      Q2--\u003e|no| N4;\n\n      NP1(national/pvlive)--\u003eNP2;\n      NP2[GSPYield];\n```\n\n#### GSP\n```mermaid\n  graph TD;\n\n      G3(gsp/gsp_id/forecast) --\u003eQ4;\n      Q4{forecast horizon \u003cbr\u003e minutes not None}\n      Q4--\u003e|yes| G7[ForecastValueSevenDays];\n      Q4--\u003e|no| G6[ForecastValueLatest];\n\n      GP3(gsp/gsp_id/pvlive)--\u003eGP4;\n      GP4[GSPYield];\n```\n\n#### Extras\n\n```mermaid\n  graph TD;\n      G1(status)--\u003eG2;\n      G2[Status];\n\n      G3(gsp)--\u003eG4\n      G4[Location]\n\n```\n\n\n## FAQ\n\n### What is a N hour forecast?\n\nSome users want to know what the forecast was like N hours ago. We can do this by setting\n`forecast_hoirzon_minutes` in the API.\nBecause the API provider forecasts in the future and historic values, it is useful to define this behaviour for N hour forecast.\n- future: A forecast that was made N hours ago for the future.\nFor example, if its now 2025-01-01 12:00, the future will show a forecast made at 2025-01-01 08:00, from now to 2025-01-02 20:00 (a 36 hour forecast)\n- past: Forecast values that were made N hours before the target time.\nFor example, a target_time of 2025-01-01 11:00 will show a forecast value made at 2025-01-01 07:00.\n\n\n![N hour foreacst](./nhourforecast.png)\n\n\n\n## Contributing and community\n\n[![issues badge](https://img.shields.io/github/issues/openclimatefix/uk-pv-national-gsp-api?color=FFAC5F)](https://github.com/openclimatefix/ocf-template/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)\n\n- PR's are welcome! See the [Organisation Profile](https://github.com/openclimatefix) for details on contributing\n- Find out about our other projects in the [here](https://github.com/openclimatefix/.github/tree/main/profile)\n- Check out the [OCF blog](https://openclimatefix.org/blog) for updates\n- Follow OCF on [LinkedIn](https://uk.linkedin.com/company/open-climate-fix)\n\n\n## Contributors\n\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/peterdudfield\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/34686298?v=4?s=100\" width=\"100px;\" alt=\"Peter Dudfield\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePeter Dudfield\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=peterdudfield\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/mdfaisal98\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/64960915?v=4?s=100\" width=\"100px;\" alt=\"Mohammed Faisal\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMohammed Faisal\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=mdfaisal98\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/BodaleDenis\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/60345186?v=4?s=100\" width=\"100px;\" alt=\"Bodale Denis\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBodale Denis\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=BodaleDenis\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/OBITORASU\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/65222459?v=4?s=100\" width=\"100px;\" alt=\"Souhit Dey\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSouhit Dey\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=OBITORASU\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/flowirtz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6052785?v=4?s=100\" width=\"100px;\" alt=\"Flo\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFlo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=flowirtz\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/vnshanmukh\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/67438038?v=4?s=100\" width=\"100px;\" alt=\"Shanmukh\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eShanmukh\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=vnshanmukh\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.sixte.demaupeou.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/17206983?v=4?s=100\" width=\"100px;\" alt=\"Sixte de Maupeou\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSixte de Maupeou\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=sixtedemaupeou\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/rachel-labri-tipton\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/86949265?v=4?s=100\" width=\"100px;\" alt=\"rachel tipton\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003erachel tipton\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=rachel-labri-tipton\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/braddf\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/41056982?v=4?s=100\" width=\"100px;\" alt=\"braddf\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ebraddf\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=braddf\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/pulls?q=is%3Apr+reviewed-by%3Abraddf\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://dorinclisu.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/13818396?v=4?s=100\" width=\"100px;\" alt=\"Dorin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDorin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/pulls?q=is%3Apr+reviewed-by%3Adorinclisu\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://petermnhull.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/56369394?v=4?s=100\" width=\"100px;\" alt=\"Peter Hull\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePeter Hull\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=petermnhull\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.breakingpitt.es\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10740572?v=4?s=100\" width=\"100px;\" alt=\"Pedro Garcia Rodriguez\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePedro Garcia Rodriguez\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=BreakingPitt\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://richasharma.co.in/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/41283476?v=4?s=100\" width=\"100px;\" alt=\"Richa\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRicha\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=14Richa\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/pwdemars\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/33660040?v=4?s=100\" width=\"100px;\" alt=\"Patrick de Mars\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePatrick de Mars\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#question-pwdemars\" title=\"Answering Questions\"\u003e💬\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/VikramsDataScience\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/45002417?v=4?s=100\" width=\"100px;\" alt=\"Vikram Pande\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eVikram Pande\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=VikramsDataScience\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://rpep.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8539474?v=4?s=100\" width=\"100px;\" alt=\"Dr Ryan Pepper\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDr Ryan Pepper\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=rpep\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/pvprajwal\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/74557086?v=4?s=100\" width=\"100px;\" alt=\"Parasa V Prajwal\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eParasa V Prajwal\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=pvprajwal\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/mahmoud-40\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/116794637?v=4?s=100\" width=\"100px;\" alt=\"Mahmoud Abdulmawlaa\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMahmoud Abdulmawlaa\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=mahmoud-40\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/abdalahsalah\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/139065821?v=4?s=100\" width=\"100px;\" alt=\"Abdallah salah\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAbdallah salah\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=abdalahsalah\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Dakshbir\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/144359831?v=4?s=100\" width=\"100px;\" alt=\"Dakshbir\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDakshbir\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=Dakshbir\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/michael-gendy\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/64384201?v=4?s=100\" width=\"100px;\" alt=\"michael-gendy\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003emichael-gendy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=michael-gendy\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/yuvraajnarula\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/49155095?v=4?s=100\" width=\"100px;\" alt=\"Yuvraaj Narula\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYuvraaj Narula\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=yuvraajnarula\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/jchanke\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/17882756?v=4?s=100\" width=\"100px;\" alt=\"Joseph Chan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJoseph Chan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openclimatefix/uk-pv-national-gsp-api/commits?author=jchanke\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n---\n\n*Part of the [Open Climate Fix](https://github.com/orgs/openclimatefix/people) community.*\n\n\u003cimg src=\"https://cdn.prod.website-files.com/62d92550f6774db58d441cca/6324a2038936ecda71599a8b_OCF_Logo_black_trans.png\" style=\"background-color:white;\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenclimatefix%2Fuk-pv-national-gsp-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenclimatefix%2Fuk-pv-national-gsp-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenclimatefix%2Fuk-pv-national-gsp-api/lists"}