<?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 Query: Power BI Custom Visual API Block – GPT/Gemini Integration Issue in Custom Visuals Development Discussion</title>
    <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Development/Query-Power-BI-Custom-Visual-API-Block-GPT-Gemini-Integration/m-p/4655046#M12421</link>
    <description>&lt;P class=""&gt;I’m working on integrating &lt;STRONG&gt;ChatGPT or Google Gemini&lt;/STRONG&gt; into &lt;STRONG&gt;Power BI&lt;/STRONG&gt; using a &lt;STRONG&gt;custom visual&lt;/STRONG&gt; to enable interactive AI responses directly from the report, based on the dataset contents.&lt;/P&gt;&lt;P class=""&gt;Everything works fine when I test the API in &lt;STRONG&gt;Postman&lt;/STRONG&gt;, but Power BI &lt;STRONG&gt;blocks the API call&lt;/STRONG&gt; from the custom visual due to &lt;STRONG&gt;security restrictions&lt;/STRONG&gt;, most likely related to Content Security Policy (CSP) or cross-origin (CORS) issues.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;H3&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;I’ve Tried So Far&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;&lt;OL&gt;&lt;LI&gt;&lt;P class=""&gt;Built a custom visual in Power BI using React and TypeScript&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Integrated OpenAI/Gemini API logic inside the visual&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Created a &lt;STRONG&gt;proxy API server&lt;/STRONG&gt; to forward the API requests&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Used &lt;STRONG&gt;tunneling tools&lt;/STRONG&gt; like:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Localtunnel&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;FONT color="#000000"&gt;ngrok&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT color="#000000"&gt;Cloudflare Tunnel&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P class="lia-align-left"&gt;But unfortunately, the API calls are &lt;STRONG&gt;still being blocked&lt;/STRONG&gt; when the custom visual is rendered inside Power BI Desktop&lt;/P&gt;&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;/P&gt;&lt;H3&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;I Need Help With&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;How can I &lt;STRONG&gt;successfully connect Power BI custom visual&lt;/STRONG&gt; to OpenAI/Gemini API through a proxy or tunnel?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Is there a &lt;STRONG&gt;recommended tunneling or reverse proxy approach&lt;/STRONG&gt; that works with Power BI visuals?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Any other approaches to solve the problem.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please share your thoughts.&lt;/P&gt;&lt;P class=""&gt;Any guidance or step-by-step solution would be greatly appreciated!&lt;/P&gt;&lt;P class=""&gt;&lt;BR /&gt;Thanks!&lt;/P&gt;</description>
    <pubDate>Wed, 16 Apr 2025 06:46:34 GMT</pubDate>
    <dc:creator>jesikamaurya</dc:creator>
    <dc:date>2025-04-16T06:46:34Z</dc:date>
    <item>
      <title>Query: Power BI Custom Visual API Block – GPT/Gemini Integration Issue</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Development/Query-Power-BI-Custom-Visual-API-Block-GPT-Gemini-Integration/m-p/4655046#M12421</link>
      <description>&lt;P class=""&gt;I’m working on integrating &lt;STRONG&gt;ChatGPT or Google Gemini&lt;/STRONG&gt; into &lt;STRONG&gt;Power BI&lt;/STRONG&gt; using a &lt;STRONG&gt;custom visual&lt;/STRONG&gt; to enable interactive AI responses directly from the report, based on the dataset contents.&lt;/P&gt;&lt;P class=""&gt;Everything works fine when I test the API in &lt;STRONG&gt;Postman&lt;/STRONG&gt;, but Power BI &lt;STRONG&gt;blocks the API call&lt;/STRONG&gt; from the custom visual due to &lt;STRONG&gt;security restrictions&lt;/STRONG&gt;, most likely related to Content Security Policy (CSP) or cross-origin (CORS) issues.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;H3&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;I’ve Tried So Far&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;&lt;OL&gt;&lt;LI&gt;&lt;P class=""&gt;Built a custom visual in Power BI using React and TypeScript&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Integrated OpenAI/Gemini API logic inside the visual&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Created a &lt;STRONG&gt;proxy API server&lt;/STRONG&gt; to forward the API requests&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Used &lt;STRONG&gt;tunneling tools&lt;/STRONG&gt; like:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;Localtunnel&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;FONT color="#000000"&gt;ngrok&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT color="#000000"&gt;Cloudflare Tunnel&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P class="lia-align-left"&gt;But unfortunately, the API calls are &lt;STRONG&gt;still being blocked&lt;/STRONG&gt; when the custom visual is rendered inside Power BI Desktop&lt;/P&gt;&lt;P class="lia-align-left"&gt;&amp;nbsp;&lt;/P&gt;&lt;H3&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;I Need Help With&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P class=""&gt;How can I &lt;STRONG&gt;successfully connect Power BI custom visual&lt;/STRONG&gt; to OpenAI/Gemini API through a proxy or tunnel?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;Is there a &lt;STRONG&gt;recommended tunneling or reverse proxy approach&lt;/STRONG&gt; that works with Power BI visuals?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Any other approaches to solve the problem.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please share your thoughts.&lt;/P&gt;&lt;P class=""&gt;Any guidance or step-by-step solution would be greatly appreciated!&lt;/P&gt;&lt;P class=""&gt;&lt;BR /&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 06:46:34 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Development/Query-Power-BI-Custom-Visual-API-Block-GPT-Gemini-Integration/m-p/4655046#M12421</guid>
      <dc:creator>jesikamaurya</dc:creator>
      <dc:date>2025-04-16T06:46:34Z</dc:date>
    </item>
    <item>
      <title>Re: Query: Power BI Custom Visual API Block – GPT/Gemini Integration Issue</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Development/Query-Power-BI-Custom-Visual-API-Block-GPT-Gemini-Integration/m-p/4895988#M12982</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/935391"&gt;@jesikamaurya&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;long time no answer to your question. Maybe I can help you here.&lt;/P&gt;&lt;P&gt;There is a new feature for Fabric/Power BI called User Data Function.&lt;/P&gt;&lt;P&gt;Check out the blog here:&amp;nbsp;&lt;A href="https://blog.fabric.microsoft.com/en-US/blog/announcing-fabric-user-data-functions-in-public-preview/" target="_blank" rel="noopener"&gt;Announcing Fabric User Data Functions (Preview) | Microsoft Fabric Blog | Microsoft Fabric&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I already saw demos from Microsoft where they put an API call in a UDF to call a LLM endpoint. This function was then provisioned to Power BI for calling and taking the input data from the report.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Best regards!&lt;/P&gt;&lt;P class=""&gt;PS: If you find this post helpful consider leaving kudos or mark it as solution&lt;/P&gt;</description>
      <pubDate>Mon, 08 Dec 2025 13:39:37 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Development/Query-Power-BI-Custom-Visual-API-Block-GPT-Gemini-Integration/m-p/4895988#M12982</guid>
      <dc:creator>Mauro89</dc:creator>
      <dc:date>2025-12-08T13:39:37Z</dc:date>
    </item>
    <item>
      <title>Re: Query: Power BI Custom Visual API Block – GPT/Gemini Integration Issue</title>
      <link>https://community.fabric.microsoft.com/t5/Custom-Visuals-Development/Query-Power-BI-Custom-Visual-API-Block-GPT-Gemini-Integration/m-p/5136293#M13096</link>
      <description>&lt;P&gt;I've faced similar CSP/CORS issues when trying to integrate external APIs directly into Power BI visuals. The security restrictions are quite strict, and even proxy servers often get blocked because Power BI treats them as external origins.&lt;/P&gt;&lt;P&gt;One approach that worked for me was embedding the AI logic differently, instead of calling APIs from the visual, I pre-processed insights during data refresh. If you're looking for a ready-made solution that handles these integration challenges, you might find PowerMind interesting, it's designed specifically to embed AI assistants inside Power BI dashboards without running into these blocking issues.&lt;/P&gt;&lt;P&gt;Check out our LinkedIn demo post for a quick look at how it works in practice.&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.linkedin.com/posts/querixa_powerbi-microsoftfabric-dataanalytics-activity-7439451185696305152-wfFC?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAACyDUKQBQhomDtRhx1YhG-beulUuVD5DR8w" target="_blank"&gt;https://www.linkedin.com/posts/querixa_powerbi-microsoftfabric-dataanalytics-activity-7439451185696305152-wfFC?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAACyDUKQBQhomDtRhx1YhG-beulUuVD5DR8w&amp;nbsp;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=JPscIa7SNZw" target="_blank"&gt;https://www.youtube.com/watch?v=JPscIa7SNZw&amp;nbsp;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Mar 2026 10:17:50 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Custom-Visuals-Development/Query-Power-BI-Custom-Visual-API-Block-GPT-Gemini-Integration/m-p/5136293#M13096</guid>
      <dc:creator>querixa</dc:creator>
      <dc:date>2026-03-20T10:17:50Z</dc:date>
    </item>
  </channel>
</rss>

