Forum Discussion
Call a REST API multiple times using Power Query
You can create a function from your query using this syntax:
let functionName = (param1 as datatype) =>
let
Source = Json.Document(Web.Contents("https:// MY API CALL" & param1).
in
Source
in functionName
You can then create a table with your parameters and then add a custom column to your table that calls/invokes your function
You can see an example here http://datachix.com/2014/05/22/power-query-functions-some-scenarios/ and here http://satalyst.com/power-query-creating-a-parameterized-function-in-m/
- Vitaliy7 years agoHelper I
Hi 2 all and sorry for my English!
I have a question that has been torturing for 2 days already. I have a table MYTABLE with 2 columns (URL and Index)of the form:URL Index
jira.test.com/rest/api/2/issue/MYPROJECTKEYNAME-10/worklog 0
jira.test.com/rest/api/2/issue/MYPROJECTKEYNAME-11/worklog 1
.................................................. 1999
In this table I have 2000 records. My goal is to get the data stored in these URLs.
For this I use the following command:
#"MyNewTable"= Table.AddColumn(#"MYTABLE", "DataFromURLsColumn", each Json.Document(Web.Contents(#"MYTABLE"{[Index]}[URL]))), but this request is very difficult and takes a very long time. So I must wait approximately 20-30 minutes or more.
My questions is next:
1. Is there a faster way to get this data stored in the URL?
2. Perhaps there are some global or other settings in the Power BI?
3. Does this command work so slowly due to the number of queries to jira rest api, or maybe because I'm adding a new calculated column to the table?
I will be very grateful for any help, thank you in advance! - jan_k1237 years agoFrequent Visitor
Thanks for this solution.
I got it working feeding off a REST API service. Then I wanted it to be scheduled on Power BI Service. But got this error:
Query contains unsupported function. Function name: Web.Contents
I have used 2 parameters: (start as text, count as text) =>
Then I applied this against a list: = List.Generate(()=>0, each _ < 67000, each _ + 1000)
In a new query i start a custom function with Column1 = the List function and Column2 = 1000. After that I add the web-query which has the start and count params.
The result should be it gets 1000 records at a time, otherwise it fails/time-out.
Can you help me with the web-query refresh on PBI Service? (I am using basic auth with user and pass)
Thanks!