Forum Discussion

athrane's avatar
athrane
Frequent Visitor
2 years ago

API POST through power query to get data

Hi All,

 

I have been using Python to do a relatively simple POST operation where I in return get som data. Using requests in Python, I use the following code which gives the desired result:

 

 

body = {"ejendomnr":"880",
                "AktivNr":"1",
                "I_Nr":"1",
                "AarsMaerke":"2023",
                "Aflaesningsfilter":"afMaanedsvis"
       }
url = 'https://apiapp.dff-edb.dk/gentofte/api/getforbrug?id=5c474de09dba2c3069908e6f75a99e48&unr=88408800&anr=1&inr=1' 

result = requests.post(url, json=datatest)

 

 

 

I have seached online to implement this in power query, and have currently implemented the following:

 

 

let
    url = "https://apiapp.dff-edb.dk/gentofte/api/getforbrug?id=5c474de09dba2c3069908e6f75a99e48&unr=88408800&anr=1&inr=1",
    headers = [#"Connection" = "keep-alive",#"Content-Type" = "application/json"],
    postData = Json.FromValue([
            Ejendomnr = "880",
            AktivNr = "1",
            I_Nr = "1",
            AarsMaerk = "2023",
            Aflaesningsfilter = "afMaanedsvis"]),
    response = Web.Contents(
        url,
        [
            Headers = headers,
            Content = postData
        ]
    ),
    jsonResponse = Json.Document(response)
    
in
    jsonResponse

 

 

 

This however gives me an error 500 'Internal server error'. Is anybody able to help with how to solve this issue? The response of the POST method should be a JSON object.

 

*Note that the url contains a token which expires, therefore you may not be able to get a satisfying result using the URL*

1 Reply

  • Your code looks ok.  500 usually means an issue on the server, not in your code (unless your code crashed the server).

     

    Consider using the RelativePath and Query options.