Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi.
I have a report in my Fabric workspace, and I'm trying to export is as PDF with a notebook in Fabric, but I can't get the status of the API call. I'm following https://learn.microsoft.com/en-us/rest/api/power-bi/reports/export-to-file-in-group the documentation:
1. I set variables:
workspaceId="XXXXXXX"
reportId="YYYYYYYYY"
tenant_id="ZZZZZZZZZZZ"
client_id="WWWWWWWWWWWW"
client_secret="CCCCCC"
2. I get the token:
import requests
url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
data = {
"grant_type": "client_credentials",
"client_id": client_id,
"client_secret": client_secret,
"scope": "https://analysis.windows.net/powerbi/api/.default"
}
response = requests.post(url, headers=headers, data=data)
access_token = response.json().get("access_token")
3. I call ExportTo API call:
import json
url = f"https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/reports/{reportId}/ExportTo"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + access_token
}
payload = {
"format": "PDF",
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
And I get this output:
{'@odata.context': 'https://api.powerbi.com/v1.0/myorg/groups/xxxxxxxxxx/$metadata#exports/$entity', 'id': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'createdDateTime': '2025-02-25T11:59:20.2275354Z', 'lastActionDateTime': '2025-02-25T11:59:20.2275354Z', 'reportId': 'xxxxxxxxxxxxxxxxxxxxxxxxx', 'status': 'NotStarted', 'percentComplete': 0, 'expirationTime': '0001-01-01T00:00:00Z'}
Following the documentation, I need to wait until status is completed. However, If I try to check the status of the exported ID, i have a HTTP resource not found:
exportId = response.json().get("id")
url = f"https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/reports/{reportId}/exports/{exportId}/status"
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
status = response.json()
print(status)
With output message: "No HTTP resource was found that matches the request URI..."
Why is it not working?
Solved! Go to Solution.
Try the same in the API sandbox. Should work. Remove the "/status" part of the URL.
Try the same in the API sandbox. Should work. Remove the "/status" part of the URL.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
5 | |
4 | |
2 | |
2 | |
2 |