Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe.
Set validate_only to run the full validation without storing the forecast. The acknowledgment then carries status: validated.
Run the full validation and return the acknowledgment without storing the forecast. The input_hash matches the one a stored submission of the same payload gets.
Response
Forecast accepted
Acknowledgment of an accepted forecast submission.
received: the forecast is stored and picked up for processing. validated: the payload passed every check and nothing was stored, because validate_only was set.
Available options:
received,
validated
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Engrate Developer Documentation","description":"Engrate is the building blocks for your energy management and optimization applications. Without the complexity of traditional integration platforms our developer-first approach gets you from concept to production in days, not months.","colors":{"primary":"#FFBB00","light":"#FFBB00","dark":"#FFBB00"},"logo":{"light":"https://mintcdn.com/engrate/zV_tsIFvjMafIhqO/images/logo-light.svg?fit=max\u0026auto=format\u0026n=zV_tsIFvjMafIhqO\u0026q=85\u0026s=0a166849b56cc0dbfbb1584afda2d0ba","dark":"https://mintcdn.com/engrate/zV_tsIFvjMafIhqO/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=zV_tsIFvjMafIhqO\u0026q=85\u0026s=79fb04f9456ebd05ae69f107341c5d81"},"favicon":"https://mintcdn.com/engrate/0gbHzEYX3GoHU0wy/favicon.ico?fit=max\u0026auto=format\u0026n=0gbHzEYX3GoHU0wy\u0026q=85\u0026s=498b7c6e50fdffeb3edaab1e0272101b","navbar":{"links":[{"href":"mailto:hello@engrate.io","label":"Support"}],"primary":{"type":"button","label":"Contact us","href":"mailto:hello@engrate.io"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/engrate"}},"fonts":{"family":"Work Sans","format":"woff2"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"engrate","hasAudioNarration":false,"actualSubdomain":"engrate","customDomains":["docs.engrate.io"],"gitSource":{"type":"github","owner":"engrate","repo":"eg-core","deployBranch":"main","contentDirectory":"docs/public/mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeb1380a60f76c94452a881","collectionId":"1a2e125e-5ea5-4343-8c09-dd3dbbd67055","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeb1380a60f76c94452a881"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aeb1380a60f76c94452a881","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API reference","count":107},{"language":"default","tag":"Market Communication","count":56},{"language":"default","tag":"Cost of Energy","count":43},{"language":"default","tag":"Tariffs","count":43},{"language":"default","tag":"Models","count":33},{"language":"default","tag":"Documentation","count":20},{"language":"default","tag":"Core","count":19},{"language":"default","tag":"Market reference data","count":19},{"language":"default","tag":"Schedules","count":17},{"language":"default","tag":"Allocations","count":15}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"global.css","content":".eg-dataset>rect{fill:#dbeafe!important;stroke:#0080FF!important}.eg-dataset .nodeLabel{color:#002FA7!important}.eg-fn>rect{fill:#f5f5f5!important;stroke:#e5e5e5!important}.eg-fn .nodeLabel{color:#4a4a4a!important}.eg-output>rect{fill:#d1fae5!important;stroke:#10b981!important}.eg-output .nodeLabel{color:#064e3b!important}.edgeLabel{font-size:0.75rem;background-color:transparent!important}.edgeLabel p{background-color:transparent!important}.edgeLabel .labelBkg{background:#dbeafe!important;border:1px solid #0080FF;color:#002FA7;padding:2px 10px;border-radius:999px}.labelBkg:has(>span.edgeLabel:empty){background:transparent!important;border:none!important;padding:0!important}html.dark .eg-dataset>rect{fill:#1e3a5f!important;stroke:#60a5fa!important}html.dark .eg-dataset .nodeLabel{color:#dbeafe!important}html.dark .eg-fn>rect{fill:#374151!important;stroke:#4b5563!important}html.dark .eg-fn .nodeLabel{color:#e5e7eb!important}html.dark .eg-output>rect{fill:#064e3b!important;stroke:#34d399!important}html.dark .eg-output .nodeLabel{color:#d1fae5!important}html.dark .edgePath path,html.dark path.flowchart-link,html.dark .flowchart-link{stroke:#9ca3af!important}html.dark marker path{fill:#9ca3af!important;stroke:#9ca3af!important}html.dark .edgeLabel .labelBkg{background:#1e3a5f!important;border-color:#60a5fa}html.dark .edgeLabel .labelBkg,html.dark .edgeLabel .labelBkg span,html.dark .edgeLabel span{color:#dbeafe!important}"}],"page":{"pagePath":"api-reference/submit-portfolio-forecast","slug":"/api-reference/submit-portfolio-forecast","pageMetadata":{"title":"Submit portfolio forecast","description":"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe.\n\nSet `validate_only` to run the full validation without storing the forecast. The acknowledgment then carries `status: validated`.","deprecated":null,"version":null,"openapi":"/portfolio-forecasts-openapi.json post /portfolio-forecasts/v1alpha1/submissions","href":"/api-reference/submit-portfolio-forecast","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Set \", _jsx(_components.code, {\n children: \"validate_only\"\n }), \" to run the full validation without storing the forecast. The acknowledgment then carries \", _jsx(_components.code, {\n children: \"status: validated\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Submit portfolio forecast","description":"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe.\n\nSet `validate_only` to run the full validation without storing the forecast. The acknowledgment then carries `status: validated`.","deprecated":null,"version":null,"openapi":"/portfolio-forecasts-openapi.json post /portfolio-forecasts/v1alpha1/submissions","href":"/api-reference/submit-portfolio-forecast","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Submit portfolio forecast","description":"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe.\n\nSet `validate_only` to run the full validation without storing the forecast. The acknowledgment then carries `status: validated`.","operationId":"submitPortfolioForecast","requestBody":"5a30ac74-4e8c-4634-86aa-dafe5b78757d","responses":{"200":"6d37a006-4a38-41f1-8398-205d82146507","403":"b3adca9e-0376-42c5-bb24-5456431cabbb","413":"3eef702d-e0d2-4a79-aa85-1d284f2a5eb9","422":"9585b3ed-a902-4f06-872a-96072c1d3f73","429":"b7adcf4c-9bbc-4fd7-834c-8d277909984a","502":"7f775b09-79e9-4760-ab49-dfdf6925baca","504":"9142ac49-38d9-44d6-817a-6434b0a39624"},"method":"post","type":"path","servers":["ecb0859b-9c5c-448a-b20c-006b82f9a466"],"security":["a769ec25-6e5f-482a-baad-8a9184eb5dc4"],"path":"/portfolio-forecasts/v1alpha1/submissions","baseUrlOptions":["https://api.engrate.io"],"title":"Submit portfolio forecast","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Portfolio production and consumption forecasts for one delivery day.","properties":{"delivery_day":{"type":"string","format":"date","description":"The day the energy is delivered, as a Europe/Berlin calendar day.","isRequired":true,"uniqueKey":"delivery_day","typeLabel":"string\u003cdate>"},"series":{"type":"array","minItems":1,"items":{"type":"object","description":"A production or consumption series for the delivery day. Set exactly one of control_area or malo.","properties":{"kind":{"type":"string","enum":["production","consumption"],"description":"What the series describes. Production and consumption are separate series, both sent as positive values.","isRequired":true,"uniqueKey":"series.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"values":{"type":"array","items":{"type":"number","uniqueKey":"series.items.[INDEX].values.items.[INDEX]","typeLabel":"number"},"description":"One value per quarter-hour, from local (Europe/Berlin) midnight to midnight: 96 values on a normal day, 92 on the spring-forward day, 100 on the fall-back day.","isRequired":true,"uniqueKey":"series.items.[INDEX].values","typeLabel":"number[]"},"control_area":{"oneOf":[{"type":"string","description":"Control area the series is pre-aggregated for. Case-sensitive.","enum":["50Hertz","Amprion","TenneT","TransnetBW"],"uniqueKey":"series.items.[INDEX].control_area.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Control area the series is pre-aggregated for. Case-sensitive.","uniqueKey":"series.items.[INDEX].control_area.oneOf.1","typeLabel":"null"}],"uniqueKey":"series.items.[INDEX].control_area","typeLabel":"enum\u003cstring> | null"},"malo":{"oneOf":[{"type":"string","description":"Eleven-digit market location ID. Requires a matching `malo_mapping` entry on the request.","pattern":"^\\d{11}$","uniqueKey":"series.items.[INDEX].malo.oneOf.0","typeLabel":"string"},{"type":"null","description":"Eleven-digit market location ID. Requires a matching `malo_mapping` entry on the request.","uniqueKey":"series.items.[INDEX].malo.oneOf.1","typeLabel":"null"}],"uniqueKey":"series.items.[INDEX].malo","typeLabel":"string | null"}},"required":["kind","values"],"uniqueKey":"series.items.[INDEX]","typeLabel":"object"},"description":"The day's series. Several series per control area and kind are allowed and summed. Omitted control areas count as zero.","isRequired":true,"uniqueKey":"series","typeLabel":"object[]"},"unit":{"type":"string","enum":["MW","MWH"],"default":"MW","description":"`MW`: average power per quarter-hour. `MWH`: energy per quarter-hour.","uniqueKey":"unit","typeLabel":"enum\u003cstring>"},"malo_mapping":{"oneOf":[{"type":"object","description":"MaLo-to-control-area mapping, required when a series is tagged by MaLo.","uniqueKey":"malo_mapping.oneOf.0","typeLabel":"object"},{"type":"null","description":"MaLo-to-control-area mapping, required when a series is tagged by MaLo.","uniqueKey":"malo_mapping.oneOf.1","typeLabel":"null"}],"uniqueKey":"malo_mapping","typeLabel":"object | null"},"validate_only":{"type":"boolean","default":false,"description":"Run the full validation and return the acknowledgment without storing the forecast. The `input_hash` matches the one a stored submission of the same payload gets.","uniqueKey":"validate_only","typeLabel":"boolean"}},"required":["delivery_day","series"],"example":{"delivery_day":"2026-09-01","unit":"MW","series":[{"kind":"production","control_area":"TenneT","values":[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3,3.1,3.2,3.3,3.2,3.1,3,2.9,2.8,2.7,2.6,2.5,2.4,2.3,2.2,2.1,2,1.9,1.8,1.7,1.6,1.5,1.4,1.3,1.2,1.1,1,0.9,0.8,0.7,0.6,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]},{"kind":"consumption","control_area":"TenneT","values":[1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.23,1.26,1.29,1.32,1.35,1.38,1.41,1.44,1.47,1.5,1.53,1.56,1.59,1.62,1.65,1.68,1.71,1.74,1.77,1.8,1.77,1.74,1.71,1.68,1.65,1.62,1.59,1.56,1.53,1.5,1.47,1.44,1.41,1.38,1.35,1.32,1.29,1.26,1.23,1.2,1.2,1.2,1.2]}],"validate_only":false},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"delivery_day":"2026-09-01","unit":"MW","series":[{"kind":"production","control_area":"TenneT","values":[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3,3.1,3.2,3.3,3.2,3.1,3,2.9,2.8,2.7,2.6,2.5,2.4,2.3,2.2,2.1,2,1.9,1.8,1.7,1.6,1.5,1.4,1.3,1.2,1.1,1,0.9,0.8,0.7,0.6,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]},{"kind":"consumption","control_area":"TenneT","values":[1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.2,1.23,1.26,1.29,1.32,1.35,1.38,1.41,1.44,1.47,1.5,1.53,1.56,1.59,1.62,1.65,1.68,1.71,1.74,1.77,1.8,1.77,1.74,1.71,1.68,1.65,1.62,1.59,1.56,1.53,1.5,1.47,1.44,1.41,1.38,1.35,1.32,1.29,1.26,1.23,1.2,1.2,1.2,1.2]}],"validate_only":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"6d37a006-4a38-41f1-8398-205d82146507":{"description":"Forecast accepted","content":{"application/json":{"schema":{"type":"object","description":"Acknowledgment of an accepted forecast submission.","properties":{"delivery_day":{"type":"string","format":"date","isRequired":true,"uniqueKey":"delivery_day","typeLabel":"string\u003cdate>"},"interval_count":{"type":"integer","description":"Quarter-hours in the delivery day: 96 on a normal day, 92 on the spring-forward day, 100 on the fall-back day.","isRequired":true,"uniqueKey":"interval_count","typeLabel":"integer"},"series_received":{"type":"integer","isRequired":true,"uniqueKey":"series_received","typeLabel":"integer"},"total_production_mwh":{"type":"number","description":"Total production energy received for the delivery day, in MWh.","isRequired":true,"uniqueKey":"total_production_mwh","typeLabel":"number"},"total_consumption_mwh":{"type":"number","description":"Total consumption energy received for the delivery day, in MWh.","isRequired":true,"uniqueKey":"total_consumption_mwh","typeLabel":"number"},"input_hash":{"type":"string","description":"Content hash of the submission. Identical payloads produce identical hashes.","isRequired":true,"uniqueKey":"input_hash","typeLabel":"string"},"status":{"type":"string","enum":["received","validated"],"default":"received","description":"`received`: the forecast is stored and picked up for processing. `validated`: the payload passed every check and nothing was stored, because `validate_only` was set.","uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"required":["delivery_day","interval_count","series_received","total_production_mwh","total_consumption_mwh","input_hash"],"example":{"delivery_day":"2026-09-01","interval_count":96,"series_received":2,"total_production_mwh":31.6,"total_consumption_mwh":31.8,"input_hash":"eb50caedb5b4ccb0ca4c86cda9546f966cabac1d7daedf59e5260dd4b01197f2","status":"received"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"delivery_day":"2026-09-01","interval_count":96,"series_received":2,"total_production_mwh":31.6,"total_consumption_mwh":31.8,"input_hash":"eb50caedb5b4ccb0ca4c86cda9546f966cabac1d7daedf59e5260dd4b01197f2","status":"received"}}},"exampleType":"generated"}},"exampleType":"generated"},"b3adca9e-0376-42c5-bb24-5456431cabbb":{"description":"The authenticated organization is not authorized to use the Portfolio Forecasts API.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"3eef702d-e0d2-4a79-aa85-1d284f2a5eb9":{"description":"The request body is too large.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"9585b3ed-a902-4f06-872a-96072c1d3f73":{"description":"Forecast validation failed.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"array","items":{"type":"object","properties":{"loc":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"object"}},"required":["loc","msg","type"],"uniqueKey":"detail.items.[INDEX]","typeLabel":"object"},"uniqueKey":"detail","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"b7adcf4c-9bbc-4fd7-834c-8d277909984a":{"description":"The request is throttled.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"Time to wait before retrying."}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"7f775b09-79e9-4760-ab49-dfdf6925baca":{"description":"Forecast service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"const":"Forecast service unavailable","isRequired":true,"uniqueKey":"detail","typeLabel":"any"}},"required":["detail"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"Forecast service unavailable"}}},"exampleType":"generated"}},"exampleType":"generated"},"9142ac49-38d9-44d6-817a-6434b0a39624":{"description":"Forecast service timed out.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"const":"Forecast service timed out","isRequired":true,"uniqueKey":"detail","typeLabel":"any"}},"required":["detail"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"Forecast service timed out"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a769ec25-6e5f-482a-baad-8a9184eb5dc4":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","scopes":[]}}},"servers":{"ecb0859b-9c5c-448a-b20c-006b82f9a466":{"url":"https://api.engrate.io"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","scopes":[]},"schema":{"title":"Authorization","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyAuth","name":"Authorization"}],"title":"apiKeyAuth"}]},"originalFileLocation":"portfolio-forecasts-openapi.json"},"subdomain":"engrate","siteName":"Engrate Developer Documentation","title":"Submit portfolio forecast - Engrate Developer Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T14:23:57.522Z","originalFileLocation":"api-reference/submit-portfolio-forecast.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe. Set validate_only to run the full validation without storing the forecast. The acknowledgment then carries status: validated.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Engrate Developer Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Submit portfolio forecast - Engrate Developer Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe. Set validate_only to run the full validation without storing the forecast. The acknowledgment then carries status: validated.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Engrate Developer Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.engrate.io/api-reference/submit-portfolio-forecast\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://engrate.mintlify.app/_mintlify/api/og/v2?division=Submissions\u0026amp;title=Submit+portfolio+forecast\u0026amp;description=Submit+a+portfolio+forecast+for+one+delivery+day.+Re-submitting+for+the+same+delivery+day+replaces+the+previous+submission.+Submitting+an+identical+payload+chan\u0026amp;theme=afa5e8a3bcc00498066c4a3e\u0026amp;signature=7df6a0393e0db4fe47b81524cffd1ed8b87618cfda5bc4fce92a0025215703d9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Submit portfolio forecast - Engrate Developer Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe. Set validate_only to run the full validation without storing the forecast. The acknowledgment then carries status: validated.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://engrate.mintlify.app/_mintlify/api/og/v2?division=Submissions\u0026amp;title=Submit+portfolio+forecast\u0026amp;description=Submit+a+portfolio+forecast+for+one+delivery+day.+Re-submitting+for+the+same+delivery+day+replaces+the+previous+submission.+Submitting+an+identical+payload+chan\u0026amp;theme=afa5e8a3bcc00498066c4a3e\u0026amp;signature=7df6a0393e0db4fe47b81524cffd1ed8b87618cfda5bc4fce92a0025215703d9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/engrate/z3Ru6D-2hQC1EDPe/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Engrate Developer Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FFBB00\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.engrate.io/api-reference/submit-portfolio-forecast\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/submit-portfolio-forecast.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.engrate.io/#organization\",\"name\":\"Engrate Developer Documentation\",\"url\":\"https://docs.engrate.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/engrate/zV_tsIFvjMafIhqO/images/logo-light.svg?fit=max\u0026auto=format\u0026n=zV_tsIFvjMafIhqO\u0026q=85\u0026s=0a166849b56cc0dbfbb1584afda2d0ba\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.engrate.io#website\",\"name\":\"Engrate Developer Documentation\",\"url\":\"https://docs.engrate.io\",\"publisher\":{\"@id\":\"https://docs.engrate.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast#webpage\",\"url\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast\",\"name\":\"Submit portfolio forecast\",\"description\":\"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe. Set validate_only to run the full validation without storing the forecast. The acknowledgment then carries status: validated.\",\"dateModified\":\"2026-11-03T14:23:57.522Z\",\"isPartOf\":{\"@id\":\"https://docs.engrate.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portfolio Forecasts\",\"item\":\"https://docs.engrate.io/api-reference/portfolio-forecasts/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Submissions\",\"item\":\"https://docs.engrate.io/api-reference/portfolio-forecasts/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Submit portfolio forecast\",\"item\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast#apireference\",\"headline\":\"Submit portfolio forecast\",\"name\":\"Submit portfolio forecast\",\"description\":\"Submit a portfolio forecast for one delivery day. Re-submitting for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe. Set validate_only to run the full validation without storing the forecast. The acknowledgment then carries status: validated.\",\"url\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast\",\"mainEntityOfPage\":{\"@id\":\"https://docs.engrate.io/api-reference/submit-portfolio-forecast#webpage\"},\"dateModified\":\"2026-11-03T14:23:57.522Z\",\"publisher\":{\"@id\":\"https://docs.engrate.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.engrate.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Engrate Developer Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Engrate Developer Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/guides/welcome"}]},{"tab":"API reference","groups":[{"group":"Market Communication","pages":[{"title":"Market Communication API","sidebarTitle":"Overview","href":"/api-reference/market-communication/overview"},{"group":"Schedules","pages":[{"group":"Models","icon":"cube","pages":[{"title":"Schedule","href":"/api-reference/schedule-management/models/schedule"},{"title":"Schedule Version","href":"/api-reference/schedule-management/models/schedule-version"},{"title":"Schedule Series","href":"/api-reference/schedule-management/models/schedule-series"},{"title":"Audit Log","href":"/api-reference/schedule-management/models/audit-log"},{"title":"Exchange Priority","href":"/api-reference/schedule-management/models/exchange-priority"}]},{"title":"List Schedules","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/schedules","href":"/api-reference/schedules/list-schedules"},{"title":"Create Schedule","deprecated":null,"version":null,"openapi":"/openapi.json post /schedule-management/v1/schedules","href":"/api-reference/schedules/create-schedule"},{"title":"Get Schedule","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/schedules/{uid}","href":"/api-reference/schedules/get-schedule"},{"title":"List Schedule Versions","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/schedules/{uid}/versions","href":"/api-reference/schedules/list-schedule-versions"},{"title":"Get Schedule Series","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/schedule-series/{version_uid}","href":"/api-reference/schedules/get-schedule-series"},{"title":"Get Series State","deprecated":null,"version":null,"tag":"ALPHA","openapi":"/openapi.json get /schedule-management/v1/schedules/{uid}/series-state","href":"/api-reference/schedules/get-series-state"},{"title":"List Schedule Match Reports","deprecated":null,"version":null,"tag":"ALPHA","openapi":"/openapi.json get /schedule-management/v1/schedules/{uid}/reports","href":"/api-reference/schedules/list-schedule-match-reports"},{"title":"List Match Reports","deprecated":null,"version":null,"tag":"ALPHA","openapi":"/openapi.json get /schedule-management/v1/schedule-versions/{version_uid}/reports","href":"/api-reference/schedules/list-match-reports"},{"title":"List Incoming Messages","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/schedules/{uid}/incoming-messages","href":"/api-reference/schedules/list-incoming-messages"},{"title":"Get Incoming Message","deprecated":null,"version":null,"tag":"ALPHA","openapi":"/openapi.json get /schedule-management/v1/schedules/{uid}/incoming-messages/{message_uid}","href":"/api-reference/schedules/get-incoming-message"},{"title":"List Audit Logs","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/audit-logs","href":"/api-reference/audit-logs/list-audit-logs"},{"title":"Send Status Request","deprecated":null,"version":null,"openapi":"/openapi.json post /schedule-management/v1/send_status_request","href":"/api-reference/status-request/send-status-request"}]},{"group":"Confirmations","pages":[{"title":"Confirmations API Overview","tag":"ALPHA","href":"/api-reference/confirmations/overview"},{"title":"List Confirmed Schedules","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/confirmed-schedules","href":"/api-reference/timeseries/list-confirmed-schedules"},{"title":"List Confirmed Schedule Series","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/series/confirmed-schedules","href":"/api-reference/timeseries/list-confirmed-schedule-series"}]},{"group":"Allocations","pages":[{"title":"Allocations API Overview","tag":"ALPHA","href":"/api-reference/allocations/overview"},{"group":"Models","icon":"cube","pages":[{"title":"Allocation record","href":"/api-reference/allocations/models/allocation-record"},{"title":"Allocation quality","href":"/api-reference/allocations/models/allocation-quality"},{"title":"Allocation series","href":"/api-reference/allocations/models/allocation-series-item"},{"title":"Aggregate allocation record","href":"/api-reference/allocations/models/aggregate-allocation-record"},{"title":"Aggregate allocation","href":"/api-reference/allocations/models/aggregate-allocation"},{"title":"Finality","href":"/api-reference/allocations/models/finality"},{"title":"Aggregator role","href":"/api-reference/allocations/models/aggregator-role"},{"title":"Allocation basis","href":"/api-reference/allocations/models/allocation-basis"}]},{"title":"List Allocations","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/allocations","href":"/api-reference/timeseries/list-allocations"},{"title":"List Allocation Series","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/series/allocations","href":"/api-reference/timeseries/list-allocation-series"},{"title":"List Aggregate Allocations","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/aggregate-allocations","href":"/api-reference/timeseries/list-aggregate-allocations"},{"title":"List Aggregate Allocation Series","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/series/aggregate-allocations","href":"/api-reference/timeseries/list-aggregate-allocation-series"}]},{"group":"Imbalances","pages":[{"title":"Imbalances API Overview","tag":"ALPHA","href":"/api-reference/imbalances/overview"},{"group":"Models","icon":"cube","pages":[{"title":"Imbalance record","href":"/api-reference/imbalances/models/imbalance-record"},{"title":"Imbalance series","href":"/api-reference/imbalances/models/imbalance-series"}]},{"title":"List Imbalances","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/imbalance","href":"/api-reference/timeseries/list-imbalances"},{"title":"List Imbalance Series","deprecated":null,"version":null,"openapi":"/openapi.json get /market-access/v1alpha1/timeseries/series/imbalance","href":"/api-reference/timeseries/list-imbalance-series"}]},{"group":"Reference data","pages":[{"title":"List Exchange Priority Balance Groups","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/reference/exchange-priority-balance-groups","href":"/api-reference/reference/list-exchange-priority-balance-groups"},{"title":"Check Exchange Priority","deprecated":null,"version":null,"openapi":"/openapi.json get /schedule-management/v1/reference/exchange-priority-check/{eic_code}","href":"/api-reference/reference/check-exchange-priority"}]}]},{"group":"Portfolio Forecasts","pages":[{"group":"Submissions","pages":[{"title":"Portfolio Forecasts API Overview","description":"Submit production and consumption forecasts for a delivery day, and read back what is stored","tag":"ALPHA","href":"/api-reference/portfolio-forecasts/overview"},{"title":"Submit portfolio forecast","deprecated":null,"version":null,"openapi":"/portfolio-forecasts-openapi.json post /portfolio-forecasts/v1alpha1/submissions","href":"/api-reference/submit-portfolio-forecast"},{"title":"List stored delivery days","description":"List every delivery day the forecast service holds, newest first, with the `input_hash` of its stored submission and whether that exact input was already processed downstream.","deprecated":null,"version":null,"openapi":"/portfolio-forecasts-openapi.json get /portfolio-forecasts/v1alpha1/submissions","href":"/api-reference/list-stored-delivery-days"},{"title":"Read back stored forecast","deprecated":null,"version":null,"openapi":"/portfolio-forecasts-openapi.json get /portfolio-forecasts/v1alpha1/submissions/{delivery_day}","href":"/api-reference/read-back-stored-forecast"}]}]},{"group":"Core","pages":[{"group":"Market reference data","pages":[{"title":"Core API Overview","href":"/api-reference/core/overview"},{"group":"Models","icon":"cube","pages":[{"title":"Party","href":"/api-reference/core/models/party"},{"title":"Bidding Zone","href":"/api-reference/core/models/bidding-zone"},{"title":"Scheduling Area","href":"/api-reference/core/models/scheduling-area"},{"title":"Control Area","href":"/api-reference/core/models/control-area"},{"title":"Metering Grid Area","href":"/api-reference/core/models/metering-grid-area"},{"title":"Metering Point","href":"/api-reference/core/models/metering-point"},{"title":"Accounting Point","href":"/api-reference/core/models/accounting-point"},{"title":"Meter","href":"/api-reference/core/models/meter"},{"title":"Register","href":"/api-reference/core/models/register"},{"title":"Resource","href":"/api-reference/core/models/resource"},{"title":"Extra Identifier","href":"/api-reference/core/models/extra-identifier"}]},{"title":"List Parties","deprecated":null,"version":null,"openapi":"/openapi.json get /core/v1/parties","href":"/api-reference/list-parties"},{"title":"List Bidding Zones","deprecated":null,"version":null,"openapi":"/openapi.json get /core/v1/bidding-zones","href":"/api-reference/list-bidding-zones"},{"title":"List Scheduling Areas","deprecated":null,"version":null,"openapi":"/openapi.json get /core/v1/scheduling-areas","href":"/api-reference/list-scheduling-areas"},{"title":"List Control Areas","deprecated":null,"version":null,"openapi":"/openapi.json get /core/v1/control-areas","href":"/api-reference/list-control-areas"},{"title":"List Metering Grid Areas","deprecated":null,"version":null,"openapi":"/openapi.json get /core/v1/metering-grid-areas","href":"/api-reference/list-metering-grid-areas"},{"title":"Get Geodata","deprecated":null,"version":null,"openapi":"/openapi.json get /core/v1/geo","href":"/api-reference/geo/get-geodata"},{"title":"List holidays","openapi":"GET /core/v1/holidays","href":"/api-reference/core/holidays"}]}]},{"group":"Cost of Energy","pages":[{"group":"Tariffs","pages":[{"title":"Cost of Energy API Overview","href":"/api-reference/cost-of-energy/overview"},{"title":"Python SDK","tag":"BETA","href":"/api-reference/cost-of-energy/engratepy"},{"title":"Calculation Pipeline","href":"/api-reference/cost-of-energy/calculation-pipeline"},{"title":"In Optimisation","href":"/api-reference/cost-of-energy/optimisation"},{"group":"Models","icon":"cube","pages":[{"title":"Tariff","href":"/api-reference/cost-of-energy/models/tariff"},{"title":"Tariff Component","href":"/api-reference/cost-of-energy/models/tariff-component"},{"title":"Dataset","href":"/api-reference/cost-of-energy/models/dataset"},{"title":"Unit","href":"/api-reference/cost-of-energy/models/unit"},{"title":"Level","href":"/api-reference/cost-of-energy/models/level"},{"title":"Periodic Amount","href":"/api-reference/cost-of-energy/models/periodic-amount"},{"title":"Resolution","href":"/api-reference/cost-of-energy/models/resolution"}]},{"group":"Functions","icon":"cube","pages":[{"title":"Function","href":"/api-reference/cost-of-energy/functions/overview"},{"title":"Function: Constant","href":"/api-reference/cost-of-energy/functions/constant"},{"title":"Function: Add","href":"/api-reference/cost-of-energy/functions/add"},{"title":"Function: Subtract","href":"/api-reference/cost-of-energy/functions/subtract"},{"title":"Function: Divide","href":"/api-reference/cost-of-energy/functions/divide"},{"title":"Function: Multiply","href":"/api-reference/cost-of-energy/functions/multiply"},{"title":"Function: Aggregate","href":"/api-reference/cost-of-energy/functions/aggregate"},{"title":"Function: Resample","href":"/api-reference/cost-of-energy/functions/resample"},{"title":"Function: Select","href":"/api-reference/cost-of-energy/functions/select"},{"title":"Function: Mask","href":"/api-reference/cost-of-energy/functions/mask"},{"title":"Function: Clip","href":"/api-reference/cost-of-energy/functions/clip"},{"title":"Function: Lookup","href":"/api-reference/cost-of-energy/functions/lookup"}]},{"group":"Conditions","icon":"cube","pages":[{"title":"Conditions","href":"/api-reference/cost-of-energy/conditions/overview"},{"title":"Condition: Month","href":"/api-reference/cost-of-energy/conditions/month"},{"title":"Condition: DayOfWeek","href":"/api-reference/cost-of-energy/conditions/day-of-week"},{"title":"Condition: TimeOfDay","href":"/api-reference/cost-of-energy/conditions/time-of-day"},{"title":"Condition: ExcludeHolidays","href":"/api-reference/cost-of-energy/conditions/exclude-holidays"},{"title":"Condition: And","href":"/api-reference/cost-of-energy/conditions/and"},{"title":"Condition: Or","href":"/api-reference/cost-of-energy/conditions/or"},{"title":"Condition: Not","href":"/api-reference/cost-of-energy/conditions/not"},{"title":"Condition: Highest","href":"/api-reference/cost-of-energy/conditions/highest"},{"title":"Condition: Lowest","href":"/api-reference/cost-of-energy/conditions/lowest"}]},{"title":"List profiles","deprecated":null,"version":null,"openapi":"/openapi.json get /cost-of-energy/v1/profiles","href":"/api-reference/profiles/list-profiles"},{"title":"Get a profile","deprecated":null,"version":null,"openapi":"/openapi.json get /cost-of-energy/v1/profiles/{profile_id}","href":"/api-reference/profiles/get-a-profile"},{"title":"Create a profile","deprecated":null,"version":null,"openapi":"/openapi.json post /cost-of-energy/v1/profiles","href":"/api-reference/profiles/create-a-profile"},{"title":"Update a profile","deprecated":null,"version":null,"openapi":"/openapi.json put /cost-of-energy/v1/profiles/{profile_id}","href":"/api-reference/profiles/update-a-profile"},{"title":"Delete a profile","deprecated":null,"version":null,"openapi":"/openapi.json delete /cost-of-energy/v1/profiles/{profile_id}","href":"/api-reference/profiles/delete-a-profile"},{"title":"List Datasets","deprecated":null,"version":null,"openapi":"/openapi.json get /cost-of-energy/v1/datasets","href":"/api-reference/list-datasets"},{"title":"List Tariffs","deprecated":null,"version":null,"openapi":"/openapi.json get /cost-of-energy/v1/tariffs","href":"/api-reference/list-tariffs"},{"title":"Get Tariff","deprecated":null,"version":null,"openapi":"/openapi.json get /cost-of-energy/v1/tariffs/{tariff_id}","href":"/api-reference/get-tariff"},{"title":"Calculate Tariff","deprecated":null,"version":null,"openapi":"/openapi.json post /cost-of-energy/v1/calculate","href":"/api-reference/calculate-tariff"},{"title":"Get Simplified Tariff","openapi":"GET /cost-of-energy/v1/tariffs/{tariff_id}/simplified","href":"/api-reference/cost-of-energy/get-simplified-tariff"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/product-updates"}]}]},"basePath":"","title":"Submit portfolio forecast - Engrate Developer Documentation","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}