Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
I need to read dataset (.json file) from a specified location (c:\testing\datset.json) and push the dataset to Power BI premium workspace.
How to programatically read the json file content and push the dataset to power bi workspace using XMLA endpoints?
Solved! Go to Solution.
Hi @Anonymous,
Did lbendlin 's suggestions help with your scenario? if that is the case, you can consider Kudo or accept the helpful suggestions to help others who faced similar requirements.
If these also don't help, please share more detailed information to help us clarify your scenario to test.
How to Get Your Question Answered Quickly
Regards,
Xiaoxin Sheng
"push the dataset to power bi workspace using XMLA endpoints"
That's not how push datasets work (yet). You need to use the push URL and put your data payload into the POST body. Here's an example with Powershell. Replace the body construct with the contents of your JSON file.
#capture stats
$date = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:00.000Z')
$mem = (Get-Counter '\Memory\Available MBytes').CounterSamples.CookedValue
$proc = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue
$disk = (Get-Counter '\LogicalDisk(C:)\% free space').CounterSamples.CookedValue
$svg = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text font-size='12px' font-family='sans-serif' transform='translate(12, 75) rotate(270)'>" + $env:computername + "</text></svg>"
#enforce TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$payload = @{
"Host" = $env:computername
"Timestamp" = $date
"Available Memory in MB" = $mem
"Processor Load %" = $proc
"% Free on C:" = $disk
"img" = $svg
}
#push URL
$endpoint = "https://api.powerbi.com/beta/<tenant>/datasets/<dataset>/rows?key=<push key>"
Invoke-RestMethod -Method Post -Uri "$endpoint" -Body $payload