<?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 How to connect to Snowflake using an API call and Key Pair Authentication with Qlik Sense Enterprise on Windows in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/How-to-connect-to-Snowflake-using-an-API-call-and-Key-Pair/ta-p/2522745</link>
    <description>&lt;BLOCKQUOTE class="quote"&gt;The information in this article is provided as-is and will be used at your discretion. Depending on the tool(s) used, customization(s), and/or other factors, ongoing support on the solution below may not be provided by Qlik Support. For assistance, engage with our active &lt;A href="https://community.qlik.com/t5/Connectivity-Data-Prep/bd-p/qlik-sense-data-connectivity" target="_blank" rel="noopener"&gt;Connectivity and Data Prep forums&lt;/A&gt;.&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This article outlines an approach to connect Snowflake using API calls and Key Pair Authentication to Qlik Sense Enterprise on Windows.&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Generate the information required to make a POST call&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;To begin, you will need to obtain the connection details in JSON format. The three steps outlined here are a possible way to do so; you may have different methods available to you.&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Use the&amp;nbsp;&lt;STRONG&gt;Qlik Data Editor&amp;nbsp;&lt;/STRONG&gt;to create a new Snowflake connection with the&amp;nbsp;&lt;STRONG&gt;Key Pair&amp;nbsp;&lt;/STRONG&gt;Authentication Mechanism:&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="create snowflake connection.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181721i648EF62D3191041A/image-size/large?v=v2&amp;amp;px=999" role="button" title="create snowflake connection.png" alt="create snowflake connection.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Collect the&amp;nbsp;&lt;STRONG&gt;{id}&lt;/STRONG&gt;&amp;nbsp;of the new connection from the &lt;STRONG&gt;Qlik Sense Management Console&lt;/STRONG&gt; (QMC)&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="get ID.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181722i903931D05E3DCA9D/image-size/large?v=v2&amp;amp;px=999" role="button" title="get ID.png" alt="get ID.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Make a &lt;STRONG&gt;GET&lt;/STRONG&gt; call to obtain the connection details in JSON format:&lt;BR /&gt;
