<?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>article Creating a REST API Connection for Snowflake Cortex Agent in Member Articles</title>
    <link>https://community.qlik.com/t5/Member-Articles/Creating-a-REST-API-Connection-for-Snowflake-Cortex-Agent/ta-p/2539998</link>
    <description>&lt;P&gt;In a previous post called&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://community.qlik.com/t5/Member-Articles/Calling-Snowflake-s-Cortex-Agent-API/ta-p/2535284" target="_blank" rel="noopener"&gt;Calling Snowflake's Cortex Agent API&lt;/A&gt;, I started the post by saying the focus of the post was about how the REST API worked not how to create the connection to it. This post is focused solely on how to create a REST API connector for Snowflake Cortex Agents.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;Snowflake Agents&lt;/H2&gt;
&lt;P&gt;Snowflake allows you to build "agents." While I have built several, this post is going to focus on one that I called "&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;SynthAgent&lt;/STRONG&gt;&lt;/FONT&gt;."&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Dalton_Ruer_2-1767103275606.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185993i2D336499C828C523/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_2-1767103275606.png" alt="Dalton_Ruer_2-1767103275606.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;They also provide a way you for you to question them directly in their user interface. I can simply ask a question like "&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;Who are the top 10 admitting providers?&lt;/FONT&gt;&lt;/STRONG&gt;" and voila ... I get an answer&lt;/SPAN&gt;:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_1-1767103121649.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185992i92236DB4CAA3ADD3/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_1-1767103121649.png" alt="Dalton_Ruer_1-1767103121649.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Actually as my previous post indicated, when you talk to an agent you actually get to see it's entire stream of thought.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_3-1767103587242.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185994i2215ADC5310AEAE2/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_3-1767103587242.png" alt="Dalton_Ruer_3-1767103587242.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Snowflake Cortex Agent API&lt;/H2&gt;
&lt;P&gt;While asking an isolated question inside of Snowflake is certainly handy-dandy, the bigger picture is in the fact that in the world we live in, agents should play nice with others. So,&lt;A href="https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-run" target="_blank" rel="noopener"&gt; Snowflake created an API that allows others outside of the Snowflake user interface to speak with their data&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_4-1767103844098.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185995iD89713F406F79522/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_4-1767103844098.png" alt="Dalton_Ruer_4-1767103844098.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Obviously you will need to use your own server and your own agents, but to help you understand the URL I wanted to show you the URL I will use in this post for this Cortex Agent API. Refer to the first image to see the database/schema/agent:&lt;/P&gt;
&lt;P data-unlink="true"&gt;https://AYFR...mputing.com/api/v2/databases/&lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;SNOWFLAKE_INTELLIGENCE&lt;/FONT&gt;&lt;/STRONG&gt;/schemas/&lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;AGENTS&lt;/FONT&gt;&lt;/STRONG&gt;/agents/&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;SYNTHAGENT&lt;/STRONG&gt;&lt;/FONT&gt;:run&lt;/P&gt;
&lt;H2 data-unlink="true"&gt;Creating your REST API Connector&lt;/H2&gt;
&lt;P&gt;While it's a rather complicated URL path, it is in fact nothing more than a URL path. Which is the most important thing that the Qlik Rest API Connector needs. Begin by creating a new connection. Be sure and choose the correct space where you want this new connector created and simply choose "REST".&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_5-1767104602549.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185996i7BC128221360865C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_5-1767104602549.png" alt="Dalton_Ruer_5-1767104602549.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Paste in the correct &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;URL&lt;/STRONG&gt; &lt;/FONT&gt;and choose the &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;POST&lt;/FONT&gt; &lt;/STRONG&gt;method:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_6-1767104703413.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185997i2C041FF23C99D39E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_6-1767104703413.png" alt="Dalton_Ruer_6-1767104703413.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;After choosing POST as the method, the connector is going to prompt you for the &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;BODY&lt;/FONT&gt; &lt;/STRONG&gt;of the call.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_8-1767104888132.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186000i8F41A2BD8806633D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_8-1767104888132.png" alt="Dalton_Ruer_8-1767104888132.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;My agent is built from a &lt;A href="https://www.snowflake.com/en/developers/guides/snowflake-semantic-view/" target="_blank" rel="noopener"&gt;Snowflake Semantic View&lt;/A&gt;. Based on that, here is the sample body that I passed to my SYNTHAGENT URL:&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"messages": [&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"role": "user",&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"content": [&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"type": "text",&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"text": "Who are the top 10 admitting providers?"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;]&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;],&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"tool_choice": {&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"type": "auto"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Notice that I'm asking the exact same question that I asked directly in Snowflake so that I can test the results I get back to ensure it is working.&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2&gt;Additional request parameters&lt;/H2&gt;
&lt;P&gt;Based on the Snowflake Cortex Agent API documentation, you will need to configure a parameter and a few headers that are passed when calling the URL.&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Query parameters&lt;/H3&gt;
&lt;P&gt;You need to have a parameter named &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Response-Type&lt;/STRONG&gt;&lt;/FONT&gt; with the value &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;text/event-stream&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_0-1767120954761.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186004i62312AC581D69EC7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_0-1767120954761.png" alt="Dalton_Ruer_0-1767120954761.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;Query Headers&amp;nbsp;&lt;/H3&gt;
&lt;P&gt;You need to create 4 Query Headers.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Authorization&lt;/STRONG&gt; &lt;/FONT&gt;- This is to define the security for the API call. Snowflake provides multiple types of security. In this example I'm using a token model. To create your API Token, called Programmatic access token (PAT) in Snowflake you simply go to your profile, go to Settings and choose Authentication. Then Generate new token.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_2-1767121490859.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186006iF4768F52ACDAD8F6/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_2-1767121490859.png" alt="Dalton_Ruer_2-1767121490859.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When you create the PAT, simply copy the value and in the value field type &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Bearer&lt;/STRONG&gt; &lt;/FONT&gt;and then paste in your PAT.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;User-Agent&lt;/STRONG&gt;&lt;/FONT&gt; use &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;QlikSense&lt;/FONT&gt;&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Accept&lt;/STRONG&gt; &lt;/FONT&gt;simply use &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;*/*&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Content-Type&lt;/STRONG&gt;&lt;/FONT&gt; use &lt;FONT color="#00CCFF"&gt;application/json&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_3-1767121519854.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186007iBC5031934A8BE980/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_3-1767121519854.png" alt="Dalton_Ruer_3-1767121519854.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Checking the box that isn't there&lt;/H2&gt;
&lt;P&gt;You had to hard code your question in the body, but in the real world in which you live are you always going to make all users, always see answers for just that question?"&lt;/P&gt;
&lt;P&gt;This is when you need to reply out loud in your biggest voice "OF COURSE NOT!!!!"&lt;/P&gt;
&lt;P&gt;Then I would say "So check that box that says Enable Dynamic Parameters" or any of the alternatives shown:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_4-1767121643025.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186008i6CA87113C39713C5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_4-1767121643025.png" alt="Dalton_Ruer_4-1767121643025.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Because any of those check boxes would make total sense to you "Oh I need to check the box that allows me to change the question based on what my user asks."&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instead I need you check the box that only makes sense, after you know what it does. It's the check box that says &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Allow "WITH CONNECTION"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_5-1767121953174.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186009i604EDC55C96BC683/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_5-1767121953174.png" alt="Dalton_Ruer_5-1767121953174.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;It will make sense in a few minutes why the button has that name. For now just now it relates to any of the 3 button names I wish it had.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":beaming_face_with_smiling_eyes:"&gt;😁&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Test your connection&lt;/H2&gt;
&lt;P&gt;Finally give your connection a name and press the Test connection button.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_7-1767122178583.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186011iE6238427AFD515BC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_7-1767122178583.png" alt="Dalton_Ruer_7-1767122178583.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If all of your security is configured correctly in Snowflake (&lt;A href="https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents" target="_blank" rel="noopener"&gt;Click here to see all of the things you need to ensure in Snowflake itself.&lt;/A&gt;) then you will get a Connection succeeded result.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_6-1767122116899.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186010iCD179009F6BCE18A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_6-1767122116899.png" alt="Dalton_Ruer_6-1767122116899.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;If you see an error like "Unsupported Accept header null is specified. It simply means that you followed instructions from some other post and left out the &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Accept */*&lt;/STRONG&gt;&lt;/FONT&gt; that I showed above an retest the connection.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_9-1767122429420.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186013i3AAEC7C6706AAE49/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_9-1767122429420.png" alt="Dalton_Ruer_9-1767122429420.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Once you see the Connection succeeded save your connection so that we can actually make the call to the agent and see how the results look.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Calling the Connector&lt;/H2&gt;
&lt;P&gt;Congratulations you know have a connector in place to call your Snowflake Cortex Agent REST API. Woohoo.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":smiling_face_with_sunglasses:"&gt;😎&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Click the &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Select data&lt;/STRONG&gt;&lt;/FONT&gt; button for the connector&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_10-1767122662834.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186014iF0C4533721FB33A7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_10-1767122662834.png" alt="Dalton_Ruer_10-1767122662834.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;It will default to &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;CSV&lt;/FONT&gt; &lt;/STRONG&gt;for the response type which is perfect.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Delimiter&lt;/STRONG&gt;&lt;/FONT&gt; should be Tab&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;.&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Check the box for &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;CSV Has header&lt;/STRONG&gt;&lt;/FONT&gt;.&lt;/P&gt;
&lt;P&gt;Check the &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;CSV_source&lt;/STRONG&gt; &lt;/FONT&gt;box.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once you check that box it will go and make the call. If you see results like below you know that have in fact successfully asked your Snowflake Cortex Agent that question that was hard coded.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Dalton_Ruer_11-1767122870405.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186015i7B5F3BBFD9811E2A/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_11-1767122870405.png" alt="Dalton_Ruer_11-1767122870405.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Press the Insert script button to actually insert the script block into your load script. Isn't this great I can reload my application and get answers to the same question over and over and over again. We are really living large. Right?&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_12-1767123072167.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186016i6EE7ADC06C718CBF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_12-1767123072167.png" alt="Dalton_Ruer_12-1767123072167.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Our connector is working great, but I'm still hung up on that whole "same question over and over and over again thing." Logically what we would like to do, and more importantly can do ... is call the REST API and give it the question on the fly. In other words we would need to give it the BODY for the the call on the fly ... like this:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_0-1767123655396.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186017iD7F72C601FFC55DE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_0-1767123655396.png" alt="Dalton_Ruer_0-1767123655396.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;WITH CONNECTION&lt;/H2&gt;
&lt;P&gt;WITH CONNECTION is the syntax key word that is added to calls to REST API Connectors. Now I get why that checkbox that didn't make sense is called Allow WITH CONNECTION. It is letting you declare when you create the connection if the developers with access to the connection are allowed to do that or not. Glad they didn't rename them with any of the names I suggested. We would have a nightmare on our hands.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now I have the ability to create a variable with the body, that has whatever question I want in it:&lt;/P&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;Let vBody = '{&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; "messages": [&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; {&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; "role": "user",&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; "content": [&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "type": "text",&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "text": "Totally different question for you to answer for me now. Now I need to know only the top 3 Attending Physicians"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; }&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; ],&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; "tool_choice": {&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; "type": "auto"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; }&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;}';&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;Let vRequestBody = Replace('$(vBody)', '"', chr(34)&amp;amp;chr(34));&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;RestConnectorMasterTable:&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;Replace Load *;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;SQL SELECT&amp;nbsp;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt; "event: response.status"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;FROM CSV (header on, delimiter "tab", quote """") "CSV_source"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;WITH CONNECTION(&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;BODY "$(vRequestBody)"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;);&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;[CSV_source]:&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;LOAD [event: response.status]&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;RESIDENT RestConnectorMasterTable;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;DROP TABLE RestConnectorMasterTable;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I can make the Body/Question even more variable if I desire. Which of course you will want to do because you want the end user to ask the question and then have this code run:&lt;/DIV&gt;
&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_2-1767125321575.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186019iEF0D6EA4BD9877E1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_2-1767125321575.png" alt="Dalton_Ruer_2-1767125321575.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;H2&gt;Results&lt;/H2&gt;
&lt;P&gt;When you look at the results you will realize that the Snowflake Cortex Agent API does not just return the answer to our question. It returns an entire event stream. Which is precisely why when we set the Response-Type parameter initially, we needed to set it to text/event-stream.&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_3-1767125461688.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186020i903838163E2B01A0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_3-1767125461688.png" alt="Dalton_Ruer_3-1767125461688.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Great news is you have successfully created your REST API connector so you can talk to the Snowflake Cortex Agent. The next step is to check out my previous post where I walk you through how to process the results.&amp;nbsp;&lt;A href="https://community.qlik.com/t5/Member-Articles/Calling-Snowflake-s-Cortex-Agent-API/ta-p/2535284" target="_blank" rel="noopener"&gt;https://community.qlik.com/t5/Member-Articles/Calling-Snowflake-s-Cortex-Agent-API/ta-p/2535284&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;PS - This post was planned for a later date. Be sure to thank&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/14016"&gt;@chriscammers&lt;/a&gt;&amp;nbsp;for requesting it sooner.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face_with_big_eyes:"&gt;😃&lt;/span&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 30 Dec 2025 20:18:42 GMT</pubDate>
    <dc:creator>Dalton_Ruer</dc:creator>
    <dc:date>2025-12-30T20:18:42Z</dc:date>
    <item>
      <title>Creating a REST API Connection for Snowflake Cortex Agent</title>
      <link>https://community.qlik.com/t5/Member-Articles/Creating-a-REST-API-Connection-for-Snowflake-Cortex-Agent/ta-p/2539998</link>
      <description>&lt;P&gt;In a previous post called&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://community.qlik.com/t5/Member-Articles/Calling-Snowflake-s-Cortex-Agent-API/ta-p/2535284" target="_blank" rel="noopener"&gt;Calling Snowflake's Cortex Agent API&lt;/A&gt;, I started the post by saying the focus of the post was about how the REST API worked not how to create the connection to it. This post is focused solely on how to create a REST API connector for Snowflake Cortex Agents.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;Snowflake Agents&lt;/H2&gt;
&lt;P&gt;Snowflake allows you to build "agents." While I have built several, this post is going to focus on one that I called "&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;SynthAgent&lt;/STRONG&gt;&lt;/FONT&gt;."&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Dalton_Ruer_2-1767103275606.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185993i2D336499C828C523/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_2-1767103275606.png" alt="Dalton_Ruer_2-1767103275606.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;They also provide a way you for you to question them directly in their user interface. I can simply ask a question like "&lt;SPAN&gt;&lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;Who are the top 10 admitting providers?&lt;/FONT&gt;&lt;/STRONG&gt;" and voila ... I get an answer&lt;/SPAN&gt;:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_1-1767103121649.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185992i92236DB4CAA3ADD3/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_1-1767103121649.png" alt="Dalton_Ruer_1-1767103121649.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Actually as my previous post indicated, when you talk to an agent you actually get to see it's entire stream of thought.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_3-1767103587242.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185994i2215ADC5310AEAE2/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_3-1767103587242.png" alt="Dalton_Ruer_3-1767103587242.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Snowflake Cortex Agent API&lt;/H2&gt;
&lt;P&gt;While asking an isolated question inside of Snowflake is certainly handy-dandy, the bigger picture is in the fact that in the world we live in, agents should play nice with others. So,&lt;A href="https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-run" target="_blank" rel="noopener"&gt; Snowflake created an API that allows others outside of the Snowflake user interface to speak with their data&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_4-1767103844098.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185995iD89713F406F79522/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_4-1767103844098.png" alt="Dalton_Ruer_4-1767103844098.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Obviously you will need to use your own server and your own agents, but to help you understand the URL I wanted to show you the URL I will use in this post for this Cortex Agent API. Refer to the first image to see the database/schema/agent:&lt;/P&gt;
&lt;P data-unlink="true"&gt;https://AYFR...mputing.com/api/v2/databases/&lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;SNOWFLAKE_INTELLIGENCE&lt;/FONT&gt;&lt;/STRONG&gt;/schemas/&lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;AGENTS&lt;/FONT&gt;&lt;/STRONG&gt;/agents/&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;SYNTHAGENT&lt;/STRONG&gt;&lt;/FONT&gt;:run&lt;/P&gt;
&lt;H2 data-unlink="true"&gt;Creating your REST API Connector&lt;/H2&gt;
&lt;P&gt;While it's a rather complicated URL path, it is in fact nothing more than a URL path. Which is the most important thing that the Qlik Rest API Connector needs. Begin by creating a new connection. Be sure and choose the correct space where you want this new connector created and simply choose "REST".&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_5-1767104602549.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185996i7BC128221360865C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_5-1767104602549.png" alt="Dalton_Ruer_5-1767104602549.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Paste in the correct &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;URL&lt;/STRONG&gt; &lt;/FONT&gt;and choose the &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;POST&lt;/FONT&gt; &lt;/STRONG&gt;method:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_6-1767104703413.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/185997i2C041FF23C99D39E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_6-1767104703413.png" alt="Dalton_Ruer_6-1767104703413.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;After choosing POST as the method, the connector is going to prompt you for the &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;BODY&lt;/FONT&gt; &lt;/STRONG&gt;of the call.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_8-1767104888132.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186000i8F41A2BD8806633D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_8-1767104888132.png" alt="Dalton_Ruer_8-1767104888132.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;My agent is built from a &lt;A href="https://www.snowflake.com/en/developers/guides/snowflake-semantic-view/" target="_blank" rel="noopener"&gt;Snowflake Semantic View&lt;/A&gt;. Based on that, here is the sample body that I passed to my SYNTHAGENT URL:&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"messages": [&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"role": "user",&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"content": [&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"type": "text",&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"text": "Who are the top 10 admitting providers?"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;]&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;],&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"tool_choice": {&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;"type": "auto"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Notice that I'm asking the exact same question that I asked directly in Snowflake so that I can test the results I get back to ensure it is working.&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2&gt;Additional request parameters&lt;/H2&gt;
&lt;P&gt;Based on the Snowflake Cortex Agent API documentation, you will need to configure a parameter and a few headers that are passed when calling the URL.&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Query parameters&lt;/H3&gt;
&lt;P&gt;You need to have a parameter named &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Response-Type&lt;/STRONG&gt;&lt;/FONT&gt; with the value &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;text/event-stream&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_0-1767120954761.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186004i62312AC581D69EC7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_0-1767120954761.png" alt="Dalton_Ruer_0-1767120954761.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H3&gt;Query Headers&amp;nbsp;&lt;/H3&gt;
&lt;P&gt;You need to create 4 Query Headers.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Authorization&lt;/STRONG&gt; &lt;/FONT&gt;- This is to define the security for the API call. Snowflake provides multiple types of security. In this example I'm using a token model. To create your API Token, called Programmatic access token (PAT) in Snowflake you simply go to your profile, go to Settings and choose Authentication. Then Generate new token.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_2-1767121490859.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186006iF4768F52ACDAD8F6/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_2-1767121490859.png" alt="Dalton_Ruer_2-1767121490859.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When you create the PAT, simply copy the value and in the value field type &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Bearer&lt;/STRONG&gt; &lt;/FONT&gt;and then paste in your PAT.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;User-Agent&lt;/STRONG&gt;&lt;/FONT&gt; use &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;QlikSense&lt;/FONT&gt;&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Accept&lt;/STRONG&gt; &lt;/FONT&gt;simply use &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;*/*&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Content-Type&lt;/STRONG&gt;&lt;/FONT&gt; use &lt;FONT color="#00CCFF"&gt;application/json&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_3-1767121519854.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186007iBC5031934A8BE980/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_3-1767121519854.png" alt="Dalton_Ruer_3-1767121519854.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Checking the box that isn't there&lt;/H2&gt;
&lt;P&gt;You had to hard code your question in the body, but in the real world in which you live are you always going to make all users, always see answers for just that question?"&lt;/P&gt;
&lt;P&gt;This is when you need to reply out loud in your biggest voice "OF COURSE NOT!!!!"&lt;/P&gt;
&lt;P&gt;Then I would say "So check that box that says Enable Dynamic Parameters" or any of the alternatives shown:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_4-1767121643025.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186008i6CA87113C39713C5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_4-1767121643025.png" alt="Dalton_Ruer_4-1767121643025.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Because any of those check boxes would make total sense to you "Oh I need to check the box that allows me to change the question based on what my user asks."&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instead I need you check the box that only makes sense, after you know what it does. It's the check box that says &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Allow "WITH CONNECTION"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_5-1767121953174.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186009i604EDC55C96BC683/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_5-1767121953174.png" alt="Dalton_Ruer_5-1767121953174.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;It will make sense in a few minutes why the button has that name. For now just now it relates to any of the 3 button names I wish it had.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":beaming_face_with_smiling_eyes:"&gt;😁&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Test your connection&lt;/H2&gt;
&lt;P&gt;Finally give your connection a name and press the Test connection button.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_7-1767122178583.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186011iE6238427AFD515BC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_7-1767122178583.png" alt="Dalton_Ruer_7-1767122178583.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If all of your security is configured correctly in Snowflake (&lt;A href="https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents" target="_blank" rel="noopener"&gt;Click here to see all of the things you need to ensure in Snowflake itself.&lt;/A&gt;) then you will get a Connection succeeded result.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_6-1767122116899.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186010iCD179009F6BCE18A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_6-1767122116899.png" alt="Dalton_Ruer_6-1767122116899.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;If you see an error like "Unsupported Accept header null is specified. It simply means that you followed instructions from some other post and left out the &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Accept */*&lt;/STRONG&gt;&lt;/FONT&gt; that I showed above an retest the connection.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_9-1767122429420.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186013i3AAEC7C6706AAE49/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_9-1767122429420.png" alt="Dalton_Ruer_9-1767122429420.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Once you see the Connection succeeded save your connection so that we can actually make the call to the agent and see how the results look.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Calling the Connector&lt;/H2&gt;
&lt;P&gt;Congratulations you know have a connector in place to call your Snowflake Cortex Agent REST API. Woohoo.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":smiling_face_with_sunglasses:"&gt;😎&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Click the &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Select data&lt;/STRONG&gt;&lt;/FONT&gt; button for the connector&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_10-1767122662834.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186014iF0C4533721FB33A7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_10-1767122662834.png" alt="Dalton_Ruer_10-1767122662834.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;It will default to &lt;STRONG&gt;&lt;FONT color="#00CCFF"&gt;CSV&lt;/FONT&gt; &lt;/STRONG&gt;for the response type which is perfect.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;Delimiter&lt;/STRONG&gt;&lt;/FONT&gt; should be Tab&lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;.&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Check the box for &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;CSV Has header&lt;/STRONG&gt;&lt;/FONT&gt;.&lt;/P&gt;
&lt;P&gt;Check the &lt;FONT color="#00CCFF"&gt;&lt;STRONG&gt;CSV_source&lt;/STRONG&gt; &lt;/FONT&gt;box.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once you check that box it will go and make the call. If you see results like below you know that have in fact successfully asked your Snowflake Cortex Agent that question that was hard coded.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Dalton_Ruer_11-1767122870405.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186015i7B5F3BBFD9811E2A/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_11-1767122870405.png" alt="Dalton_Ruer_11-1767122870405.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Press the Insert script button to actually insert the script block into your load script. Isn't this great I can reload my application and get answers to the same question over and over and over again. We are really living large. Right?&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_12-1767123072167.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186016i6EE7ADC06C718CBF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_12-1767123072167.png" alt="Dalton_Ruer_12-1767123072167.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Our connector is working great, but I'm still hung up on that whole "same question over and over and over again thing." Logically what we would like to do, and more importantly can do ... is call the REST API and give it the question on the fly. In other words we would need to give it the BODY for the the call on the fly ... like this:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_0-1767123655396.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186017iD7F72C601FFC55DE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Dalton_Ruer_0-1767123655396.png" alt="Dalton_Ruer_0-1767123655396.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;WITH CONNECTION&lt;/H2&gt;
&lt;P&gt;WITH CONNECTION is the syntax key word that is added to calls to REST API Connectors. Now I get why that checkbox that didn't make sense is called Allow WITH CONNECTION. It is letting you declare when you create the connection if the developers with access to the connection are allowed to do that or not. Glad they didn't rename them with any of the names I suggested. We would have a nightmare on our hands.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now I have the ability to create a variable with the body, that has whatever question I want in it:&lt;/P&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;Let vBody = '{&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; "messages": [&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; {&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; "role": "user",&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; "content": [&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "type": "text",&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "text": "Totally different question for you to answer for me now. Now I need to know only the top 3 Attending Physicians"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; }&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; ],&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; "tool_choice": {&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; "type": "auto"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;&amp;nbsp; }&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;}';&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;Let vRequestBody = Replace('$(vBody)', '"', chr(34)&amp;amp;chr(34));&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;RestConnectorMasterTable:&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;Replace Load *;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;SQL SELECT&amp;nbsp;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt; "event: response.status"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;FROM CSV (header on, delimiter "tab", quote """") "CSV_source"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;WITH CONNECTION(&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;BODY "$(vRequestBody)"&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;);&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;[CSV_source]:&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;LOAD [event: response.status]&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;RESIDENT RestConnectorMasterTable;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-indent-padding-left-30px"&gt;&lt;EM&gt;DROP TABLE RestConnectorMasterTable;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I can make the Body/Question even more variable if I desire. Which of course you will want to do because you want the end user to ask the question and then have this code run:&lt;/DIV&gt;
&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_2-1767125321575.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186019iEF0D6EA4BD9877E1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_2-1767125321575.png" alt="Dalton_Ruer_2-1767125321575.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;H2&gt;Results&lt;/H2&gt;
&lt;P&gt;When you look at the results you will realize that the Snowflake Cortex Agent API does not just return the answer to our question. It returns an entire event stream. Which is precisely why when we set the Response-Type parameter initially, we needed to set it to text/event-stream.&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Dalton_Ruer_3-1767125461688.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/186020i903838163E2B01A0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Dalton_Ruer_3-1767125461688.png" alt="Dalton_Ruer_3-1767125461688.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Great news is you have successfully created your REST API connector so you can talk to the Snowflake Cortex Agent. The next step is to check out my previous post where I walk you through how to process the results.&amp;nbsp;&lt;A href="https://community.qlik.com/t5/Member-Articles/Calling-Snowflake-s-Cortex-Agent-API/ta-p/2535284" target="_blank" rel="noopener"&gt;https://community.qlik.com/t5/Member-Articles/Calling-Snowflake-s-Cortex-Agent-API/ta-p/2535284&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;PS - This post was planned for a later date. Be sure to thank&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/14016"&gt;@chriscammers&lt;/a&gt;&amp;nbsp;for requesting it sooner.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":grinning_face_with_big_eyes:"&gt;😃&lt;/span&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Dec 2025 20:18:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Creating-a-REST-API-Connection-for-Snowflake-Cortex-Agent/ta-p/2539998</guid>
      <dc:creator>Dalton_Ruer</dc:creator>
      <dc:date>2025-12-30T20:18:42Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a REST API Connection for Snowflake Cortex Agent</title>
      <link>https://community.qlik.com/t5/Member-Articles/Creating-a-REST-API-Connection-for-Snowflake-Cortex-Agent/tac-p/2540311#M2359</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/49457"&gt;@Dalton_Ruer&lt;/a&gt;&amp;nbsp;Thanks for letting me pressure you!!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jan 2026 18:08:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Creating-a-REST-API-Connection-for-Snowflake-Cortex-Agent/tac-p/2540311#M2359</guid>
      <dc:creator>chriscammers</dc:creator>
      <dc:date>2026-01-06T18:08:28Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a REST API Connection for Snowflake Cortex Agent</title>
      <link>https://community.qlik.com/t5/Member-Articles/Creating-a-REST-API-Connection-for-Snowflake-Cortex-Agent/tac-p/2541585#M2366</link>
      <description>&lt;P&gt;My pleasure&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/14016"&gt;@chriscammers&lt;/a&gt;&amp;nbsp; .... I've wrapped everything in a pretty bow in this post. Videos of it all plus a little surprise ... Claude + Qlik MCP + Snowflake OSI Semantic View to construct the application in an automated way. Of course the final touches to connect Snowflake Cortex Agent had to be done by hand. But the video will probably blow you away.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Jan 2026 22:35:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Creating-a-REST-API-Connection-for-Snowflake-Cortex-Agent/tac-p/2541585#M2366</guid>
      <dc:creator>Dalton_Ruer</dc:creator>
      <dc:date>2026-01-26T22:35:29Z</dc:date>
    </item>
  </channel>
</rss>

