Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
powerbi_jenhen
Resolver II
Resolver II

Power BI Rest API via Powershell

Hi,

 

I have the below $Body variable to use within my API Invoke command, how can I exit the single quotes to reference my $server and $database variables? I currently receive the error: "DMTS_UnsupportedConnectionStringError". I've tried to add single quotes to exit but this triggers an unexpected token:

 

$Body = @{
        "datasourceType"="SQL"
        "connectionDetails"='{"server":$server,"database":$database}'
        "datasourceName"=$gatewaySourceName
    }
1 ACCEPTED SOLUTION
powerbi_jenhen
Resolver II
Resolver II

The issue was my server variable required "\\" not "\". Code that worked for me:

$Body = ConvertTo-Json -Depth 4 -InputObject $(@{
        dataSourceType = "Sql"
        connectionDetails = '{"server":"'+$server.Replace("\","\\")+'","database":"'+$database+'"}'
        datasourceName = $sourceName
        credentialDetails = @{
            credentialType = $credentialDetails.credentialType
            credentials = $credentialDetails.credentials
            encryptedConnection = $credentialDetails.encryptedConnection
            encryptionAlgorithm = $credentialDetails.encryptionAlgorithm
            privacyLevel = $credentialDetails.privacyLevel
        }
    })

View solution in original post

3 REPLIES 3
powerbi_jenhen
Resolver II
Resolver II

The issue was my server variable required "\\" not "\". Code that worked for me:

$Body = ConvertTo-Json -Depth 4 -InputObject $(@{
        dataSourceType = "Sql"
        connectionDetails = '{"server":"'+$server.Replace("\","\\")+'","database":"'+$database+'"}'
        datasourceName = $sourceName
        credentialDetails = @{
            credentialType = $credentialDetails.credentialType
            credentials = $credentialDetails.credentials
            encryptedConnection = $credentialDetails.encryptedConnection
            encryptionAlgorithm = $credentialDetails.encryptionAlgorithm
            privacyLevel = $credentialDetails.privacyLevel
        }
    })
lbendlin
Super User
Super User

 

 

 

$Body = @"
{
        "datasourceType":"SQL",
        "connectionDetails":'{"server":$server,"database":$database}',
        "datasourceName":$gatewaySourceName
}
"@@

 

 

note that the last line should be "@ .  Can't get rid of the second @

Thanks! I actually have further details in my $Body so would the below be the correct syntax? I'm getting a "BadRequest" on my Invoke:

 

$Body = @"
    {
        "datasourceType":"SQL",
        "connectionDetails":'{"server":$server,"database":$database}',
        "datasourceName":$sourceName,
        "credentialDetails":{
            "credentialType":$credentialDetails.credentialType,
            "credentials":$credentialDetails.credentials,
            "encryptedConnection":$credentialDetails.encryptedConnection,
            "encryptionAlgorithm":$credentialDetails.encryptionAlgorithm,
            "privacyLevel":$credentialDetails.privacyLevel
        }
    }
"@

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Fabric Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors