Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower
of its current aggregated production across the whole supplier client base. If you provide an
end_time with a 1 min granularit, we will revert the curtailed amount to it’s original amount at that time.
If no end_time is given, we do not automatically revert back.
When you execute flex on already curtailed devices, we will overwrite their current curtailment and
scheduled end time with the new flex command you provided.
Timestamp fields in UTC.
Time format examples:
2023-10-01T00:00:00Z
2023-10-01T00:00:00
control_type can be set to export_curtailment, production_curtailment or default.
100 % target_percentage means that we will enable full production on the full pv panel fleet again.
You can also provide a list of brands to filter on to fully turn off or on
curtailment for all devices of a specific brand with the brand_filter parameter.
If no brands are provided, we will execute flex on all brands.
NOTE:
The pv devices might need some time to react. If using end_time please provide end_time at
least 4 minutes in the future to ensure the device can react in time. Some may react slower than others.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Nox Energy API Documentation","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/noxenergy/LK-ditiiJi5qdR_F/logo/no_background_1280w.svg?fit=max\u0026auto=format\u0026n=LK-ditiiJi5qdR_F\u0026q=85\u0026s=76d199c82e3e9004e4b2b0485495b689","dark":"https://mintcdn.com/noxenergy/LK-ditiiJi5qdR_F/logo/no_background_1280w.svg?fit=max\u0026auto=format\u0026n=LK-ditiiJi5qdR_F\u0026q=85\u0026s=76d199c82e3e9004e4b2b0485495b689"},"favicon":"https://mintcdn.com/noxenergy/oDgp7bhrcXB1ycgu/favicon.ico?fit=max\u0026auto=format\u0026n=oDgp7bhrcXB1ycgu\u0026q=85\u0026s=0c3dbf242c2c387619658d2efd5cab91","navbar":{"links":[{"href":"mailto:support@nox.energy","label":"Support"}],"primary":{"type":"button","label":"Dashboard Demo","href":"https://nox-supplier.vercel.app/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/energy-nox"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://www.nox.energy/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"noxenergy","hasAudioNarration":false,"actualSubdomain":"noxenergy","customDomains":["docs.nox.energy"],"gitSource":{"type":"github","owner":"robinvcnox","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae21b5360416b77ca6bd557","collectionId":"673bb1f5-df8e-4add-8650-aebc2067fa86","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae21b5360416b77ca6bd557"},"entitlements":{},"buildId":"6ae21b5360416b77ca6bd557","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Docs","count":52},{"language":"default","tag":"Asset Info","count":20},{"language":"default","tag":"Connecting Users and Devices","count":14},{"language":"default","tag":"HP","count":11},{"language":"default","tag":"PV","count":11},{"language":"default","tag":"Guides","count":9},{"language":"default","tag":"User Management","count":9},{"language":"default","tag":"Battery (preview)","count":8},{"language":"default","tag":"Connections (preview)","count":7},{"language":"default","tag":"API Guides","count":4}]},"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":"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":"byok-sep-25","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":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-docs/pv/pv-control/post-pv-control-flex","slug":"/api-docs/pv/pv-control/post-pv-control-flex","pageMetadata":{"title":"Post Pv Control Flex","description":"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower \nof its current aggregated production across the whole supplier client base. If you provide an \nend_time with a 1 min granularit, we will revert the curtailed amount to it's original amount at that time.\nIf no end_time is given, we do not automatically revert back.\n When you execute flex on already curtailed devices, we will overwrite their current curtailment and\n scheduled end time with the new flex command you provided.\n \n\n Timestamp fields in UTC. \n\n Time format examples: \n * 2023-10-01T00:00:00Z\n \n * 2023-10-01T00:00:00 \n\n\n \n `control_type` can be set to `export_curtailment`, `production_curtailment` or `default`.\n \n * 100 % target_percentage means that we will enable full production on the full pv panel fleet again.\n \n * You can also provide a list of brands to filter on to fully turn off or on \n curtailment for all devices of a specific brand with the `brand_filter` parameter.\n If no brands are provided, we will execute flex on all brands.\n\n**NOTE**: \n * The pv devices might need some time to react. If using end_time please provide end_time at\nleast 4 minutes in the future to ensure the device can react in time. Some may react slower than others.","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json post /v1/devices/pv/flex","href":"/api-docs/pv/pv-control/post-pv-control-flex","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 li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower\\nof its current aggregated production across the whole supplier client base. If you provide an\\nend_time with a 1 min granularit, we will revert the curtailed amount to it’s original amount at that time.\\nIf no end_time is given, we do not automatically revert back.\\nWhen you execute flex on already curtailed devices, we will overwrite their current curtailment and\\nscheduled end time with the new flex command you provided.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Timestamp fields in UTC.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Time format examples:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"2023-10-01T00:00:00Z\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"2023-10-01T00:00:00\"\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"control_type\"\n }), \" can be set to \", _jsx(_components.code, {\n children: \"export_curtailment\"\n }), \", \", _jsx(_components.code, {\n children: \"production_curtailment\"\n }), \" or \", _jsx(_components.code, {\n children: \"default\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsx(_components.p, {\n children: \"100 % target_percentage means that we will enable full production on the full pv panel fleet again.\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"You can also provide a list of brands to filter on to fully turn off or on\\ncurtailment for all devices of a specific brand with the \", _jsx(_components.code, {\n children: \"brand_filter\"\n }), \" parameter.\\nIf no brands are provided, we will execute flex on all brands.\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"NOTE\"\n }), \":\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"The pv devices might need some time to react. If using end_time please provide end_time at\\nleast 4 minutes in the future to ensure the device can react in time. Some may react slower than others.\"\n }), \"\\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":"Post Pv Control Flex","description":"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower \nof its current aggregated production across the whole supplier client base. If you provide an \nend_time with a 1 min granularit, we will revert the curtailed amount to it's original amount at that time.\nIf no end_time is given, we do not automatically revert back.\n When you execute flex on already curtailed devices, we will overwrite their current curtailment and\n scheduled end time with the new flex command you provided.\n \n\n Timestamp fields in UTC. \n\n Time format examples: \n * 2023-10-01T00:00:00Z\n \n * 2023-10-01T00:00:00 \n\n\n \n `control_type` can be set to `export_curtailment`, `production_curtailment` or `default`.\n \n * 100 % target_percentage means that we will enable full production on the full pv panel fleet again.\n \n * You can also provide a list of brands to filter on to fully turn off or on \n curtailment for all devices of a specific brand with the `brand_filter` parameter.\n If no brands are provided, we will execute flex on all brands.\n\n**NOTE**: \n * The pv devices might need some time to react. If using end_time please provide end_time at\nleast 4 minutes in the future to ensure the device can react in time. Some may react slower than others.","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json post /v1/devices/pv/flex","href":"/api-docs/pv/pv-control/post-pv-control-flex","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["PV Control"],"summary":"Post Pv Control Flex","description":"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower \nof its current aggregated production across the whole supplier client base. If you provide an \nend_time with a 1 min granularit, we will revert the curtailed amount to it's original amount at that time.\nIf no end_time is given, we do not automatically revert back.\n When you execute flex on already curtailed devices, we will overwrite their current curtailment and\n scheduled end time with the new flex command you provided.\n \n\n Timestamp fields in UTC. \n\n Time format examples: \n * 2023-10-01T00:00:00Z\n \n * 2023-10-01T00:00:00 \n\n\n \n `control_type` can be set to `export_curtailment`, `production_curtailment` or `default`.\n \n * 100 % target_percentage means that we will enable full production on the full pv panel fleet again.\n \n * You can also provide a list of brands to filter on to fully turn off or on \n curtailment for all devices of a specific brand with the `brand_filter` parameter.\n If no brands are provided, we will execute flex on all brands.\n\n**NOTE**: \n * The pv devices might need some time to react. If using end_time please provide end_time at\nleast 4 minutes in the future to ensure the device can react in time. Some may react slower than others.","operationId":"post_pv_control_flex_v1_devices_pv_flex_post","parameters":[],"requestBody":"4c8a3da3-d2da-4ca2-afb3-b9a1747b1693","responses":{"200":"a190c38c-eee2-427e-b4c3-6d49111d3a34","400":"1b2e5122-c06a-4e8a-a59f-040c07178303","422":"297cdc20-867c-44e2-8b52-f97f5961cb6a"},"method":"post","type":"path","servers":["508f0c27-acf4-47a5-9bd3-2213e0f7f99e"],"security":["d9c83360-8f8f-48e3-b62f-928bb34a0af7"],"path":"/v1/devices/pv/flex","baseUrlOptions":["https://api.nox.energy"],"title":"Post Pv Control Flex","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"target_kw":{"oneOf":[{"type":"number","title":"Target Kw","description":"Target power in kW to reduce production with.","uniqueKey":"target_kw.oneOf.0","typeLabel":"number"},{"type":"null","title":"Target Kw","description":"Target power in kW to reduce production with.","uniqueKey":"target_kw.oneOf.1","typeLabel":"null"}],"uniqueKey":"target_kw","typeLabel":"number | null"},"target_percentage":{"oneOf":[{"type":"number","title":"Target Percentage","description":"Target percentage of max capacity to reduce production with.","maximum":100,"minimum":0,"uniqueKey":"target_percentage.oneOf.0","typeLabel":"number"},{"type":"null","title":"Target Percentage","description":"Target percentage of max capacity to reduce production with.","uniqueKey":"target_percentage.oneOf.1","typeLabel":"null"}],"uniqueKey":"target_percentage","typeLabel":"number | null"},"end_time":{"oneOf":[{"type":"string","title":"End Time","description":"End time for the flex request in ISO 8601 format in UTC. If not provided, the flex request will be applied indefinitely until a new request is made.","uniqueKey":"end_time.oneOf.0","typeLabel":"string"},{"type":"null","title":"End Time","description":"End time for the flex request in ISO 8601 format in UTC. If not provided, the flex request will be applied indefinitely until a new request is made.","uniqueKey":"end_time.oneOf.1","typeLabel":"null"}],"uniqueKey":"end_time","typeLabel":"string | null"},"brand_filter":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"brand_filter.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Brand Filter","description":"Filter devices by brands. If not provided, all brands will be considered.","uniqueKey":"brand_filter.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Brand Filter","description":"Filter devices by brands. If not provided, all brands will be considered.","uniqueKey":"brand_filter.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand_filter","typeLabel":"string[] | null"}},"type":"object","title":"DevicesPVFlexRequest","uniqueKey":"","typeLabel":"DevicesPVFlexRequest · object"},"examples":{"flex_on_target":{"title":"flex_on_target","description":"Example for executing flex based on a target in kW to reduce the production with.","value":{"target_kw":2.5}},"flex_on_percentage_capacity":{"title":"flex_on_percentage_capacity","description":"Example for executing flex based on a target in % of max capacity to alter the production with.","value":{"target_percentage":70}},"flex_on_target_with_end_time":{"title":"flex_on_target_with_end_time","description":"Example for executing flex based on a target in kW to reduce the production with.","value":{"target_kw":10,"end_time":"2025-10-01T00:00:00Z"}},"flex_on_brand_filter":{"title":"flex_on_brand_filter","description":"Example for executing flex based on a target in % of max capacity to alter the production with for specific brands.","value":{"target_percentage":0,"brand_filter":["Sma","Solis"]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"a190c38c-eee2-427e-b4c3-6d49111d3a34":{"description":"All controls accepted successfully","content":{"application/json":{"schema":{"properties":{"meta":{"properties":{"energy_supplier":{"type":"string","title":"Energy Supplier","description":"The energy supplier associated with the PV flex request.","isRequired":true,"uniqueKey":"meta.energy_supplier","typeLabel":"string"}},"type":"object","required":["energy_supplier"],"title":"DevicesPVFlexMeta","description":"Response metadata.","isRequired":true,"uniqueKey":"meta","typeLabel":"DevicesPVFlexMeta · object"}},"type":"object","required":["meta"],"title":"DevicesPVFlexResponse","uniqueKey":"","typeLabel":"DevicesPVFlexResponse · object"},"example":{"meta":{"energy_supplier":"Energy Supplier A"}},"examples":{"Example":{"title":"Example","value":{"meta":{"energy_supplier":"Energy Supplier A"}}}},"exampleType":"examples"}},"exampleType":"examples"},"1b2e5122-c06a-4e8a-a59f-040c07178303":{"description":"Invalid request parameters","content":{"application/json":{"example":{"detail":"None of the provided device_ids allow steering or are compatible."},"examples":{"Example":{"title":"Example","value":{"detail":"None of the provided device_ids allow steering or are compatible."}}},"exampleType":"examples"}},"exampleType":"examples"},"297cdc20-867c-44e2-8b52-f97f5961cb6a":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"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"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d9c83360-8f8f-48e3-b62f-928bb34a0af7":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API Key authentication. Enter your API key in the format: YOUR_API_KEY","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"508f0c27-acf4-47a5-9bd3-2213e0f7f99e":{"url":"https://api.nox.energy","description":"Production Server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"API Key authentication. Enter your API key in the format: YOUR_API_KEY","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"API Key authentication. Enter your API key in the format: YOUR_API_KEY","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-docs/pv/openapi-pv.json"},"subdomain":"noxenergy","siteName":"Nox Energy API Documentation","title":"Post Pv Control Flex - Nox Energy API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T15:57:21.668Z","originalFileLocation":"api-docs/pv/pv-control/post-pv-control-flex.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=\"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower of its current aggregated production across the whole supplier client base. If you provide an end_time with a 1 min granularit, we will revert the curtailed amount to it\u0026#x27;s original amount at that time. If no end_time is given, we do not automatically revert back. When you execute flex on already curtailed devices, we will overwrite their current curtailment and scheduled end time with the new flex command you provided. Timestamp fields in UTC. Time format examples: 2023-10-01T00:00:00Z 2023-10-01T00:00:00 control_type can be set to export_curtailment, production_curtailment or default. 100 % target_percentage means that we will enable full production on the full pv panel fleet again. You can also provide a list of brands to filter on to fully turn off or on curtailment for all devices of a specific brand with the brand_filter parameter. If no brands are provided, we will execute flex on all brands. NOTE: * The pv devices might need some time to react. If using end_time please provide end_time at least 4 minutes in the future to ensure the device can react in time. Some may react slower than others.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nox Energy API 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/noxenergy/ApHhzoqG1AajPnW6/_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/noxenergy/ApHhzoqG1AajPnW6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/noxenergy/ApHhzoqG1AajPnW6/_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/noxenergy/ApHhzoqG1AajPnW6/_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/noxenergy/ApHhzoqG1AajPnW6/_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/noxenergy/ApHhzoqG1AajPnW6/_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/noxenergy/ApHhzoqG1AajPnW6/_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/noxenergy/ApHhzoqG1AajPnW6/_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/noxenergy/ApHhzoqG1AajPnW6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Post Pv Control Flex - Nox Energy API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower of its current aggregated production across the whole supplier client base. If you provide an end_time with a 1 min granularit, we will revert the curtailed amount to it\u0026#x27;s original amount at that time. If no end_time is given, we do not automatically revert back. When you execute flex on already curtailed devices, we will overwrite their current curtailment and scheduled end time with the new flex command you provided. Timestamp fields in UTC. Time format examples: 2023-10-01T00:00:00Z 2023-10-01T00:00:00 control_type can be set to export_curtailment, production_curtailment or default. 100 % target_percentage means that we will enable full production on the full pv panel fleet again. You can also provide a list of brands to filter on to fully turn off or on curtailment for all devices of a specific brand with the brand_filter parameter. If no brands are provided, we will execute flex on all brands. NOTE: * The pv devices might need some time to react. If using end_time please provide end_time at least 4 minutes in the future to ensure the device can react in time. Some may react slower than others.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nox Energy API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://noxenergy.mintlify.app/_mintlify/api/og/v2?division=PV+Control\u0026amp;title=Post+Pv+Control+Flex\u0026amp;description=Execute+pv+flex+controls+at+the+current+time+based+on+%25+of+max+capacity+or+amount+of+kW+in+production+you+want+to+lower+%0Aof+its+current+aggregated+production+ac\u0026amp;theme=b3b015f8de44df484b546194\u0026amp;signature=869b71cc672f44a794d90f770816165028872f397afaa600d90b5d081369389c\">\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=\"Post Pv Control Flex - Nox Energy API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower of its current aggregated production across the whole supplier client base. If you provide an end_time with a 1 min granularit, we will revert the curtailed amount to it\u0026#x27;s original amount at that time. If no end_time is given, we do not automatically revert back. When you execute flex on already curtailed devices, we will overwrite their current curtailment and scheduled end time with the new flex command you provided. Timestamp fields in UTC. Time format examples: 2023-10-01T00:00:00Z 2023-10-01T00:00:00 control_type can be set to export_curtailment, production_curtailment or default. 100 % target_percentage means that we will enable full production on the full pv panel fleet again. You can also provide a list of brands to filter on to fully turn off or on curtailment for all devices of a specific brand with the brand_filter parameter. If no brands are provided, we will execute flex on all brands. NOTE: * The pv devices might need some time to react. If using end_time please provide end_time at least 4 minutes in the future to ensure the device can react in time. Some may react slower than others.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://noxenergy.mintlify.app/_mintlify/api/og/v2?division=PV+Control\u0026amp;title=Post+Pv+Control+Flex\u0026amp;description=Execute+pv+flex+controls+at+the+current+time+based+on+%25+of+max+capacity+or+amount+of+kW+in+production+you+want+to+lower+%0Aof+its+current+aggregated+production+ac\u0026amp;theme=b3b015f8de44df484b546194\u0026amp;signature=869b71cc672f44a794d90f770816165028872f397afaa600d90b5d081369389c\">\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/noxenergy/ApHhzoqG1AajPnW6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nox Energy API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-docs/pv/pv-control/post-pv-control-flex.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.nox.energy/#organization\",\"name\":\"Nox Energy API Documentation\",\"url\":\"https://docs.nox.energy\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/noxenergy/LK-ditiiJi5qdR_F/logo/no_background_1280w.svg?fit=max\u0026auto=format\u0026n=LK-ditiiJi5qdR_F\u0026q=85\u0026s=76d199c82e3e9004e4b2b0485495b689\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.nox.energy#website\",\"name\":\"Nox Energy API Documentation\",\"url\":\"https://docs.nox.energy\",\"publisher\":{\"@id\":\"https://docs.nox.energy/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex#webpage\",\"url\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex\",\"name\":\"Post Pv Control Flex\",\"description\":\"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower of its current aggregated production across the whole supplier client base. If you provide an end_time with a 1 min granularit, we will revert the curtailed amount to it's original amount at that time. If no end_time is given, we do not automatically revert back. When you execute flex on already curtailed devices, we will overwrite their current curtailment and scheduled end time with the new flex command you provided. Timestamp fields in UTC. Time format examples: 2023-10-01T00:00:00Z 2023-10-01T00:00:00 control_type can be set to export_curtailment, production_curtailment or default. 100 % target_percentage means that we will enable full production on the full pv panel fleet again. You can also provide a list of brands to filter on to fully turn off or on curtailment for all devices of a specific brand with the brand_filter parameter. If no brands are provided, we will execute flex on all brands. NOTE: * The pv devices might need some time to react. If using end_time please provide end_time at least 4 minutes in the future to ensure the device can react in time. Some may react slower than others.\",\"dateModified\":\"2026-10-28T15:57:21.668Z\",\"isPartOf\":{\"@id\":\"https://docs.nox.energy#website\"},\"breadcrumb\":{\"@id\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PV\",\"item\":\"https://docs.nox.energy/api-docs/pv/user-management/delete-user\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PV Control\",\"item\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-schedule\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Post Pv Control Flex\",\"item\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex#apireference\",\"headline\":\"Post Pv Control Flex\",\"name\":\"Post Pv Control Flex\",\"description\":\"Execute pv flex controls at the current time based on % of max capacity or amount of kW in production you want to lower of its current aggregated production across the whole supplier client base. If you provide an end_time with a 1 min granularit, we will revert the curtailed amount to it's original amount at that time. If no end_time is given, we do not automatically revert back. When you execute flex on already curtailed devices, we will overwrite their current curtailment and scheduled end time with the new flex command you provided. Timestamp fields in UTC. Time format examples: 2023-10-01T00:00:00Z 2023-10-01T00:00:00 control_type can be set to export_curtailment, production_curtailment or default. 100 % target_percentage means that we will enable full production on the full pv panel fleet again. You can also provide a list of brands to filter on to fully turn off or on curtailment for all devices of a specific brand with the brand_filter parameter. If no brands are provided, we will execute flex on all brands. NOTE: * The pv devices might need some time to react. If using end_time please provide end_time at least 4 minutes in the future to ensure the device can react in time. Some may react slower than others.\",\"url\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex\",\"mainEntityOfPage\":{\"@id\":\"https://docs.nox.energy/api-docs/pv/pv-control/post-pv-control-flex#webpage\"},\"dateModified\":\"2026-10-28T15:57:21.668Z\",\"publisher\":{\"@id\":\"https://docs.nox.energy/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.nox.energy#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nox Energy API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Nox Energy API Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://www.nox.energy/blog"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/introduction"}]},{"tab":"API Docs","groups":[{"group":"API setup","pages":[{"title":"Authentication","href":"/api-docs/authentication"}]},{"group":"Connecting Users and Devices","pages":[{"group":"By supplier (deprecating)","pages":[{"title":"Create supplier link session","deprecated":null,"version":null,"openapi":"/api-docs/supplier-integration/openapi-supplier-auth-v2.json post /supplier/link-sessions","href":"/api-docs/supplier-integration/supplier/create-supplier-link-session"},{"group":"Deprecated","pages":[{"title":"Connect User to NOX","deprecated":true,"version":null,"openapi":"/api-docs/supplier-integration/openapi-supplier-auth.json post /users/{userId}/link","href":"/api-docs/supplier-integration-deprecated/supplier-integration/connect-user-to-nox"}]}]},{"group":"By manufacturer (deprecating)","pages":[{"title":"Create manufacturer link session","deprecated":null,"version":null,"openapi":"/api-docs/manufacturer-integration/openapi-manufacturer-auth-v2.json post /manufacturer/link-sessions","href":"/api-docs/manufacturer-integration/manufacturer/create-manufacturer-link-session"},{"title":"Create manufacturer device connection","deprecated":null,"version":null,"openapi":"/api-docs/manufacturer-integration/openapi-manufacturer-auth-v2.json post /manufacturer/device-connections","href":"/api-docs/manufacturer-integration/manufacturer/create-manufacturer-device-connection"},{"group":"Deprecated","pages":[{"title":"Connect User to NOX","deprecated":true,"version":null,"openapi":"/api-docs/manufacturer-integration/openapi-manufacturer-auth.json post /manufacturers/nox","href":"/api-docs/manufacturer-integration-deprecated/manufacturer-integration/connect-user-to-nox"},{"title":"Connect User to NOX with Supplier OAuth","deprecated":true,"version":null,"openapi":"/api-docs/manufacturer-integration/openapi-manufacturer-auth.json post /manufacturers/suppliers","href":"/api-docs/manufacturer-integration-deprecated/manufacturer-integration/connect-user-to-nox-with-supplier-oauth"}]}]},{"group":"By partner (deprecating)","pages":[{"title":"Create partner link session","deprecated":null,"version":null,"openapi":"/api-docs/partner-integration/openapi-partner-auth.json post /partner/link-sessions","href":"/api-docs/partner-integration/partner/create-partner-link-session"}]},{"group":"Connections (preview)","pages":[{"title":"Create a link session","deprecated":null,"version":null,"openapi":"/api-docs/connections/openapi-connections.json post /v2/connections/link","href":"/api-docs/connections/connections/create-a-link-session"},{"title":"Connect a user you already identify","deprecated":null,"version":null,"openapi":"/api-docs/connections/openapi-connections.json post /v2/connections","href":"/api-docs/connections/connections/connect-a-user-you-already-identify"},{"title":"List a user's connections","deprecated":null,"version":null,"openapi":"/api-docs/connections/openapi-connections.json get /v2/connections","href":"/api-docs/connections/connections/list-a-users-connections"},{"title":"Disconnect a user from a provider","deprecated":null,"version":null,"openapi":"/api-docs/connections/openapi-connections.json delete /v2/connections/{provider}","href":"/api-docs/connections/connections/disconnect-a-user-from-a-provider"},{"title":"Disconnect a user from every provider","deprecated":null,"version":null,"openapi":"/api-docs/connections/openapi-connections.json delete /v2/connections","href":"/api-docs/connections/connections/disconnect-a-user-from-every-provider"},{"title":"Read a user's household","deprecated":null,"version":null,"openapi":"/api-docs/connections/openapi-connections.json get /v2/connections/household","href":"/api-docs/connections/connections/read-a-users-household"},{"title":"Describe a user's household","deprecated":null,"version":null,"openapi":"/api-docs/connections/openapi-connections.json patch /v2/connections/household","href":"/api-docs/connections/connections/describe-a-users-household"}]}]},{"group":"Manufacturer Package","pages":[{"group":"Manufacturer Control","pages":[{"title":"Submit Manufacturer Settings","deprecated":null,"version":null,"openapi":"/api-docs/manufacturer/openapi-manufacturer.json post /v1/manufacturer/settings","href":"/api-docs/manufacturer/manufacturer-control/submit-manufacturer-settings"}]},{"group":"Asset Info","pages":[{"title":"Get Manufacturer Devices","deprecated":null,"version":null,"openapi":"/api-docs/manufacturer/openapi-manufacturer.json get /v1/manufacturer/devices","href":"/api-docs/manufacturer/asset-info/get-manufacturer-devices"}]},{"group":"User Management","pages":[{"title":"Get Devices Settings","deprecated":null,"version":null,"openapi":"/api-docs/manufacturer/openapi-manufacturer.json get /v1/devices/settings","href":"/api-docs/manufacturer/user-management/get-devices-settings"},{"title":"Patch Devices Settings","deprecated":null,"version":null,"openapi":"/api-docs/manufacturer/openapi-manufacturer.json patch /v1/devices/settings","href":"/api-docs/manufacturer/user-management/patch-devices-settings"}]}]},{"group":"HP","pages":[{"group":"Asset Info","pages":[{"title":"Get Devices","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/devices","href":"/api-docs/hp/asset-info/get-devices"},{"title":"Get Device Consumption Forecast Historical","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/device/consumption/forecast/historical","href":"/api-docs/hp/asset-info/get-device-consumption-forecast-historical"},{"title":"Get Device Typical Consumption Historical","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/device/typical-consumption/historical","href":"/api-docs/hp/asset-info/get-device-typical-consumption-historical"},{"title":"Get Device Consumption Historical","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/device/consumption/historical","href":"/api-docs/hp/asset-info/get-device-consumption-historical"},{"title":"Get Devices Hp Current Telemetry","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/devices/telemetry/current","href":"/api-docs/hp/asset-info/get-devices-hp-current-telemetry"}]},{"group":"Thermal Battery Control","pages":[{"title":"Get Thermal Control Forecast","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/device/thermal-control/forecast","href":"/api-docs/hp/thermal-battery-control/get-thermal-control-forecast"},{"title":"Get Thermal Control Current State","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/device/thermal-control/current-state","href":"/api-docs/hp/thermal-battery-control/get-thermal-control-current-state"}]},{"group":"HP Control","pages":[{"title":"Submit Thermal Control Schedule","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json post /v1/device/thermal-control/schedule","href":"/api-docs/hp/hp-control/submit-thermal-control-schedule"}]},{"group":"User Management","pages":[{"title":"Get Devices Settings","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json get /v1/devices/settings","href":"/api-docs/hp/user-management/get-devices-settings"},{"title":"Patch Devices Settings","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json patch /v1/devices/settings","href":"/api-docs/hp/user-management/patch-devices-settings"},{"title":"Delete User","deprecated":null,"version":null,"openapi":"/api-docs/hp/openapi-hp.json delete /v1/user","href":"/api-docs/hp/user-management/delete-user"}]}]},{"group":"PV","pages":[{"group":"User Management","pages":[{"title":"Delete User","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json delete /v1/user","href":"/api-docs/pv/user-management/delete-user"},{"title":"Patch Devices Pv Settings","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json patch /v1/devices/pv/settings","href":"/api-docs/pv/user-management/patch-devices-pv-settings"}]},{"group":"Asset Info","pages":[{"title":"Get Devices Pv","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json get /v1/devices/pv","href":"/api-docs/pv/asset-info/get-devices-pv"},{"title":"Get Devices Pv Production Forecast","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json get /v1/devices/pv/production/forecast","href":"/api-docs/pv/asset-info/get-devices-pv-production-forecast"},{"title":"Get Devices Pv Production Forecast Realtime","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json get /v1/devices/pv/production/forecast/realtime","href":"/api-docs/pv/asset-info/get-devices-pv-production-forecast-realtime"},{"title":"Get Fleet Pv Typical Production","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json get /v1/fleet/pv/production/typical-production","href":"/api-docs/pv/asset-info/get-fleet-pv-typical-production"},{"title":"Get Devices Pv Typical Production","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json get /v1/devices/pv/production/typical-production","href":"/api-docs/pv/asset-info/get-devices-pv-typical-production"},{"title":"Get Device Pv Production","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json get /v1/devices/pv/production","href":"/api-docs/pv/asset-info/get-device-pv-production"}]},{"group":"PV Control","pages":[{"title":"Post Pv Control Schedule","description":"Submit steering schedules by providing a start and end time with a 1 min granularity of when you would like\npv production/grid export curtailment to be off or 0 % grid export curtailment.\n When you provide new scheduled controls for the same device\n that already had an existing control, then we will overwrite any commands scheduled for the pv\n with the newly provided schedules.\n If an active curtailment is already active(= off or 0 %) and your newly submitted schedule overlaps with the active one,\n then we will keep the active curtailment going until your end time has been reached or the start time has been reached and the\n control-type is different than the active one.\n `start_time` should be before `end_time` and `end_time` should be in the future. If not, the schedule will be rejected.\n You can provide a batch of different device_id's, each with custom or equal schedules.\n You can provide multiple schedules for the same device_id but keep in mind that the next time you\n update the schedule for that device_id, you will overwrite all the schedules for that device_id with the new ones you provide.\n There is a limit (250) to the number of updated device_id schedules you can provide in a batch.\n If you have many devices, you can split them into multiple batches.\n Make sure to not send schedules that are from users that have their external steering optimization disabled or are not yet compatible with our system.\n We will filter these devices out of them regardless. But it is best practice to only send us schedules for users that\n want to be curtailed and are compatible.\n \n\n Timestamp fields in UTC. \n\n Time format examples: \n * 2023-10-01T00:00:00Z\n \n * 2023-10-01T00:00:00 \n\n\n \n `control_type` can be set to `export_curtailment`, `production_curtailment` or `default`.\n \n * `export_curtailment` means that we will try to keep the grid export at 0 kW during the scheduled times by curtailing the pv production if needed.\n\n * `production_curtailment` means that we will try to keep the pv production at 0 kW during the scheduled times by curtailing the pv production if needed.\n\n * `default` means that we will not curtail the pv production or export and allow the grid export to be determined by the household consumption and pv production.\nIf the `end_time` of `default` control type is reached, it will keep it as default unless another schedule overwrites it.\n\n * It is possible to not provide an `end_time` for a schedule entry. We will handle this then as start command without reverting back to it's original state.\nThis is mostly recommended if you want the user to go to it's `default` state.\n**NOTE**: \n * The pv device might need some time to react. Please provide start times at\nleast 1 minute in the future to ensure the device can react in time. Some may react slower than others.","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json post /v1/devices/pv/schedules","href":"/api-docs/pv/pv-control/post-pv-control-schedule"},{"title":"Post Pv Control Flex","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json post /v1/devices/pv/flex","href":"/api-docs/pv/pv-control/post-pv-control-flex"},{"title":"Get Devices Pv Control Flex Logs","description":"Get a list of logs that contain the executed flex commands for a specific energy supplier over\na time range.","deprecated":null,"version":null,"openapi":"/api-docs/pv/openapi-pv.json get /v1/devices/pv/flex/logs","href":"/api-docs/pv/pv-control/get-devices-pv-control-flex-logs"}]}]},{"group":"Battery (preview)","pages":[{"group":"Asset Info","pages":[{"title":"Get Devices Battery","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json get /v1/devices/battery","href":"/api-docs/battery/asset-info/get-devices-battery"},{"title":"Get Devices Battery Telemetry Current","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json get /v1/devices/battery/telemetry/current","href":"/api-docs/battery/asset-info/get-devices-battery-telemetry-current"},{"title":"Get Devices Battery Charge Discharge Historical","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json get /v1/devices/battery/charge-discharge/historical","href":"/api-docs/battery/asset-info/get-devices-battery-charge-discharge-historical"},{"title":"Get Devices Battery Typical Charge Discharge Historical","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json get /v1/devices/battery/typical-charge-discharge/historical","href":"/api-docs/battery/asset-info/get-devices-battery-typical-charge-discharge-historical"},{"title":"Get Devices Battery Forecast Historical","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json get /v1/devices/battery/forecast/historical","href":"/api-docs/battery/asset-info/get-devices-battery-forecast-historical"}]},{"group":"Battery Control","pages":[{"title":"Post Battery Control Schedule","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json post /v1/devices/battery/schedules","href":"/api-docs/battery/battery-control/post-battery-control-schedule"}]},{"group":"User Management","pages":[{"title":"Get Devices Battery Settings","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json get /v1/devices/battery/settings","href":"/api-docs/battery/user-management/get-devices-battery-settings"},{"title":"Patch Devices Battery Settings","deprecated":null,"version":null,"openapi":"/api-docs/battery/openapi-battery.json patch /v1/devices/battery/settings","href":"/api-docs/battery/user-management/patch-devices-battery-settings"}]}]},{"group":"Households (preview)","pages":[{"group":"Asset Info","pages":[{"title":"Get Households","deprecated":null,"version":null,"openapi":"/api-docs/household/openapi-household.json get /v1/households","href":"/api-docs/household/asset-info/get-households"},{"title":"Get Households Telemetry Current","deprecated":null,"version":null,"openapi":"/api-docs/household/openapi-household.json get /v1/households/telemetry/current","href":"/api-docs/household/asset-info/get-households-telemetry-current"},{"title":"Get Households House Load Forecast","deprecated":null,"version":null,"openapi":"/api-docs/household/openapi-household.json get /v1/households/house-load/forecast","href":"/api-docs/household/asset-info/get-households-house-load-forecast"}]}]}]},{"tab":"Supported Assets","pages":[{"title":"Supported Assets","href":"/supported-assets/supported-assets-overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/product-updates"}]}]},"basePath":"","title":"Post Pv Control Flex - Nox Energy API Documentation","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}