pyforeca
Async Python client for the Foreca Weather API —
current conditions, hourly and daily forecasts, air quality and location lookup,
with typed models and aiohttp under the hood.
Getting an API key
Create a free account at developer.foreca.com, pick a plan (the Freemium plan is free forever), and copy your key from My API.
Install
pip install pyforeca
Usage
import asyncio
from pyforeca import ForecaApiClient, format_location
async def main() -> None:
async with ForecaApiClient("YOUR_API_KEY") as client:
location = format_location(lon=24.94, lat=60.17)
current = await client.current(location)
print(current.temperature, current.symbol_phrase)
daily = await client.forecast_daily(location, periods=7)
hourly = await client.forecast_hourly(location, periods=24)
air_quality = await client.air_quality_hourly(location, periods=1)
asyncio.run(main())
Pass an existing aiohttp.ClientSession as session= to share one with your
application; the client then leaves closing it to you.
| Method | Endpoint |
|---|---|
location_info(location) |
/api/v1/location/{location} |
current(location) |
/api/v1/current/{location} |
observation_latest(location) |
/api/v1/observation/latest/{location} |
forecast_minutely(location) |
/api/v1/forecast/minutely/{location} |
forecast_hourly(location, periods, dataset) |
/api/v1/forecast/hourly/{location} |
forecast_daily(location, periods, dataset) |
/api/v1/forecast/daily/{location} |
air_quality_hourly(location, periods) |
/api/v1/air-quality/forecast/hourly/{location} |
air_quality_daily(location, periods) |
/api/v1/air-quality/forecast/daily/{location} |
location is "longitude,latitude" (longitude first) or a Foreca location id.
Symbol.parse("d421") decodes weather symbol codes; see the
symbol reference.
Errors: ForecaAuthError (key rejected), ForecaRateLimitError (HTTP 429),
ForecaConnectionError (network/timeout), all subclasses of ForecaError.
Attribution
Applications displaying Foreca data must attribute Foreca — see the logo and attribution requirements.
Development
python3 -m venv .venv && .venv/bin/pip install -e . pytest pytest-asyncio
.venv/bin/pytest
Maintained by Foreca in the foreca-dev organization. Released under the MIT License.
Release files for pyforeca 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyforeca-0.2.0.tar.gz | 9.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyforeca-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.0 kB
Release files / pyforeca-0.2.0.tar.gz
| Download URL | pyforeca-0.2.0.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
660879a0ab2f210015600c42aac79e65cd9e6ee71c5d7e6ffb45bab7cfc3ef21
|
|
BLAKE2b-256 checksum How to use checksums |
4990032eb1f9be2a46eadad1382e6b7b93267a02316c7c7bfe714644db655183
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.
Transparency logRelease files / pyforeca-0.2.0-py3-none-any.whl
| Download URL | pyforeca-0.2.0-py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6fb988cbe585d207bee4201012a0274fab52f184b15b73afec8f3c3efe7d7fbb
|
|
BLAKE2b-256 checksum How to use checksums |
95721663960123479d8952868dc21a0000ee5d3c27daac90551cd59a4bfa2841
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.
Transparency log