Last chance! 50% off DataCamp Premium
Sale ends in
Power BI REST API adalah komponen kunci untuk memperluas kapabilitas Microsoft Power BI.
API ini memungkinkan pengembang dan organisasi menyediakan akses terprogram ke laporan, dasbor, dataset, dan ruang kerja, bukan hanya melalui GUI yang tetap.
Kemampuan ini sangat penting dalam solusi BI modern di mana otomasi, integrasi, dan embedding menjadi pusat proses bisnis.
Dalam panduan ini, saya akan memberikan pengantar Power BI REST API, panduan langkah demi langkah cara menggunakannya, beberapa contoh penggunaannya, dan membagikan beberapa fitur lanjutan yang disediakannya
Ekosistem Power BI API dirancang untuk skala di seluruh perusahaan, menawarkan kapabilitas yang tangguh bagi pengembang.
Ini memungkinkan organisasi memperlakukan Power BI sebagai lapisan layanan yang terintegrasi mulus ke dalam alur kerja dan aplikasi.
Berikut komponen dasar ekosistemnya:
API menyediakan pengelolaan end-to-end aset Power BI untuk kasus penggunaan berikut:
Kapabilitas ini memperluas Power BI melampaui GUI-nya, memungkinkan organisasi beroperasi dalam skala besar.
API mengikuti prinsip REST, sehingga mudah diakses oleh pengembang.
Berikut beberapa komponen arsitekturnya:
requests, Node.js axios, atau .NET HttpClient.API juga mendukung pengelolaan konten secara terprogram.
Ini berarti Anda dapat melakukan fungsi-fungsi berikut:
Autentikasi adalah dasar untuk komunikasi yang aman. Power BI API mengandalkan Azure Active Directory untuk mengautentikasi aplikasi dan pengguna.
Untuk mengaktifkan akses:
Service principal direkomendasikan untuk otomasi karena tidak terikat pada pengguna individual.
Power BI mendukung alur standar OAuth 2.0:
Token dilampirkan pada permintaan:
Authorization: Bearer {access_token}
Token kedaluwarsa setelah waktu singkat (biasanya satu jam), sehingga aplikasi harus menyegarkannya secara terprogram.
Power BI API dibagi ke dalam kategori yang mencakup semua aspek konten dan manajemen pengguna Power BI.
Berikut operasi dan fungsinya yang inti:
Power BI REST API memungkinkan Anda mengotomatiskan tugas (seperti menyegarkan dataset), mengelola pengguna dan ruang kerja, atau menyematkan laporan ke aplikasi.
Untuk menggunakannya, ikuti langkah-langkah berikut:
Sebelum kode Anda dapat berkomunikasi dengan Power BI, Anda harus mendaftarkan aplikasi di Azure Active Directory (Azure AD).
PowerBI-API-Testhttps://oauth.pstmn.io/v1/callback (ini adalah URL pengalihan Postman).Untuk langkah berikutnya terkait otorisasi, ada dua pendekatan umum:
Dalam contoh ini, kita akan menggunakan metode alur terdelegasi.
Dashboard.Read.AllReport.Read.AllDataset.Read.AllSetiap panggilan API memerlukan token OAuth. Tanpanya, API tidak akan tahu siapa Anda atau izin apa yang Anda miliki.
Kita akan menggunakan Postman untuk mendapatkan token API.
https://oauth.pstmn.io/v1/callbackhttps://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/authorizehttps://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/tokenopenid profile offline_access https://analysis.windows.net/powerbi/api/Dashboard.Read.All https://analysis.windows.net/powerbi/api/Report.Read.All https://analysis.windows.net/powerbi/api/Dataset.Read.AllAnda juga dapat memperoleh access token dari Microsoft Azure menggunakan skrip Python berikut dengan pustaka requests.
import requests
payload = {
'grant_type': 'client_credentials',
'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
'scope': 'https://analysis.windows.net/powerbi/api/.default'
}
response = requests.post(TOKEN_URL, data=payload)
access_token = response.json()["access_token"]
Token ini berumur pendek; segarkan secara otomatis di produksi.
Setelah Anda mendapatkan access token (dari Langkah 3), Anda akhirnya dapat mulai berkomunikasi dengan Power BI REST API.
Anggap token sebagai “tiket masuk” Anda. Tanpanya, setiap permintaan akan ditolak.
Semua panggilan Power BI REST API dimulai dengan URL:
https://api.powerbi.com/v1.0/myorg
Berikut arti tiap bagiannya:
Anda akan menambahkan path resource seperti /groups, /reports, /datasets.
Setiap permintaan harus menyertakan access token Anda di header Authorization:
Authorization: Bearer <access_token>
Dan untuk permintaan POST, tambahkan:
Content-Type: application/json
Jika Anda melewatkan header ini, Anda akan mendapatkan kesalahan 401 Unauthorized`.
Untuk mulai, mari coba menampilkan semua ruang kerja (group).
headers = {
"Authorization": f"Bearer {access_token}"
}
groups_url = "https://api.powerbi.com/v1.0/myorg/groups"
groups_response = requests.get(groups_url , headers=headers)
Permintaan GET di atas menampilkan semua ruang kerja yang dapat diakses pengguna Anda.
Contoh respons:
{
"value": [
{
"id": "1234-abcd-5678-efgh",
"name": "Marketing Analytics"
},
{
"id": "7890-ijkl-1234-mnop",
"name": "Sales Reporting"
}
]
}
Jika Anda menemui error, berikut beberapa kemungkinan masalah dan artinya.
Mari kita lihat beberapa contoh Power BI API dalam praktik.
Panggilan ini mengambil semua dataset dalam sebuah ruang kerja.
headers = {
"Authorization": f"Bearer {access_token}"
}
# Example: List datasets in the default workspace
datasets_url = "https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/datasets"
datasets_response = requests.get(datasets_url, headers=headers)
for dataset in datasets_response.json()['value']:
print(dataset['id'], dataset['name'])
Contoh respons:
{
"value": [
{
"id": "1234abcd-5678-efgh-9101-ijklmnop",
"name": "SalesDataset",
"configuredBy": "user@contoso.com",
"addRowsAPIEnabled": false,
"isRefreshable": true
},
{
"id": "9876wxyz-5432-ponm-1112-abcd1234",
"name": "MarketingDataset",
"configuredBy": "admin@contoso.com",
"addRowsAPIEnabled": true,
"isRefreshable": false
}
]
}
Anda dapat mengotomatiskan penyegaran dataset alih-alih hanya mengandalkan penyegaran terjadwal di Power BI Service. Contoh ini memicu penyegaran dataset, yang umum digunakan dalam pipeline ETL.
headers = {
"Authorization": f"Bearer {access_token}"
}
datasets_refreshes_url = "https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/datasets/{datasetId}/refreshes"
refresh_response = requests.post(datasets_refreshes_url , headers=headers)
print("Refresh Status:", refresh_response .status_code)
Respons:
HTTP 202 Accepted. Artinya penyegaran telah diantrikan.Dalam contoh berikutnya, mari lihat skrip yang mengambil laporan dalam sebuah ruang kerja, berguna untuk inventaris atau skrip migrasi.
Berikut skrip untuk menampilkan daftar laporan:
headers = {
"Authorization": f"Bearer {access_token}"
}
reports_url = "https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/reports"
reports = requests.get(reports_url , headers=headers).json()['value']
for report in reports:
print(report['id'], report['name'])
Respons:
{
"value": [
{
"id": "a1b2c3d4",
"name": "Executive Sales Report",
"embedUrl": "https://app.powerbi.com/reportEmbed?reportId=a1b2c3d4",
"datasetId": "1234abcd-5678-efgh-9101-ijklmnop"
}
]
}
Kita juga dapat menampilkan nama-nama dasbor yang kita miliki di ruang kerja Power BI.
Berikut skrip untuk menampilkan daftar dasbor:
headers = {
"Authorization": f"Bearer {access_token}"
}
dashboards_url = "https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/dashboards"
dashboards = requests.get(dashboards_url , headers=headers).json()['value']
for dashboard in dashboards :
print(dashboard ['id'], dashboard ['name'])
Respons:
{
"value": [
{
"id": "z9y8x7w6",
"displayName": "Sales Performance Dashboard",
"embedUrl": "https://app.powerbi.com/dashboardEmbed?dashboardId=z9y8x7w6"
}
]
}
Menyematkan (embedding) Power BI memperluas analitik ke aplikasi dan portal eksternal, melampaui sekadar berbagi di layanan Power BI. Ini opsi yang baik bagi organisasi yang ingin membuat dasbor untuk aplikasi yang berhadapan dengan pelanggan.

Sumber: Microsoft Power BI
Menyematkan konten Power BI melibatkan perenderan laporan, dasbor, atau visual di dalam aplikasi kustom menggunakan Power BI REST API dan JavaScript SDK.
Arsitektur biasanya terdiri dari:
Ada dua skenario utama untuk menyematkan konten Power BI, masing-masing dengan model lisensi dan keamanan yang berbeda:
Gambar di bawah menunjukkan cara kerja embed.

Sumber: Microsoft
Untuk menerapkan Power BI embedded, Anda memerlukan autentikasi backend dan perenderan frontend.
Berikut beberapa langkah umum:
Penggunaan Power BI API yang efisien penting untuk memastikan skalabilitas, keandalan, dan daya tanggap.
Karena semua API beroperasi dengan batasan laju dan aturan throttling, Anda perlu merancang aplikasi yang menangani batasan ini sambil mempertahankan kinerja tinggi.
Berikut beberapa langkah yang saya temukan bermanfaat:
Power BI menerapkan batas laju API untuk menjaga stabilitas layanan dan distribusi sumber daya yang adil di seluruh tenant. Setiap tenant memiliki kuota permintaan, dan melampaui batas memicu error 429 Too Many Requests.
Beberapa teknik dapat meminimalkan panggilan API, memaksimalkan throughput, dan mengurangi beban pada layanan Power BI:
Visibilitas ke penggunaan API penting untuk mengelola kuota dan menelusuri masalah kinerja.

Sumber: Microsoft Azure Monitor
Berikut beberapa metode untuk pemantauan API:
Keamanan dan tata kelola adalah pilar dasar bagi setiap perusahaan yang bermaksud mengimplementasikan Power BI dan ekosistem API-nya.
Berikut beberapa langkah:
Gunakan Azure Key Vault untuk rahasia.
Kontrol akses memastikan hanya pengguna berwenang yang dapat melihat atau memanipulasi dataset, laporan, dan dasbor.
Untuk memastikan data terjaga dengan baik, berikut beberapa strategi perlindungan data yang dapat Anda adopsi:
Perusahaan sering beroperasi di banyak wilayah, sehingga kepatuhan menjadi faktor kritis.
Beberapa aspek yang perlu Anda pertimbangkan:
Power BI .NET SDK menyediakan antarmuka strongly typed yang terintegrasi mulus dengan tumpukan Microsoft. Sangat cocok untuk pengembang enterprise yang sudah menggunakan Azure, C#, atau aplikasi ASP.NET.
Kasus penggunaan: Mengotomatiskan publikasi laporan, menyematkan dasbor di portal enterprise, dan mengelola aset ruang kerja.
Keunggulan: Keamanan tipe, penanganan error yang tangguh, dan dukungan native untuk alur autentikasi Azure Active Directory.
Python SDK (dan pustaka klien REST) populer di kalangan data scientist dan analis yang menyukai lingkungan skrip.
Kasus penggunaan: Mengotomatiskan penyegaran dataset, mengekspor metadata laporan, dan mengintegrasikan alur kerja Power BI ke pipeline data yang lebih luas.
Keunggulan: Prototipe cepat, ekosistem pustaka data yang kaya (pandas, Polars, NumPy), dan kemudahan integrasi dengan Jupyter notebook.
JavaScript SDK sangat penting untuk menyematkan konten Power BI langsung ke aplikasi web.
Kasus penggunaan: Menyematkan laporan ke portal pelanggan, produk SaaS, atau dasbor internal. Pengembang juga dapat menyesuaikan interaksi pengguna seperti pemfilteran, ekspor, dan drill-through langsung dari kode sisi klien.
Keunggulan: Interaktivitas waktu nyata, kompatibilitas browser, dan dukungan untuk Single Page Applications (SPA) dengan kerangka kerja seperti React, Angular, atau Vue.
Saat membuat lingkungan pengembangan untuk menjalankan panggilan API Anda, perhatikan pertimbangan berikut:
Sebelum menerapkan ke produksi, pastikan pendaftaran aplikasi di Azure AD memiliki cakupan API yang benar serta izin terdelegasi atau aplikasi.
Jalankan skrip atau pemeriksaan pra-penerapan untuk memastikan token memberikan tingkat akses yang diharapkan.
SDK cenderung berkembang seiring Power BI API.
Anda harus melacak pembaruan versi untuk menghindari perubahan yang merusak, terutama jika menggunakan fitur pratinjau. Pertahankan versi yang dipin di requirements.txt (Python) atau package.json (JavaScript).
Untuk memeriksa apakah panggilan API Anda berjalan lancar, Anda dapat melakukan beberapa pengujian setelahnya.
Untuk pengujian endpoint, gunakan Postman untuk menguji endpoint REST API secara interaktif. Anda dapat mengimpor koleksi Power BI API, melakukan autentikasi via OAuth 2.0, dan bereksperimen dengan berbagai payload permintaan/respons sebelum menulis kode.
Terapkan unit test untuk alur autentikasi dan integration test untuk alur kerja end-to-end.
Berikut beberapa kerangka kerja pengujian:
Jika Anda kesulitan menyiapkan Power BI API, Anda dapat memeriksa error dan solusi di bawah ini:
401 Unauthorized: Periksa validitas token dan scope.
Cara memperbaiki: Verifikasi bahwa access token belum kedaluwarsa dan dihasilkan dengan izin API yang benar.
403 Forbidden: Izin kurang atau ditolak.
Cara memperbaiki: Pastikan pemanggil memiliki penetapan peran yang tepat (misalnya, Contributor, Power BI Admin, atau peran kustom dengan izin yang diperlukan).
429 Too Many Requests: Throttling diterapkan; coba lagi setelah jeda.
Cara memperbaiki: Terapkan exponential backoff atau logika retry dalam kode Anda. Pantau volume panggilan API dan sebar permintaan sepanjang waktu.
Gateway data lokal (on-premises) atau VNet diperlukan untuk sumber data tertentu. Jika gateway tidak diinstal, salah konfigurasi, atau offline, API tidak dapat menyegarkan atau mengakses dataset.
Untuk mencegah masalah ini, pastikan gateway mutakhir, berjalan, dan dipetakan dengan benar ke sumber data di Power BI Service.
Penyegaran dataset atau panggilan API dapat gagal jika kredensial sumber data kedaluwarsa atau berubah.
Untuk mencegahnya, perbarui kredensial secara berkala di Power BI Service atau konfigurasikan kebijakan rotasi kredensial. Anda juga dapat menggunakan managed identity atau key vault untuk pengelolaan yang lebih aman dan otomatis.
Seiring Power BI berkembang menjadi platform analitik pusat, fitur lanjutan dan kapabilitas otomasinya sangat penting untuk menskalakan analitik di seluruh perusahaan.
Berikutnya, mari lihat beberapa fitur lanjutan yang ditawarkan Power BI.
Deployment pipelines menyediakan cara terstruktur untuk mengelola siklus hidup konten Power BI di lingkungan pengembangan, uji, dan produksi.
Pipeline membantu menegakkan kontrol perubahan, mengurangi risiko, dan memastikan praktik penerapan yang konsisten.
Dengan pipeline ini, pengembang dapat memublikasikan dataset dan laporan ke tahap pengembangan. Menggunakan REST API, konten kemudian dapat dipromosikan ke tahap uji dan produksi.
Otomasi seputar penyegaran dan izin pengguna sangat penting untuk menjaga data tetap mutakhir dan akses yang patuh.
Berikut beberapa cara otomasi penyegaran dapat digunakan:
Visual kustom dapat dibuat untuk memperluas kapabilitas Power BI dan memungkinkan organisasi membangun pengalaman data yang disesuaikan.
Berikut panduan sederhana:
Mengintegrasikan Power BI API ke alur kerja business intelligence menghadirkan otomasi dan skalabilitas yang kuat. Ini memungkinkan Anda bekerja melampaui sekadar menyajikan dasbor menggunakan GUI bawaan.
Jika Anda tertarik mempelajari lebih lanjut tentang Power BI, saya merekomendasikan kursus Introduction to Power BI dan jalur Power BI Fundamentals kami. Untuk sumber bacaan lainnya, lihat Power BI Dashboard Tutorial atau tutorial Deploying and Maintaining Assets in Power BI kami.
Anda dapat menggunakan Power BI REST API bersama Deployment Pipelines. Prosesnya biasanya melibatkan memublikasikan file PBIX melalui API, menugaskannya ke pipeline, dan mempromosikannya di lingkungan Dev, Test, dan Prod.
Gunakan service principal untuk tugas otomatis alih-alih akun pengguna, dan terapkan akses paling minimum melalui grup keamanan. Simpan rahasia secara aman (misalnya di Azure Key Vault), aktifkan hanya pengaturan tenant yang diperlukan, dan tinjau izin serta aktivitas masuk secara berkala untuk menjaga integrasi tetap aman.
Copilot memungkinkan Anda berinteraksi dengan data menggunakan bahasa natural. Copilot dapat menghasilkan visual, menjawab pertanyaan, menyarankan kueri DAX, dan membantu Anda menelusuri laporan lebih cepat. Pembaruan terbaru memungkinkannya menganalisis lintas beberapa laporan dan memberikan wawasan yang kontekstual.
API Power BI menonjol karena integrasi mendalamnya dengan Microsoft 365, Teams, dan keamanan Entra. API ini juga mendukung deployment pipeline dan fitur tata kelola admin. Alat BI lain, seperti Tableau atau Looker, memiliki keunggulan masing-masing tetapi berbeda dalam autentikasi, tata kelola, dan fokus ekosistem.
Gunakan pagination untuk menangani daftar panjang, lakukan batch panggilan bila memungkinkan, dan cache respons untuk mengurangi permintaan berulang. Jadwalkan operasi berat seperti penyegaran dataset pada jam non-puncak, dan selalu bangun logika retry untuk batas laju guna menghindari kegagalan saat bekerja dengan data besar.
Saya Austin, seorang blogger dan penulis teknologi dengan pengalaman bertahun-tahun sebagai data scientist dan analis data di bidang kesehatan. Memulai perjalanan teknologi dengan latar belakang biologi, kini saya membantu orang lain melakukan transisi yang sama melalui blog teknologi saya. Ketertarikan saya pada teknologi mendorong kontribusi tulisan saya untuk puluhan perusahaan SaaS, menginspirasi orang lain dan membagikan pengalaman saya.
Kursus Teratas DataCamp
{count, plural, one {Program} other {Program}}
{count, plural, one {Kursus} other {Kursus}}
{count, plural, one {Kursus} other {Kursus}}
{count, plural, one {blog} other {blogs}}
David Woods
13 mnt
{count, plural, one {blog} other {blogs}}
Dario Radečić
15 mnt
{count, plural, one {blog} other {blogs}}
Hugo Bowne-Anderson
13 mnt

{count, plural, one {blog} other {blogs}}
Javier Canales Luna
14 mnt