<?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: How do I call a load plan rest API via a python script? in Data &amp; Schema Discussions</title>
    <link>https://community.incorta.com/t5/data-schema-discussions/how-do-i-call-a-load-plan-rest-api-via-a-python-script/m-p/5650#M566</link>
    <description>&lt;P&gt;Here is a sample python script to execute a load plan and monitor the run via rest apis.&amp;nbsp;Refer to&amp;nbsp; this &lt;A href="https://community.incorta.com/t5/administration-knowledgebase/scheduling-a-schema-load-with-the-public-api-v2/ta-p/4884" target="_self"&gt;article&lt;/A&gt; too.&lt;/P&gt;
&lt;H2 id="toc-hId-678451967" class="lia-message-template-need-to-know-zone"&gt;Enable Access for an Individual User&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;As an Incorta Super User or a user with the SuperRole, sign in to the Incorta.&lt;/LI&gt;
&lt;LI&gt;In the Navigation bar, select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Security&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;In the Action bar, select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Users&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Select the checkbox next to the user you want to enable public API access.&lt;/LI&gt;
&lt;LI&gt;Select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Edit&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(pen icon) in the upper right corner of the Security page.&lt;/LI&gt;
&lt;LI&gt;In the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Edit User&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;drawer, select the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Security&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tab.&lt;/LI&gt;
&lt;LI&gt;In the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Developer Tool&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;section, toggle&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Enable Public API&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 id="toc-hId-707081118" class="lia-message-template-lets-go-zone"&gt;Create a Personal Access Security Token&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;Select 'Create a Personal Access Token'&lt;/LI&gt;
&lt;LI&gt;Give the token a name and an expiration date&lt;/LI&gt;
&lt;LI&gt;Copy the token and save it. This token can not be viewed at a later time. Instead, a new one will need to be created.&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="amit_kothari_0-1770935813865.png" style="width: 400px;"&gt;&lt;img src="https://community.incorta.com/t5/image/serverpage/image-id/3040iDDD812245BB89D72/image-size/medium?v=v2&amp;amp;px=400" role="button" title="amit_kothari_0-1770935813865.png" alt="amit_kothari_0-1770935813865.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To check for the API payload, on your browser&amp;nbsp; login to incorta first and then go to &amp;lt;incorta host&amp;gt;/incorta/api&lt;/P&gt;
&lt;DIV&gt;
&lt;PRE&gt;&lt;SPAN&gt;#execute incorta load plans via rest api - https://docs.incorta.com/cloud/references-public-api-v2&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;#Use python 3&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;requests&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;time&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#update  this as per your cluster&lt;BR /&gt;&lt;/SPAN&gt;prod_connection_dict = {&lt;BR /&gt;    &lt;SPAN&gt;'tenant'&lt;/SPAN&gt;: &lt;SPAN&gt;"default"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;'incorta_domain'&lt;/SPAN&gt;: &lt;SPAN&gt;"xx.cloud4.incorta.com"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;'incorta_token'&lt;/SPAN&gt;: &lt;SPAN&gt;"personal access token string"&lt;BR /&gt;&lt;/SPAN&gt;}&lt;BR /&gt;&lt;BR /&gt;process_start_timestamp = time.time()&lt;BR /&gt;connection_dict = prod_connection_dict&lt;BR /&gt;incorta_headers = {&lt;SPAN&gt;"Authorization"&lt;/SPAN&gt;: &lt;SPAN&gt;f"Bearer &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'incorta_token'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;}&lt;BR /&gt;body = {&lt;SPAN&gt;"loadPlanName"&lt;/SPAN&gt;: &lt;SPAN&gt;"Test_Load_Plan"&lt;/SPAN&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;       api_url = &lt;SPAN&gt;f"https://&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'incorta_domain'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/incorta/api/v2/&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'tenant'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/load-plan/execute"&lt;BR /&gt;&lt;/SPAN&gt;       &lt;SPAN&gt;#print(api_url)&lt;BR /&gt;&lt;/SPAN&gt;       response = requests.post(api_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=incorta_headers&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;json&lt;/SPAN&gt;=body)&lt;BR /&gt;       data = response.json()&lt;BR /&gt;       &lt;SPAN&gt;#print(data)&lt;BR /&gt;&lt;/SPAN&gt;       api_url = &lt;SPAN&gt;f"https://&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'incorta_domain'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/incorta/api/v2/&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'tenant'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/load-plan/status/&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;data[&lt;SPAN&gt;'loadPlanExecutionId'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;?level=1"&lt;BR /&gt;&lt;/SPAN&gt;       response = requests.get(api_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=incorta_headers)&lt;BR /&gt;       data = response.json()&lt;BR /&gt;       jobStatus = data[&lt;SPAN&gt;"status"&lt;/SPAN&gt;][&lt;SPAN&gt;"jobStatus"&lt;/SPAN&gt;]&lt;BR /&gt;       &lt;SPAN&gt;while &lt;/SPAN&gt;jobStatus &lt;SPAN&gt;not in &lt;/SPAN&gt;(&lt;SPAN&gt;'Success'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'Finished With Errors'&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;              &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;"Load plan is still running"&lt;/SPAN&gt;)&lt;BR /&gt;              time.sleep(&lt;SPAN&gt;30&lt;/SPAN&gt;)&lt;BR /&gt;              response = requests.get(api_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=incorta_headers)&lt;BR /&gt;              data = response.json()&lt;BR /&gt;              jobStatus = data[&lt;SPAN&gt;"status"&lt;/SPAN&gt;][&lt;SPAN&gt;"jobStatus"&lt;/SPAN&gt;]&lt;BR /&gt;              &lt;SPAN&gt;print&lt;/SPAN&gt;(jobStatus)&lt;BR /&gt;       &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;"Finished Load Plan"&lt;/SPAN&gt;)&lt;BR /&gt;       &lt;SPAN&gt;print&lt;/SPAN&gt;(data[&lt;SPAN&gt;"status"&lt;/SPAN&gt;][&lt;SPAN&gt;"jobStatus"&lt;/SPAN&gt;])&lt;BR /&gt;&lt;SPAN&gt;except&lt;/SPAN&gt;:&lt;BR /&gt;         &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;"An exception occurred"&lt;/SPAN&gt;)&lt;/PRE&gt;
&lt;/DIV&gt;</description>
    <pubDate>Thu, 12 Feb 2026 22:36:59 GMT</pubDate>
    <dc:creator>amit_kothari</dc:creator>
    <dc:date>2026-02-12T22:36:59Z</dc:date>
    <item>
      <title>How do I call a load plan rest API via a python script?</title>
      <link>https://community.incorta.com/t5/data-schema-discussions/how-do-i-call-a-load-plan-rest-api-via-a-python-script/m-p/5649#M565</link>
      <description>&lt;P&gt;I have a need to execute and monitor&amp;nbsp;a load plan via rest APIs using a python script, how do I do that?&lt;/P&gt;</description>
      <pubDate>Thu, 11 Apr 2024 20:35:10 GMT</pubDate>
      <guid>https://community.incorta.com/t5/data-schema-discussions/how-do-i-call-a-load-plan-rest-api-via-a-python-script/m-p/5649#M565</guid>
      <dc:creator>amit_kothari</dc:creator>
      <dc:date>2024-04-11T20:35:10Z</dc:date>
    </item>
    <item>
      <title>Re: How do I call a load plan rest API via a python script?</title>
      <link>https://community.incorta.com/t5/data-schema-discussions/how-do-i-call-a-load-plan-rest-api-via-a-python-script/m-p/5650#M566</link>
      <description>&lt;P&gt;Here is a sample python script to execute a load plan and monitor the run via rest apis.&amp;nbsp;Refer to&amp;nbsp; this &lt;A href="https://community.incorta.com/t5/administration-knowledgebase/scheduling-a-schema-load-with-the-public-api-v2/ta-p/4884" target="_self"&gt;article&lt;/A&gt; too.&lt;/P&gt;
