<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: API execution through JS in Automations</title>
    <link>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/276869#M2149</link>
    <description>&lt;P&gt;Rather than interacting with the API via HTTP inside your workflow, you can actually make use of the Typescript SDKs to interact with things like settings more directly. In your case, I would think that the &lt;A href="https://developer.dynatrace.com/develop/sdks/client-classic-environment-v2/#postsettingsobjects" target="_self"&gt;settingsObjectsClient&lt;/A&gt; should do the trick.&lt;/P&gt;&lt;P&gt;Here's a code sample from the documentation:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { settingsObjectsClient } from "@dynatrace-sdk/client-classic-environment-v2";

const data =
  await settingsObjectsClient.postSettingsObjects({
    body: [
      {
        schemaId:
          "builtin:container.built-in-monitoring-rule",
        scope: "HOST-D3A3C5A146830A79",
        value: {},
      },
    ],
  });&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;I hope this helps.&lt;/P&gt;</description>
    <pubDate>Fri, 09 May 2025 22:28:47 GMT</pubDate>
    <dc:creator>marco_irmer</dc:creator>
    <dc:date>2025-05-09T22:28:47Z</dc:date>
    <item>
      <title>API execution through JS</title>
      <link>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/276861#M2148</link>
      <description>&lt;P&gt;Is it possible to execute API request right though Javascript within Workflows?&lt;/P&gt;&lt;P&gt;Example:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;import fetch from 'node-fetch';&lt;/P&gt;&lt;P&gt;export default async function ({ executionId }) {&lt;BR /&gt;const apiToken = 'YOUR_API_TOKEN'; // Replace with your Dynatrace API token&lt;BR /&gt;const apiUrl = '&lt;A href="https://{environmentid}.live.dynatrace.com/api/config/v1/maintenanceWindows" target="_blank" rel="noopener"&gt;https://{environmentid}.live.dynatrace.com/api/config/v1/maintenanceWindows&lt;/A&gt;';&lt;/P&gt;&lt;P&gt;const maintenanceWindow = {&lt;BR /&gt;name: "Example Maintenance Window",&lt;BR /&gt;description: "Automatically created maintenance window",&lt;BR /&gt;type: "PLANNED",&lt;BR /&gt;suppression: "DETECT_PROBLEMS_DONT_ALERT",&lt;BR /&gt;schedule: {&lt;BR /&gt;scheduleType: "ONCE",&lt;BR /&gt;start: "2025-05-10T14:00:00Z",&lt;BR /&gt;end: "2025-05-10T16:00:00Z",&lt;BR /&gt;timeZone: "UTC"&lt;BR /&gt;},&lt;BR /&gt;scope: {&lt;BR /&gt;entities: ["HOST-1234567890ABCDEF"] // Replace with actual entity IDs&lt;BR /&gt;}&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;const response = await fetch(apiUrl, {&lt;BR /&gt;method: 'POST',&lt;BR /&gt;headers: {&lt;BR /&gt;'Authorization': `Api-Token ${apiToken}`,&lt;BR /&gt;'Content-Type': 'application/json'&lt;BR /&gt;},&lt;BR /&gt;body: JSON.stringify(maintenanceWindow)&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;if (!response.ok) {&lt;BR /&gt;const error = await response.json();&lt;BR /&gt;console.error('Failed to create maintenance window:', error);&lt;BR /&gt;return {&lt;BR /&gt;status: "error",&lt;BR /&gt;message: "Failed to create maintenance window"&lt;BR /&gt;};&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;const data = await response.json();&lt;BR /&gt;console.log('Successfully created maintenance window:', data);&lt;BR /&gt;return {&lt;BR /&gt;status: "completed",&lt;BR /&gt;message: "Successfully created maintenance window",&lt;BR /&gt;data: data&lt;BR /&gt;};&lt;BR /&gt;}&lt;/P&gt;</description>
      <pubDate>Fri, 09 May 2025 18:54:38 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/276861#M2148</guid>
      <dc:creator>Dyno193</dc:creator>
      <dc:date>2025-05-09T18:54:38Z</dc:date>
    </item>
    <item>
      <title>Re: API execution through JS</title>
      <link>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/276869#M2149</link>
      <description>&lt;P&gt;Rather than interacting with the API via HTTP inside your workflow, you can actually make use of the Typescript SDKs to interact with things like settings more directly. In your case, I would think that the &lt;A href="https://developer.dynatrace.com/develop/sdks/client-classic-environment-v2/#postsettingsobjects" target="_self"&gt;settingsObjectsClient&lt;/A&gt; should do the trick.&lt;/P&gt;&lt;P&gt;Here's a code sample from the documentation:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { settingsObjectsClient } from "@dynatrace-sdk/client-classic-environment-v2";

const data =
  await settingsObjectsClient.postSettingsObjects({
    body: [
      {
        schemaId:
          "builtin:container.built-in-monitoring-rule",
        scope: "HOST-D3A3C5A146830A79",
        value: {},
      },
    ],
  });&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;I hope this helps.&lt;/P&gt;</description>
      <pubDate>Fri, 09 May 2025 22:28:47 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/276869#M2149</guid>
      <dc:creator>marco_irmer</dc:creator>
      <dc:date>2025-05-09T22:28:47Z</dc:date>
    </item>
    <item>
      <title>Re: API execution through JS</title>
      <link>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/282117#M2289</link>
      <description>&lt;P&gt;Tried similar things for trying setting the host mode via an AppFunction&amp;nbsp; to test it before I add it to my workflow, but is not working despite I am giving it the right scope and more:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; { &lt;/SPAN&gt;&lt;SPAN&gt;settingsObjectsClient&lt;/SPAN&gt;&lt;SPAN&gt; } &lt;/SPAN&gt;&lt;SPAN&gt;from&lt;/SPAN&gt; &lt;SPAN&gt;"@dynatrace-sdk/client-classic-environment-v2"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;export&lt;/SPAN&gt; &lt;SPAN&gt;default&lt;/SPAN&gt; &lt;SPAN&gt;async&lt;/SPAN&gt; &lt;SPAN&gt;function&lt;/SPAN&gt;&lt;SPAN&gt; () &lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;Promise&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;{ &lt;/SPAN&gt;&lt;SPAN&gt;statusCode&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;number&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;message&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;string&lt;/SPAN&gt;&lt;SPAN&gt; }&amp;gt; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;hostId&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;"HOST-F6DC785465402DD8"&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Replace with your actual host ID&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;response&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;await&lt;/SPAN&gt; &lt;SPAN&gt;settingsObjectsClient&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;postSettingsObjects&lt;/SPAN&gt;&lt;SPAN&gt;({&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;body&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; [&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;schemaId&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"builtin:host.monitoring"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;scope&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;hostId&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;monitoringEnabled&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;false&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ],&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; });&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; { &lt;/SPAN&gt;&lt;SPAN&gt;statusCode&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;200&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;message&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"{hostId} - Monitoring state updated successfully."&lt;/SPAN&gt;&lt;SPAN&gt; };&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; } &lt;/SPAN&gt;&lt;SPAN&gt;catch&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;unknown&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;let&lt;/SPAN&gt; &lt;SPAN&gt;errorDetails&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt; &lt;SPAN&gt;instanceof&lt;/SPAN&gt; &lt;SPAN&gt;Error&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;errorDetails&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;`Error name: &lt;/SPAN&gt;&lt;SPAN&gt;${&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;`Error message: &lt;/SPAN&gt;&lt;SPAN&gt;${&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;message&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;stack&lt;/SPAN&gt; &lt;SPAN&gt;?&lt;/SPAN&gt; &lt;SPAN&gt;`Stack trace: &lt;/SPAN&gt;&lt;SPAN&gt;${&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;stack&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt; &lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"No stack trace available."&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; } &lt;/SPAN&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;errorDetails&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;`Unknown error object: &lt;/SPAN&gt;&lt;SPAN&gt;${&lt;/SPAN&gt;&lt;SPAN&gt;JSON&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;stringify&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;null&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;statusCode&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;500&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;message&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;${&lt;/SPAN&gt;&lt;SPAN&gt;hostId&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt; - Failed to update monitoring state.&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Debug info:&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;${&lt;/SPAN&gt;&lt;SPAN&gt;errorDetails&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;`&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I am using platform token which has even more than it needs:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Scopes:&amp;nbsp;app-settings:objects:read, app-settings:objects:write, settings:objects:read, settings:objects:write, settings:schemas:read, app-engine:functions:run, app-engine:apps:run&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;But I get this error that this SDK call does not have the settings:objects:write&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;PRE&gt;{"statusCode":500,"message":"HOST-F6DC785465402DD8 - Failed to update monitoring state.\nDebug info:\nError name: 403\nError message: OAuth token is missing required scope. Use one of: [settings:objects:write]\nStack trace: 403: OAuth token is missing required scope. Use one of: [settings:objects:write]\n    at se.postSettingsObjects (&lt;A target="_blank" rel="noopener"&gt;file:///invoker.js:5:19821)\n&lt;/A&gt;    at eventLoopTick (ext:core/01_core.js:177:7)\n    at async Ds (&lt;A target="_blank" rel="noopener"&gt;file:///invoker.js:5:47784&lt;/A&gt;)"}&lt;/PRE&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Any Idea what I am doing wrong here?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 23 Jul 2025 07:24:42 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/282117#M2289</guid>
      <dc:creator>MarwanC</dc:creator>
      <dc:date>2025-07-23T07:24:42Z</dc:date>
    </item>
    <item>
      <title>Re: API execution through JS</title>
      <link>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/285548#M2346</link>
      <description>&lt;P&gt;This is now resolved I share the results here for others: basically the right schema is now used&amp;nbsp;builtin:host.monitoring and it seems to work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for (const value of values)&lt;BR /&gt;{&lt;BR /&gt;const id = value;&lt;BR /&gt;hostId = id;&lt;BR /&gt;&lt;BR /&gt;// The API call that enable or disable the state&lt;BR /&gt;const response = await settingsObjectsClient.postSettingsObjects({&lt;BR /&gt;body: [&lt;BR /&gt;{&lt;BR /&gt;schemaId: "builtin:host.monitoring",&lt;BR /&gt;scope: hostId,&lt;BR /&gt;value: {&lt;BR /&gt;enabled: true,&lt;BR /&gt;},&lt;BR /&gt;},&lt;BR /&gt;],&lt;BR /&gt;});&lt;BR /&gt;console.log(`Processing Host ${count + 1}: ${id}`);&lt;BR /&gt;count++;&lt;BR /&gt;}&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2025 11:39:25 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Automations/API-execution-through-JS/m-p/285548#M2346</guid>
      <dc:creator>MarwanC</dc:creator>
      <dc:date>2025-09-08T11:39:25Z</dc:date>
    </item>
  </channel>
</rss>