&lt;PRE&gt;get /dataconnection/{id}&lt;/PRE&gt;
For more information, read &lt;A href="https://help.qlik.com/en-US/sense-developer/APIs/RepositoryServiceAPI/index.html?page=547" target="_blank" rel="noopener"&gt;get /dataconnection/{id}&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;For example, the following PowerShell will query the repository with details obtained in step three. We use the user ”&lt;STRONG&gt;internal\sa_repository&lt;/STRONG&gt;”.&lt;BR /&gt;&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;# Ignore SSL validation errors
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
   public bool CheckValidationResult(
       ServicePoint srvPoint, X509Certificate certificate,
       WebRequest request, int certificateProblem) {
       return true;
   }
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
# Force TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Headers and cert
$hdrs = @{
   "X-Qlik-xrfkey" = "12345678qwertyui"
   "X-Qlik-User" = "UserDirectory=internal;UserId=sa_repository"
}
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object { $_.Subject -like '*QlikClient*' }
if (-not $cert) {
   Write-Error "Qlik client certificate not found!"
   exit
}
# API URL
$url = "https://qlikserver1.domain.local:4242/qrs/dataconnection/400af54c-9913-4e49-90fb-d6e9fecbe3f6?xrfkey=12345678qwertyui"
# Make request 
$resp = Invoke-RestMethod -Uri $url -Method Get -Headers $hdrs -Certificate $cert
$resp | ConvertTo-Json -Depth 10&lt;/CODE&gt;&lt;/PRE&gt;
The JSON result from the above GET will look like this:&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;{
	  "id":  "400af54c-9913-4e49-90fb-d6e9fecbe3f6",
    "createdDate":  "2025-06-13T13:29:39.611Z",
    "modifiedDate":  "2025-06-13T13:29:39.611Z",
    "modifiedByUserName":  "DOMAIN\\qvservice",
    "customProperties":  [],
 	  "owner":  {
         "id":  "874751d5-61f2-411a-bba2-147c68581471",
         "userId":  "qvservice",
         "userDirectory":  "DOMAIN",
         "userDirectoryConnectorName": "",
         "name":  "qvservice",
         "privileges":  null
     },
"name": "Snowflake_no_encrypted (domain_qvservice)",
"connectionstring": ""CUSTOM CONNECT TO \"provider=QvOdbcConnectorPackage.exe;driver=snowflake;server=JIPCXQB-ATTUNITY_PARTNER.snowflakecomputing.com;po
rt=443;database=testDATABASE;schema=PUBLIC;warehouse=MONO_TEST;validateSessionParam=false;role=SYSADMIN;authenticator=snowflake_jwt;allowNonSelectQueries=fa
lse;QueryTimeout=600;useBulkReader=true;maxStringLength=4096;\"",
"type": "QvOdbcConnectorPackage.exe",
"engineObjectId": "",
"username": "jmkxxxx",
"password": "PRIV_KEY_FILE%2rsa_key.p8%%2LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0.........",  //see note bellow
"architecture": 0,
"privileges":  null,
"schemaPath":  "DataConnection"
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Make a POST call using the JSON&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;Make a &lt;STRONG&gt;POST&amp;nbsp;&lt;/STRONG&gt;call with the details now in JSON format:&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;Post /dataconnection&lt;/CODE&gt;&lt;/PRE&gt;
For more information, read &lt;A href="https://help.qlik.com/en-US/sense-developer/APIs/RepositoryServiceAPI/index.html?page=1189" target="_blank" rel="noopener"&gt;post /dataconnection&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;The related POST call using PowerShell scripts will look like: &lt;BR /&gt;&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;{
    "id":  "400af54c-9913-4e49-90fb-d6e9fecbe3f6",
    "createdDate":  "2025-06-13T13:29:39.611Z",
    "modifiedDate":  "2025-06-13T13:29:39.611Z",
    "modifiedByUserName":  "DOMAIN\\qvservice",
    "customProperties":  [

                         ],
    "owner":  {
                  "id":  "874751d5-61f2-411a-bba2-147c68581471",
                  "userId":  "qvservice",
                  "userDirectory":  "DOMAIN",
                  "userDirectoryConnectorName":  "",
                  "name":  "qvservice",
                  "privileges":  null
              },
    "name":  "Snowflake_no_encrypted (domain_qvservice)",
    "connectionstring":  "CUSTOM CONNECT TO \"provider=QvOdbcConnectorPackage.exe;driver=snowflake;server=JIPCXQB-ATTUNITY_PARTNER.snowflakecomputing.com;po
rt=443;database=testDATABASE;schema=PUBLIC;warehouse=MONO_TEST;validateSessionParam=false;role=SYSADMIN;authenticator=snowflake_jwt;allowNonSelectQueries=fa
lse;QueryTimeout=600;useBulkReader=true;maxStringLength=4096;\"",
    "type":  "QvOdbcConnectorPackage.exe",
    "engineObjectId":  "400af54c-9913-4e49-90fb-d6e9fecbe3f6",
    "username":  "jmxxxxx ",
	   "password": "PRIV_KEY_FILE%2rsa_key.p8%%2LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0xxxxxxxxxxxxxxx..",
    "logOn":  1,
    "architecture":  0,
    "tags":  [

             ],
    "privileges":  null,
    "schemaPath":  "DataConnection"
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Related Content&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/How-to-create-a-Qlik-Oracle-Wallet-ODBC-connection-via-the-QRS/ta-p/2519015" target="_blank" rel="noopener"&gt;How to create a Qlik Oracle Wallet ODBC connection via the QRS Rest API&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Qlik Sense Enterprise on Windows&lt;/LI&gt;
&lt;/UL&gt;</description>
    <pubDate>Tue, 01 Jul 2025 06:03:17 GMT</pubDate>
    <dc:creator>Joseph_Musekura</dc:creator>
    <dc:date>2025-07-01T06:03:17Z</dc:date>
    <item>
      <title>How to connect to Snowflake using an API call and Key Pair Authentication with Qlik Sense Enterprise on Windows</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/How-to-connect-to-Snowflake-using-an-API-call-and-Key-Pair/ta-p/2522745</link>
      <description>&lt;BLOCKQUOTE class="quote"&gt;The information in this article is provided as-is and will be used at your discretion. Depending on the tool(s) used, customization(s), and/or other factors, ongoing support on the solution below may not be provided by Qlik Support. For assistance, engage with our active &lt;A href="https://community.qlik.com/t5/Connectivity-Data-Prep/bd-p/qlik-sense-data-connectivity" target="_blank" rel="noopener"&gt;Connectivity and Data Prep forums&lt;/A&gt;.&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This article outlines an approach to connect Snowflake using API calls and Key Pair Authentication to Qlik Sense Enterprise on Windows.&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Generate the information required to make a POST call&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;To begin, you will need to obtain the connection details in JSON format. The three steps outlined here are a possible way to do so; you may have different methods available to you.&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Use the&amp;nbsp;&lt;STRONG&gt;Qlik Data Editor&amp;nbsp;&lt;/STRONG&gt;to create a new Snowflake connection with the&amp;nbsp;&lt;STRONG&gt;Key Pair&amp;nbsp;&lt;/STRONG&gt;Authentication Mechanism:&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="create snowflake connection.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181721i648EF62D3191041A/image-size/large?v=v2&amp;amp;px=999" role="button" title="create snowflake connection.png" alt="create snowflake connection.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Collect the&amp;nbsp;&lt;STRONG&gt;{id}&lt;/STRONG&gt;&amp;nbsp;of the new connection from the &lt;STRONG&gt;Qlik Sense Management Console&lt;/STRONG&gt; (QMC)&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="get ID.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181722i903931D05E3DCA9D/image-size/large?v=v2&amp;amp;px=999" role="button" title="get ID.png" alt="get ID.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;Make a &lt;STRONG&gt;GET&lt;/STRONG&gt; call to obtain the connection details in JSON format:&lt;BR /&gt;
&lt;PRE&gt;get /dataconnection/{id}&lt;/PRE&gt;
For more information, read &lt;A href="https://help.qlik.com/en-US/sense-developer/APIs/RepositoryServiceAPI/index.html?page=547" target="_blank" rel="noopener"&gt;get /dataconnection/{id}&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;For example, the following PowerShell will query the repository with details obtained in step three. We use the user ”&lt;STRONG&gt;internal\sa_repository&lt;/STRONG&gt;”.&lt;BR /&gt;&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;# Ignore SSL validation errors
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
   public bool CheckValidationResult(
       ServicePoint srvPoint, X509Certificate certificate,
       WebRequest request, int certificateProblem) {
       return true;
   }
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
# Force TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Headers and cert
$hdrs = @{
   "X-Qlik-xrfkey" = "12345678qwertyui"
   "X-Qlik-User" = "UserDirectory=internal;UserId=sa_repository"
}
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object { $_.Subject -like '*QlikClient*' }
if (-not $cert) {
   Write-Error "Qlik client certificate not found!"
   exit
}
# API URL
$url = "https://qlikserver1.domain.local:4242/qrs/dataconnection/400af54c-9913-4e49-90fb-d6e9fecbe3f6?xrfkey=12345678qwertyui"
# Make request 
$resp = Invoke-RestMethod -Uri $url -Method Get -Headers $hdrs -Certificate $cert
$resp | ConvertTo-Json -Depth 10&lt;/CODE&gt;&lt;/PRE&gt;
The JSON result from the above GET will look like this:&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;{
	  "id":  "400af54c-9913-4e49-90fb-d6e9fecbe3f6",
    "createdDate":  "2025-06-13T13:29:39.611Z",
    "modifiedDate":  "2025-06-13T13:29:39.611Z",
    "modifiedByUserName":  "DOMAIN\\qvservice",
    "customProperties":  [],
 	  "owner":  {
         "id":  "874751d5-61f2-411a-bba2-147c68581471",
         "userId":  "qvservice",
         "userDirectory":  "DOMAIN",
         "userDirectoryConnectorName": "",
         "name":  "qvservice",
         "privileges":  null
     },
"name": "Snowflake_no_encrypted (domain_qvservice)",
"connectionstring": ""CUSTOM CONNECT TO \"provider=QvOdbcConnectorPackage.exe;driver=snowflake;server=JIPCXQB-ATTUNITY_PARTNER.snowflakecomputing.com;po
rt=443;database=testDATABASE;schema=PUBLIC;warehouse=MONO_TEST;validateSessionParam=false;role=SYSADMIN;authenticator=snowflake_jwt;allowNonSelectQueries=fa
lse;QueryTimeout=600;useBulkReader=true;maxStringLength=4096;\"",
"type": "QvOdbcConnectorPackage.exe",
"engineObjectId": "",
"username": "jmkxxxx",
"password": "PRIV_KEY_FILE%2rsa_key.p8%%2LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0.........",  //see note bellow
"architecture": 0,
"privileges":  null,
"schemaPath":  "DataConnection"
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Make a POST call using the JSON&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;Make a &lt;STRONG&gt;POST&amp;nbsp;&lt;/STRONG&gt;call with the details now in JSON format:&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;Post /dataconnection&lt;/CODE&gt;&lt;/PRE&gt;
For more information, read &lt;A href="https://help.qlik.com/en-US/sense-developer/APIs/RepositoryServiceAPI/index.html?page=1189" target="_blank" rel="noopener"&gt;post /dataconnection&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;LI&gt;The related POST call using PowerShell scripts will look like: &lt;BR /&gt;&lt;BR /&gt;
&lt;PRE style="background-color: #efefef; border: 1px solid #ccc; display: block; overflow-x: auto; padding: 8px;"&gt;&lt;CODE&gt;{
    "id":  "400af54c-9913-4e49-90fb-d6e9fecbe3f6",
    "createdDate":  "2025-06-13T13:29:39.611Z",
    "modifiedDate":  "2025-06-13T13:29:39.611Z",
    "modifiedByUserName":  "DOMAIN\\qvservice",
    "customProperties":  [

                         ],
    "owner":  {
                  "id":  "874751d5-61f2-411a-bba2-147c68581471",
                  "userId":  "qvservice",
                  "userDirectory":  "DOMAIN",
                  "userDirectoryConnectorName":  "",
                  "name":  "qvservice",
                  "privileges":  null
              },
    "name":  "Snowflake_no_encrypted (domain_qvservice)",
    "connectionstring":  "CUSTOM CONNECT TO \"provider=QvOdbcConnectorPackage.exe;driver=snowflake;server=JIPCXQB-ATTUNITY_PARTNER.snowflakecomputing.com;po
rt=443;database=testDATABASE;schema=PUBLIC;warehouse=MONO_TEST;validateSessionParam=false;role=SYSADMIN;authenticator=snowflake_jwt;allowNonSelectQueries=fa
lse;QueryTimeout=600;useBulkReader=true;maxStringLength=4096;\"",
    "type":  "QvOdbcConnectorPackage.exe",
    "engineObjectId":  "400af54c-9913-4e49-90fb-d6e9fecbe3f6",
    "username":  "jmxxxxx ",
	   "password": "PRIV_KEY_FILE%2rsa_key.p8%%2LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0xxxxxxxxxxxxxxx..",
    "logOn":  1,
    "architecture":  0,
    "tags":  [

             ],
    "privileges":  null,
    "schemaPath":  "DataConnection"
}&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;Related Content&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/How-to-create-a-Qlik-Oracle-Wallet-ODBC-connection-via-the-QRS/ta-p/2519015" target="_blank" rel="noopener"&gt;How to create a Qlik Oracle Wallet ODBC connection via the QRS Rest API&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Environment&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Qlik Sense Enterprise on Windows&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 01 Jul 2025 06:03:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/How-to-connect-to-Snowflake-using-an-API-call-and-Key-Pair/ta-p/2522745</guid>
      <dc:creator>Joseph_Musekura</dc:creator>
      <dc:date>2025-07-01T06:03:17Z</dc:date>
    </item>
  </channel>
</rss>

