Models
List models
Returns models accessible to your organisation: its own models, plus models shared with it (including publicly shared ones).
Parameters
archivedbooleanfalse.timeHorizonstringkey (for example day_ahead).Returns
idstringmodelGroupIdstringnamestringdisplayNamestringnotesstring | nulldescriptionstringrevisionnumberdockerImagestringcreatedAtstringrunMode"AUTOMATIC" | "ON_DEMAND"horizonTimeHorizonmodelMetadataobjectoutputVariablesOutputVariable[]outputSpecificationColumnSpecification[]deprecated
outputVariables instead.inputsModelInputSpecification[] | nulldatasetsModelDatasetSpecification[] | nullarchivedbooleanGET /v1/model unless archived=true.enabledbooleantagsstring[]sensitivitiesSensitivitySpecification[]axesModelAxisSpecification[]axis=key:value query parameters; an axis you omit resolves to its default.inputAggregationsInputAggregation[]outputFileFormat"json" | "csv" | "parquet"displayTimezonestringforecastVariableForecastVariableSpecificationisOwnerbooleandefaultComparisonModelsstring[]Error codes
curl "https://api.v2.pd4castr.com.au/v1/model?archived=false&timeHorizon=day_ahead" \
-H "Authorization: Bearer $PD4CASTR_TOKEN"[
{
"id": "d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"modelGroupId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "demand-forecast-r3",
"displayName": "Demand Forecast (30min)",
"notes": "Retraining cadence: weekly.",
"description": "Day-ahead electricity demand forecast for NEM regions.",
"revision": 3,
"dockerImage": "registry.pd4castr.com.au/acme/demand-forecast:r3",
"createdAt": "2026-01-09T10:00:00.000Z",
"runMode": "AUTOMATIC",
"horizon": {
"name": "Day Ahead",
"shortName": "DA",
"key": "day_ahead"
},
"modelMetadata": {
"resolution": "30min"
},
"outputVariables": [
{
"name": "price",
"key": "price",
"type": "float",
"seriesKey": false,
"colours": []
}
],
"outputSpecification": [],
"inputs": [
{
"id": "b2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"key": "demand_forecast"
}
],
"datasets": [
{
"id": "c4e1a0d2-9b6c-4f7c-8a1e-2f3c4d5e6f70",
"key": "historical_demand",
"source": "e6f3c2b1-7a5d-4c9e-8b2f-1d3e4f5a6b7c",
"fileFormat": "parquet"
}
],
"archived": false,
"enabled": true,
"tags": [
"demand",
"nem"
],
"sensitivities": [
{
"id": "7c1d6c9f-0a8e-4f7c-9b6c-3a4f2c1c1f8d",
"name": "High demand",
"key": "high_demand"
}
],
"axes": [
{
"key": "ref_year",
"label": "Reference year",
"description": "The year the forecast is anchored to.",
"type": "number",
"values": [
2015,
2016
],
"default": 2016
}
],
"inputAggregations": [
{
"id": "9a2c1e7b-4d3f-4a8c-b1e2-5f6a7c8d9e0f",
"name": "Solar & Wind",
"key": "solar-wind"
}
],
"outputFileFormat": "json",
"displayTimezone": "Australia/Sydney",
"forecastVariable": {
"name": "Price",
"shortName": "price",
"key": "price"
},
"isOwner": true,
"defaultComparisonModels": [
"828e98b1-9916-4a85-8a20-831fb2396845"
]
},
{
"id": "a3b5c6d7-2c1a-4f7c-9b6c-3a4f2c1c1f8d",
"modelGroupId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "demand-forecast-r2",
"displayName": "Demand Forecast (30min)",
"notes": "Retraining cadence: weekly.",
"description": "Day-ahead electricity demand forecast for NEM regions.",
"revision": 2,
"dockerImage": "registry.pd4castr.com.au/acme/demand-forecast:r2",
"createdAt": "2025-11-04T10:00:00.000Z",
"runMode": "AUTOMATIC",
"horizon": {
"name": "Day Ahead",
"shortName": "DA",
"key": "day_ahead"
},
"modelMetadata": {
"resolution": "30min"
},
"outputVariables": [
{
"name": "price",
"key": "price",
"type": "float",
"seriesKey": false,
"colours": []
}
],
"outputSpecification": [],
"inputs": [
{
"id": "b2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"key": "demand_forecast"
}
],
"datasets": [
{
"id": "c4e1a0d2-9b6c-4f7c-8a1e-2f3c4d5e6f70",
"key": "historical_demand",
"source": "e6f3c2b1-7a5d-4c9e-8b2f-1d3e4f5a6b7c",
"fileFormat": "parquet"
}
],
"archived": false,
"enabled": true,
"tags": [
"demand",
"nem"
],
"sensitivities": [
{
"id": "7c1d6c9f-0a8e-4f7c-9b6c-3a4f2c1c1f8d",
"name": "High demand",
"key": "high_demand"
}
],
"axes": [
{
"key": "ref_year",
"label": "Reference year",
"description": "The year the forecast is anchored to.",
"type": "number",
"values": [
2015,
2016
],
"default": 2016
}
],
"inputAggregations": [
{
"id": "9a2c1e7b-4d3f-4a8c-b1e2-5f6a7c8d9e0f",
"name": "Solar & Wind",
"key": "solar-wind"
}
],
"outputFileFormat": "json",
"displayTimezone": "Australia/Sydney",
"forecastVariable": {
"name": "Price",
"shortName": "price",
"key": "price"
},
"isOwner": true,
"defaultComparisonModels": [
"828e98b1-9916-4a85-8a20-831fb2396845"
]
}
]Get a model
Returns a single model by its unique id.
Parameters
idstringrequired
Returns
idstringmodelGroupIdstringnamestringdisplayNamestringnotesstring | nulldescriptionstringrevisionnumberdockerImagestringcreatedAtstringrunMode"AUTOMATIC" | "ON_DEMAND"horizonTimeHorizonmodelMetadataobjectoutputVariablesOutputVariable[]outputSpecificationColumnSpecification[]deprecated
outputVariables instead.inputsModelInputSpecification[] | nulldatasetsModelDatasetSpecification[] | nullarchivedbooleanGET /v1/model unless archived=true.enabledbooleantagsstring[]sensitivitiesSensitivitySpecification[]axesModelAxisSpecification[]axis=key:value query parameters; an axis you omit resolves to its default.inputAggregationsInputAggregation[]outputFileFormat"json" | "csv" | "parquet"displayTimezonestringforecastVariableForecastVariableSpecificationisOwnerbooleandefaultComparisonModelsstring[]Error codes
curl "https://api.v2.pd4castr.com.au/v1/model/d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d" \
-H "Authorization: Bearer $PD4CASTR_TOKEN"{
"id": "d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"modelGroupId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "demand-forecast-r3",
"displayName": "Demand Forecast (30min)",
"notes": "Retraining cadence: weekly.",
"description": "Day-ahead electricity demand forecast for NEM regions.",
"revision": 3,
"dockerImage": "registry.pd4castr.com.au/acme/demand-forecast:r3",
"createdAt": "2026-01-09T10:00:00.000Z",
"runMode": "AUTOMATIC",
"horizon": {
"name": "Day Ahead",
"shortName": "DA",
"key": "day_ahead"
},
"modelMetadata": {
"resolution": "30min"
},
"outputVariables": [
{
"name": "price",
"key": "price",
"type": "float",
"seriesKey": false,
"colours": []
}
],
"outputSpecification": [],
"inputs": [
{
"id": "b2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"key": "demand_forecast"
}
],
"datasets": [
{
"id": "c4e1a0d2-9b6c-4f7c-8a1e-2f3c4d5e6f70",
"key": "historical_demand",
"source": "e6f3c2b1-7a5d-4c9e-8b2f-1d3e4f5a6b7c",
"fileFormat": "parquet"
}
],
"archived": false,
"enabled": true,
"tags": [
"demand",
"nem"
],
"sensitivities": [
{
"id": "7c1d6c9f-0a8e-4f7c-9b6c-3a4f2c1c1f8d",
"name": "High demand",
"key": "high_demand"
}
],
"axes": [
{
"key": "ref_year",
"label": "Reference year",
"description": "The year the forecast is anchored to.",
"type": "number",
"values": [
2015,
2016
],
"default": 2016
}
],
"inputAggregations": [
{
"id": "9a2c1e7b-4d3f-4a8c-b1e2-5f6a7c8d9e0f",
"name": "Solar & Wind",
"key": "solar-wind"
}
],
"outputFileFormat": "json",
"displayTimezone": "Australia/Sydney",
"forecastVariable": {
"name": "Price",
"shortName": "price",
"key": "price"
},
"isOwner": true,
"defaultComparisonModels": [
"828e98b1-9916-4a85-8a20-831fb2396845"
]
}List a model's sensitivities
Returns the sensitivity configurations available for the model.
Parameters
idstringrequired
Returns
idstringnamestringkeystringError codes
curl "https://api.v2.pd4castr.com.au/v1/model/d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d/sensitivities" \
-H "Authorization: Bearer $PD4CASTR_TOKEN"[
{
"id": "7c1d6c9f-0a8e-4f7c-9b6c-3a4f2c1c1f8d",
"name": "High demand",
"key": "high_demand"
},
{
"id": "8d2e7d0f-1b9f-5a8d-ac7d-4b5e3d2d2g9e",
"name": "Low demand",
"key": "low_demand"
}
]Archive a model
Marks the model as archived. Archived models are excluded from default list responses but keep running on schedule and remain fetchable by id.
Parameters
idstringrequired
Returns
The updated model.
idstringmodelGroupIdstringnamestringdisplayNamestringnotesstring | nulldescriptionstringrevisionnumberdockerImagestringcreatedAtstringrunMode"AUTOMATIC" | "ON_DEMAND"horizonTimeHorizonmodelMetadataobjectoutputVariablesOutputVariable[]outputSpecificationColumnSpecification[]deprecated
outputVariables instead.inputsModelInputSpecification[] | nulldatasetsModelDatasetSpecification[] | nullarchivedbooleanGET /v1/model unless archived=true.enabledbooleantagsstring[]sensitivitiesSensitivitySpecification[]axesModelAxisSpecification[]axis=key:value query parameters; an axis you omit resolves to its default.inputAggregationsInputAggregation[]outputFileFormat"json" | "csv" | "parquet"displayTimezonestringforecastVariableForecastVariableSpecificationisOwnerbooleandefaultComparisonModelsstring[]Error codes
curl -X POST "https://api.v2.pd4castr.com.au/v1/model/d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d/archive" \
-H "Authorization: Bearer $PD4CASTR_TOKEN"{
"id": "d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"modelGroupId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "demand-forecast-r3",
"displayName": "Demand Forecast (30min)",
"notes": "Retraining cadence: weekly.",
"description": "Day-ahead electricity demand forecast for NEM regions.",
"revision": 3,
"dockerImage": "registry.pd4castr.com.au/acme/demand-forecast:r3",
"createdAt": "2026-01-09T10:00:00.000Z",
"runMode": "AUTOMATIC",
"horizon": {
"name": "Day Ahead",
"shortName": "DA",
"key": "day_ahead"
},
"modelMetadata": {
"resolution": "30min"
},
"outputVariables": [
{
"name": "price",
"key": "price",
"type": "float",
"seriesKey": false,
"colours": []
}
],
"outputSpecification": [],
"inputs": [
{
"id": "b2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"key": "demand_forecast"
}
],
"datasets": [
{
"id": "c4e1a0d2-9b6c-4f7c-8a1e-2f3c4d5e6f70",
"key": "historical_demand",
"source": "e6f3c2b1-7a5d-4c9e-8b2f-1d3e4f5a6b7c",
"fileFormat": "parquet"
}
],
"archived": true,
"enabled": true,
"tags": [
"demand",
"nem"
],
"sensitivities": [
{
"id": "7c1d6c9f-0a8e-4f7c-9b6c-3a4f2c1c1f8d",
"name": "High demand",
"key": "high_demand"
}
],
"axes": [
{
"key": "ref_year",
"label": "Reference year",
"description": "The year the forecast is anchored to.",
"type": "number",
"values": [
2015,
2016
],
"default": 2016
}
],
"inputAggregations": [
{
"id": "9a2c1e7b-4d3f-4a8c-b1e2-5f6a7c8d9e0f",
"name": "Solar & Wind",
"key": "solar-wind"
}
],
"outputFileFormat": "json",
"displayTimezone": "Australia/Sydney",
"forecastVariable": {
"name": "Price",
"shortName": "price",
"key": "price"
},
"isOwner": true,
"defaultComparisonModels": [
"828e98b1-9916-4a85-8a20-831fb2396845"
]
}Unarchive a model
Clears the archived flag; the model returns to default list responses.
Parameters
idstringrequired
Returns
The updated model.
idstringmodelGroupIdstringnamestringdisplayNamestringnotesstring | nulldescriptionstringrevisionnumberdockerImagestringcreatedAtstringrunMode"AUTOMATIC" | "ON_DEMAND"horizonTimeHorizonmodelMetadataobjectoutputVariablesOutputVariable[]outputSpecificationColumnSpecification[]deprecated
outputVariables instead.inputsModelInputSpecification[] | nulldatasetsModelDatasetSpecification[] | nullarchivedbooleanGET /v1/model unless archived=true.enabledbooleantagsstring[]sensitivitiesSensitivitySpecification[]axesModelAxisSpecification[]axis=key:value query parameters; an axis you omit resolves to its default.inputAggregationsInputAggregation[]outputFileFormat"json" | "csv" | "parquet"displayTimezonestringforecastVariableForecastVariableSpecificationisOwnerbooleandefaultComparisonModelsstring[]Error codes
curl -X POST "https://api.v2.pd4castr.com.au/v1/model/d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d/unarchive" \
-H "Authorization: Bearer $PD4CASTR_TOKEN"{
"id": "d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"modelGroupId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "demand-forecast-r3",
"displayName": "Demand Forecast (30min)",
"notes": "Retraining cadence: weekly.",
"description": "Day-ahead electricity demand forecast for NEM regions.",
"revision": 3,
"dockerImage": "registry.pd4castr.com.au/acme/demand-forecast:r3",
"createdAt": "2026-01-09T10:00:00.000Z",
"runMode": "AUTOMATIC",
"horizon": {
"name": "Day Ahead",
"shortName": "DA",
"key": "day_ahead"
},
"modelMetadata": {
"resolution": "30min"
},
"outputVariables": [
{
"name": "price",
"key": "price",
"type": "float",
"seriesKey": false,
"colours": []
}
],
"outputSpecification": [],
"inputs": [
{
"id": "b2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"key": "demand_forecast"
}
],
"datasets": [
{
"id": "c4e1a0d2-9b6c-4f7c-8a1e-2f3c4d5e6f70",
"key": "historical_demand",
"source": "e6f3c2b1-7a5d-4c9e-8b2f-1d3e4f5a6b7c",
"fileFormat": "parquet"
}
],
"archived": false,
"enabled": true,
"tags": [
"demand",
"nem"
],
"sensitivities": [
{
"id": "7c1d6c9f-0a8e-4f7c-9b6c-3a4f2c1c1f8d",
"name": "High demand",
"key": "high_demand"
}
],
"axes": [
{
"key": "ref_year",
"label": "Reference year",
"description": "The year the forecast is anchored to.",
"type": "number",
"values": [
2015,
2016
],
"default": 2016
}
],
"inputAggregations": [
{
"id": "9a2c1e7b-4d3f-4a8c-b1e2-5f6a7c8d9e0f",
"name": "Solar & Wind",
"key": "solar-wind"
}
],
"outputFileFormat": "json",
"displayTimezone": "Australia/Sydney",
"forecastVariable": {
"name": "Price",
"shortName": "price",
"key": "price"
},
"isOwner": true,
"defaultComparisonModels": [
"828e98b1-9916-4a85-8a20-831fb2396845"
]
}Trigger a model run
Queues an on-demand run of the model, plus a run for each of its sensitivities. Returns the queued jobs immediately; poll the run endpoints for completion.
Parameters
idstringrequired
Returns
The queued jobs, one per base run and sensitivity.
idstringmodelIdstringtriggerProgressIdstringsensitivityIdstring | nullmodelRunIdstring | nullstatus"PENDING" | "PROCESSING" | "COMPLETED" | "FAILED" | "CANCELLED"prioritynumberrunDatetimestringcreatedAtstringError codes
curl -X POST "https://api.v2.pd4castr.com.au/v1/model/d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d/trigger" \
-H "Authorization: Bearer $PD4CASTR_TOKEN"[
{
"id": "0f6c2b1a-9d3e-4c8a-9f2b-1a2c3d4e5f60",
"modelId": "d2f4e0c0-1c1a-4f7c-9b6c-3a4f2c1c1f8d",
"triggerProgressId": "3b9d8c7e-2a1f-4d6b-8e5c-7f0a1b2c3d4e",
"sensitivityId": null,
"modelRunId": null,
"status": "PENDING",
"priority": 0,
"runDatetime": "2026-04-12T00:00:00.000Z",
"createdAt": "2026-04-12T03:14:15.000Z"
}
]