&lt;H2 id="toc-hId-678451967" class="lia-message-template-need-to-know-zone"&gt;Enable Access for an Individual User&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;As an Incorta Super User or a user with the SuperRole, sign in to the Incorta.&lt;/LI&gt;
&lt;LI&gt;In the Navigation bar, select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Security&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;In the Action bar, select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Users&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Select the checkbox next to the user you want to enable public API access.&lt;/LI&gt;
&lt;LI&gt;Select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Edit&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(pen icon) in the upper right corner of the Security page.&lt;/LI&gt;
&lt;LI&gt;In the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Edit User&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;drawer, select the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Security&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tab.&lt;/LI&gt;
&lt;LI&gt;In the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Developer Tool&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;section, toggle&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Enable Public API&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 id="toc-hId-707081118" class="lia-message-template-lets-go-zone"&gt;Create a Personal Access Security Token&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;Select 'Create a Personal Access Token'&lt;/LI&gt;
&lt;LI&gt;Give the token a name and an expiration date&lt;/LI&gt;
&lt;LI&gt;Copy the token and save it. This token can not be viewed at a later time. Instead, a new one will need to be created.&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="amit_kothari_0-1770935813865.png" style="width: 400px;"&gt;&lt;img src="https://community.incorta.com/t5/image/serverpage/image-id/3040iDDD812245BB89D72/image-size/medium?v=v2&amp;amp;px=400" role="button" title="amit_kothari_0-1770935813865.png" alt="amit_kothari_0-1770935813865.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To check for the API payload, on your browser&amp;nbsp; login to incorta first and then go to &amp;lt;incorta host&amp;gt;/incorta/api&lt;/P&gt;
&lt;DIV&gt;
&lt;PRE&gt;&lt;SPAN&gt;#execute incorta load plans via rest api - https://docs.incorta.com/cloud/references-public-api-v2&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;#Use python 3&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;requests&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;time&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#update  this as per your cluster&lt;BR /&gt;&lt;/SPAN&gt;prod_connection_dict = {&lt;BR /&gt;    &lt;SPAN&gt;'tenant'&lt;/SPAN&gt;: &lt;SPAN&gt;"default"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;'incorta_domain'&lt;/SPAN&gt;: &lt;SPAN&gt;"xx.cloud4.incorta.com"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;'incorta_token'&lt;/SPAN&gt;: &lt;SPAN&gt;"personal access token string"&lt;BR /&gt;&lt;/SPAN&gt;}&lt;BR /&gt;&lt;BR /&gt;process_start_timestamp = time.time()&lt;BR /&gt;connection_dict = prod_connection_dict&lt;BR /&gt;incorta_headers = {&lt;SPAN&gt;"Authorization"&lt;/SPAN&gt;: &lt;SPAN&gt;f"Bearer &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'incorta_token'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;}&lt;BR /&gt;body = {&lt;SPAN&gt;"loadPlanName"&lt;/SPAN&gt;: &lt;SPAN&gt;"Test_Load_Plan"&lt;/SPAN&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;       api_url = &lt;SPAN&gt;f"https://&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'incorta_domain'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/incorta/api/v2/&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'tenant'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/load-plan/execute"&lt;BR /&gt;&lt;/SPAN&gt;       &lt;SPAN&gt;#print(api_url)&lt;BR /&gt;&lt;/SPAN&gt;       response = requests.post(api_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=incorta_headers&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;json&lt;/SPAN&gt;=body)&lt;BR /&gt;       data = response.json()&lt;BR /&gt;       &lt;SPAN&gt;#print(data)&lt;BR /&gt;&lt;/SPAN&gt;       api_url = &lt;SPAN&gt;f"https://&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'incorta_domain'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/incorta/api/v2/&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;connection_dict[&lt;SPAN&gt;'tenant'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;/load-plan/status/&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;data[&lt;SPAN&gt;'loadPlanExecutionId'&lt;/SPAN&gt;]&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;?level=1"&lt;BR /&gt;&lt;/SPAN&gt;       response = requests.get(api_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=incorta_headers)&lt;BR /&gt;       data = response.json()&lt;BR /&gt;       jobStatus = data[&lt;SPAN&gt;"status"&lt;/SPAN&gt;][&lt;SPAN&gt;"jobStatus"&lt;/SPAN&gt;]&lt;BR /&gt;       &lt;SPAN&gt;while &lt;/SPAN&gt;jobStatus &lt;SPAN&gt;not in &lt;/SPAN&gt;(&lt;SPAN&gt;'Success'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'Finished With Errors'&lt;/SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;BR /&gt;              &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;"Load plan is still running"&lt;/SPAN&gt;)&lt;BR /&gt;              time.sleep(&lt;SPAN&gt;30&lt;/SPAN&gt;)&lt;BR /&gt;              response = requests.get(api_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=incorta_headers)&lt;BR /&gt;              data = response.json()&lt;BR /&gt;              jobStatus = data[&lt;SPAN&gt;"status"&lt;/SPAN&gt;][&lt;SPAN&gt;"jobStatus"&lt;/SPAN&gt;]&lt;BR /&gt;              &lt;SPAN&gt;print&lt;/SPAN&gt;(jobStatus)&lt;BR /&gt;       &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;"Finished Load Plan"&lt;/SPAN&gt;)&lt;BR /&gt;       &lt;SPAN&gt;print&lt;/SPAN&gt;(data[&lt;SPAN&gt;"status"&lt;/SPAN&gt;][&lt;SPAN&gt;"jobStatus"&lt;/SPAN&gt;])&lt;BR /&gt;&lt;SPAN&gt;except&lt;/SPAN&gt;:&lt;BR /&gt;         &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;"An exception occurred"&lt;/SPAN&gt;)&lt;/PRE&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 12 Feb 2026 22:36:59 GMT</pubDate>
      <guid>https://community.incorta.com/t5/data-schema-discussions/how-do-i-call-a-load-plan-rest-api-via-a-python-script/m-p/5650#M566</guid>
      <dc:creator>amit_kothari</dc:creator>
      <dc:date>2026-02-12T22:36:59Z</dc:date>
    </item>
  </channel>
</rss>

