API Endpoints

Get Forecasting Metadata

get

Get information about available forecasting models.

Authorizations
Responses
200

Successful Response

application/json
get
GET /v1/forecasting HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
200

Successful Response

{
  "available_models": [
    "ept1_5"
  ]
}

Get Available Init Times

get

Get list of available initialization times for a model.

Supported Models:

  • ept1_5, ept1_5_early, ept2, ept2_early, aurora, aifs, ept2-e

Unsupported Models:

  • ecmwf_ifs025_single, ecmwf_ifs025_ensemble, ecmwf_aifs025_single, ecmwf_aifs025_ensemble, meteofrance_arome_france_hd, gfs_global_single, gfs_global_ensemble, icon_eu, gfs_graphcast025

Using an unsupported model will return a 404 error with details about supported and unsupported models.

Authorizations
Path parameters
model_namestring · enumRequiredPossible values:
Responses
200

Successful Response

application/json
get
GET /v1/forecasting/{model_name}/forecasts/available_init_times HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "init_times": [
    "2025-09-06T11:57:51.299Z"
  ]
}

Get Latest Metadata

get

Get information about the latest forecast.

Authorizations
Path parameters
model_namestring · enumRequiredPossible values:
Query parameters
min_hours_availableany ofOptional

Minimum hours available for the forecast

integerOptional
or
nullOptional
use_new_namingbooleanOptional

Use new variable naming

Default: true
Responses
200

Successful Response

application/json
get
GET /v1/forecasting/{model_name}/forecasts/latest HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "forecast_url": "text",
  "model": "ept1_5",
  "init_time": "2025-09-06T11:57:51.299Z",
  "available_forecasted_hours": 1,
  "available_variables": [
    "text"
  ],
  "available_ensemble_stats": [
    "text"
  ]
}

Get latest forecast for specific points, (max 5 points, 24 hours per query)

post

Get latest forecast for the selected model and specified points at a range of lead times.

Authorizations
Path parameters
model_namestring · enumRequiredPossible values:
Body

At the moment we allow querying multiple Coordinates for multiple lead times, and selecting variables of interest..

min_lead_timeintegerOptional

The start of the lead time range

Default: 0
max_lead_timeintegerOptional

The end of the lead time range (inclusive)

Default: 0
fullbooleanOptional

If true, returns the latest forecast with the full horizon available

Default: false
ensemble_statsany ofOptional

If provided, returns the ensemble statistics for the given variables

or
nullOptional
use_new_namingbooleanOptional

Use new variable naming

Default: false
Responses
200

Successful Response

application/json
post
POST /v1/forecasting/{model_name}/forecasts/latest HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 180

{
  "max_lead_time": 3,
  "min_lead_time": 0,
  "points": [
    {
      "lat": 47.1,
      "lon": 8.2
    },
    {
      "lat": -12.3,
      "lon": 3.4
    }
  ],
  "variables": [
    "air_temperature_at_height_level_2m",
    "wind_speed_at_height_level_100m"
  ]
}
{
  "forecast": {
    "model": "ept1_5",
    "id": "text",
    "init_time": "2025-09-06T11:57:51.299Z",
    "max_available_lead_time": 1,
    "available_variables": [
      "text"
    ],
    "available_ensemble_stats": [
      "mean"
    ],
    "times": [
      "2025-09-06T11:57:51.299Z"
    ],
    "points": [
      {
        "requested_latlon": {
          "lat": 1,
          "lon": 1
        },
        "returned_latlon": {
          "lat": 1,
          "lon": 1
        },
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    ],
    "name": "text"
  }
}

Get Forecast Metadata By Init Time

get

Get information about a forecast for a specific initialization time.

Authorizations
Path parameters
model_namestring · enumRequiredPossible values:
init_timestring · date-timeRequired
Query parameters
use_new_namingbooleanOptional

Use new variable naming

Default: true
Responses
200

Successful Response

application/json
get
GET /v1/forecasting/{model_name}/forecasts/{init_time} HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "forecast_url": "text",
  "model": "ept1_5",
  "init_time": "2025-09-06T11:57:51.299Z",
  "available_forecasted_hours": 1,
  "available_variables": [
    "text"
  ],
  "available_ensemble_stats": [
    "text"
  ]
}

Get latest forecast for specific point

get

Get latest forecast for the selected model and specified points at a range of lead times.

Authorizations
Path parameters
model_namestring · enumRequiredPossible values:
latnumber · min: -90 · max: 90Required
lonnumber · min: -180 · max: 180Required
Query parameters
min_lead_timeintegerOptional

The start of the lead time range

Default: 0
max_lead_timeintegerOptional

The end of the lead time range (inclusive)

Default: 24
fullbooleanOptional

If true, returns the latest forecast with the full horizon available

Default: false
ensemble_statsany ofOptional

