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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply

How do I send a POST Query using Power Query and extract the access token?

Hi,

 

I am trying to figure out how to send a POST Query using Power Query but running into some issues. I have some code here which does not work, and did manage to get a 400 error but I have edited it and can't remember what I put now :(.

 

let

// Define the POST Request.
Url = "https://sso.dynatrace.com/sso/oauth2/token",

Body = ([
grant_type = "client_credentials",
client_id = "xxxxxxx",
client_secret = "xxxx",
scope = "account-idm-read",
resource = "xxxxxxxxxx"]),

Source =
Web.Contents(
Url,
[
Headers=[#"Content-Type"="application/x-www-form-urlencoded"],
Content= Text.ToBinary(Body)
]


),
jsonResponse = Json.Document(Source)


in

jsonResponse

I am using this API here: Authentication for the Account Management API - Dynatrace Docs

 

A successful 200 response would give me an access_token variable in JSON representation. Any ideas? 

1 ACCEPTED SOLUTION
cpwebb
Microsoft Employee
Microsoft Employee

If you're trying to implement an OAuth2 authentication flow in Power Query you need to create a custom connector if you want to create something truly robust: https://blog.crossjoin.co.uk/2021/08/29/connecting-to-rest-apis-with-oauth2-authentication-in-power-...

View solution in original post

3 REPLIES 3
cpwebb
Microsoft Employee
Microsoft Employee

If you're trying to implement an OAuth2 authentication flow in Power Query you need to create a custom connector if you want to create something truly robust: https://blog.crossjoin.co.uk/2021/08/29/connecting-to-rest-apis-with-oauth2-authentication-in-power-...

Uzi2019
Super User
Super User

hi @dinosainsburys 


 GET requests are done by calling Web.Contents without a Content parameter, POST requests are done by calling Web.Contents with the parameter.

 

GET:

let
    URL = "http://xxx/tstat",
    headers = [#"Content-Type"="application/json"],
    web = Web.Contents(URL, [ Headers = headers, ManualStatusHandling = {404, 400}]),
    result = Json.Document(web),
...

 

POST:

let
    URL = "http://xxx/tstat",
    headers = [#"Content-Type"="application/json"],
    data = Json.FromValue([tmode = 2,t_cool = Setpoint,hold = 0]),
    web = Web.Contents(URL, [ Content = data, Headers = headers, ManualStatusHandling = {404, 400}]),
    result = Json.Document(web),
...

@dinosainsburys

Don't forget to give thumbs up and accept this as a solution if it helped you!!!

Hi @dinosainsburys 

You can also refer below post for reference
https://blog.crossjoin.co.uk/2014/04/19/web-services-and-post-requests-in-power-query/

 

I hope I would resolved your issue!

 

 

Don't forget to give thumbs up and accept this as a solution if it helped you!!!

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

May 2025 Monthly Update

Fabric Community Update - May 2025

Find out what's new and trending in the Fabric community.