If provided, returns the ensemble statistics for the given variables

or
nullOptional
use_new_namingbooleanOptional

Use new variable naming

Default: false
Responses
200

Successful Response

application/json
get
GET /v1/forecasting/{model_name}/forecasts/latest/{lat},{lon} HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "forecast": {
    "model": "ept1_5",
    "id": "text",
    "init_time": "2025-09-06T11:57:51.299Z",
    "max_available_lead_time": 1,
    "available_variables": [
      "text"
    ],
    "available_ensemble_stats": [
      "mean"
    ],
    "times": [
      "2025-09-06T11:57:51.299Z"
    ],
    "points": [
      {
        "requested_latlon": {
          "lat": 1,
          "lon": 1
        },
        "returned_latlon": {
          "lat": 1,
          "lon": 1
        },
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    ],
    "name": "text"
  }
}

Get forecast for specific init time and point

get

Get forecast for the selected model at specified initialization time and point at a range of lead times.

Authorizations
Path parameters
model_namestring · enumRequiredPossible values:
init_timestring · date-timeRequired
latnumber · min: -90 · max: 90Required
lonnumber · min: -180 · max: 180Required
Query parameters
min_lead_timeintegerOptional

The start of the lead time range

Default: 0
max_lead_timeintegerOptional

The end of the lead time range (inclusive)

Default: 24
fullbooleanOptional

If true, returns the latest forecast with the full horizon available

Default: false
ensemble_statsany ofOptional

If provided, returns the ensemble statistics for the given variables

or
nullOptional
use_new_namingbooleanOptional

Use new variable naming

Default: false
Responses
200

Successful Response

application/json
get
GET /v1/forecasting/{model_name}/forecasts/{init_time}/{lat},{lon} HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "forecast": {
    "model": "ept1_5",
    "id": "text",
    "init_time": "2025-09-06T11:57:51.299Z",
    "max_available_lead_time": 1,
    "available_variables": [
      "text"
    ],
    "available_ensemble_stats": [
      "mean"
    ],
    "times": [
      "2025-09-06T11:57:51.299Z"
    ],
    "points": [
      {
        "requested_latlon": {
          "lat": 1,
          "lon": 1
        },
        "returned_latlon": {
          "lat": 1,
          "lon": 1
        },
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    ],
    "name": "text"
  }
}

Get Static Options

get

Get static metadata for the market aggregates data, such as available models, variables, etc.

Authorizations
Responses
200

Successful Response

application/json
get
GET /v1/analytics/aggregates/static-options HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
200

Successful Response

{
  "zones": [
    {
      "id": "text",
      "country": "text",
      "continent": "text",
      "label": "text",
      "available_weights": [
        "population"
      ]
    }
  ],
  "models": [
    {
      "id": "ept2",
      "available_weights": [
        "population"
      ]
    }
  ],
  "weights": [
    {
      "id": "population",
      "label": "text"
    }
  ],
  "variables": [
    {
      "id": "air_temperature_at_height_level_2m",
      "available_weights": [
        "population"
      ]
    }
  ],
  "countries": [
    {
      "id": "text",
      "label": "text",
      "continent": "text"
    }
  ],
  "continents": [
    {
      "id": "text",
      "label": "text"
    }
  ]
}

Get Available Forecasts

get

Get a list of available forecasts per model.

Authorizations
Query parameters
min_init_timeany ofOptional
string · date-timeOptional
or
nullOptional
limitintegerOptionalDefault: 100
Responses
200

Successful Response

application/json
get
GET /v1/analytics/aggregates/available-forecasts HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "forecasts_per_model": {
    "ANY_ADDITIONAL_PROPERTY": [
      {
        "init_time": "2025-09-06T11:57:51.299Z",
        "available_weights": [
          "population"
        ]
      }
    ]
  }
}

Get Data

get

Get aggregated data for a given model, zone, init time, and variable.

Authorizations
Query parameters
modelstring · enumRequiredPossible values:
zonestringRequired
init_timestring · date-timeRequired
min_lead_timeintegerRequired
max_lead_timeintegerRequired
variablestring · enumRequired

A customer variable is a variable that is used to describe a customer's business.

Possible values:
weightstring · enumRequiredPossible values:
Responses
200

Successful Response

application/json
get
GET /v1/analytics/aggregates/data HTTP/1.1
Host: api.jua.ai
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "model": "ept2",
      "zone": "text",
      "init_time": "2025-09-06T11:57:51.299Z",
      "lead_times": [
        1
      ],
      "valid_times": [
        "2025-09-06T11:57:51.299Z"
      ],
      "values": {
        "ANY_ADDITIONAL_PROPERTY": {
          "ANY_ADDITIONAL_PROPERTY": [
            1
          ]
        }
      }
    }
  ]
}

Last updated