Can Power BI Consume REST API?

Cody Schneider9 min read

The short answer is a definitive yes. Power BI can absolutely connect to REST APIs, and doing so is a powerful way to pull live, dynamic data directly from web services into your reports and dashboards. This article will show you exactly how to get it done, walking you through the entire process from finding the right connector to handling more complex API challenges.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

What is a REST API Anyway?

Think of a REST API (Application Programming Interface) as a waiter in a restaurant. You (your application, in this case, Power BI) don't go directly into the kitchen (the server with the data) to get your food. Instead, you give your order to the waiter (the API), who communicates with the kitchen and brings back exactly what you asked for (the data).

In technical terms, it's a structured way for different software applications to talk to each other over the internet. You make a "request" to a specific URL (called an endpoint), and the server "responds" with the data you need, usually in a format called JSON (JavaScript Object Notation), which is lightweight and easy for machines to read.

For data professionals and marketers, this is huge. It means you can grab data from countless modern applications: your project management tool, CRM, an e-commerce platform, social media analytics, government databases, and more - all without needing manual CSV exports. You get the data fresh from the source, directly into your analysis tool.

Getting Started: What You’ll Need

Before connecting to an API, make sure you have a few things ready. It will make the process much smoother.

  • Power BI Desktop: This tutorial uses Power BI Desktop, the free authoring tool from Microsoft. If you don't have it, you can download it for free from their website.
  • An API Endpoint URL: This is the specific web address you'll be calling to get the data. It's the "menu" you're ordering from.
  • API Documentation (Recommended): Good documentation will tell you the correct URL, if authentication is needed, and what the data structure looks like. Always check the docs if you can.
  • Authentication Details (If Required): Many APIs require authentication to ensure only authorized users access the data. This often comes in the form of an API Key, a Bearer Token, or an OAuth login. We'll start with a public API that doesn't need a key to keep things simple.

Today, we will use a free public test API called JSONPlaceholder. It’s perfect for learning because it requires no authentication. Our endpoint URL will be: https://jsonplaceholder.typicode.com/posts

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Connecting Power BI to a REST API: A Step-by-Step Guide

Ready to pull in some live data? Here’s how you can connect your first REST API in Power BI.

Step 1: Open Power BI and Select "Get Data"

Launch Power BI Desktop. In the "Home" ribbon at the top, click on Get Data. This dropdown shows you the most common data sources. Since we're connecting to an API via a URL, you'll need to select the Web connector. If you don't see it immediately, click "More..." at the bottom of the list and search for "Web."

Step 2: Enter the API Endpoint URL

A dialog box titled "From Web" will appear. For this first example, you can stick with the "Basic" option. Paste the JSONPlaceholder URL into the box:

https://jsonplaceholder.typicode.com/posts

Click OK. Power BI will now contact that URL, make the GET request, and receive the response.

Step 3: Dive Into the Power Query Editor

After a moment, a new window will open: the Power Query Editor. This is Power BI's built-in data transformation tool. It might look a little intimidating at first, but this is where all the data shaping happens.

What you see initially won't look like a standard table. Since the API returns a JSON array containing multiple objects (in this case, 100 blog posts), Power BI will show it as a list of "Records." This is a common and expected result. Our next task is to turn that list of records into a clean, usable table.

Step 4: Convert the Data into a Table

Turning this list into a table is a core Power Query skill. Here's how to do it:

  1. In the Power Query ribbon, click the To Table button in the "Convert" section.
  2. A small dialog box will pop up. You can just click OK, as the default options are fine.
  3. You now have a table, but it's just a single column (named Column1) filled with the word "Record." Don't worry, all your data is inside those records.
  4. Look at the header for Column1. To the right of the name, you'll see an expand icon (it looks like two arrows pointing away from each other). Click it.
GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Step 5: Expand the Records to Create Columns

After clicking the expand icon, a dropdown menu appears listing all the fields inside the JSON objects (e.g., userId, id, title, body). These are going to be your table columns.

  • Make sure all the fields you want are checked.
  • Important: Uncheck the box that says "Use original column name as prefix." If you leave this checked, your new columns will be named awkwardly like Column1.userId, Column1.id, etc. Unchecking it keeps the column names clean.
  • Click OK.

And just like that, you have a beautiful, clean table! The nested JSON data is now parsed into distinct columns (userId, id, title, body) and rows, all ready for analysis.

Step 6: Finalize Data Types and Close & Apply

Before loading the data, take a quick look at the column headers. Power BI usually does a good job of guessing the data types, denoted by the little icon next to the column name (e.g., 123 for Whole Number, ABC for Text). Ensure they look correct. If id was misinterpreted as text, for example, click the "ABC" icon and change it to "Whole Number."

Once you’re happy with the table, click the Close & Apply button in the top-left corner of the Power Query Editor. This will load your new table into the Power BI data model, and you can start building charts and visuals with it, just like you would with an Excel spreadsheet.

Advanced Scenarios: Authentication and Pagination

Most real-world APIs are a bit more complex. Here's how to tackle two common challenges: authentication and handling multiple pages of data.

Dealing with API Authentication

Most private APIs require you to provide a key so they know who is asking for data. A common method is using an API key sent in the HTTP headers.

Here’s how you would handle that in Power BI:

  1. Go back to Get Data > Web. This time, click the Advanced radio button.
  2. Enter the API URL in the "URL parts" box, just as before.
  3. Under "HTTP request header parameters," you can add the necessary headers. API documentation will tell you what's required, but a popular format is the Authorization header.
  4. In the first dropdown, type Authorization. In the box next to it, you would typically type Bearer followed by your API key. For example: Bearer eyJhbGciO...your.long.key. Another common header is x-api-key.
  5. Click OK. Power BI will now include this header in its request, granting you access.
GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Handling API Pagination

APIs rarely return all their data in one go, especially if there are thousands of records. Instead, they "paginate" the results, giving you a limited number (e.g., 100) per page and a way to request the next page.

Handling this requires going deeper into Power Query’s programming language, M. While a full tutorial on M is beyond this article's scope, the basic idea is to create a function that retrieves one page, then invoke that function for every page you need and append the results.

This often involves using a function like List.Generate() in M to create a loop that keeps fetching data as long as there is a "next page" URL or as long as the content returned is not empty. When done correctly, this lets you seamlessly pull tens of thousands of records from a protected, paginated API right into a single table in Power BI.

Why Connect to REST APIs in the First Place?

Getting this set up takes a bit more effort than loading a CSV, so why bother? It's all about access to live, automated data.

  • SaaS & Marketing Platforms: Automatically pull the latest performance data from your email marketing tool, a CRM like Salesforce, project management apps like Jira, or ad platforms. No more weekly manual exports.
  • E-commerce Analytics: Connect directly to your e-commerce backend (like Shopify or Magento) to get real-time sales, inventory, and customer data.
  • Internal Business Systems: Many companies build internal tools that expose data through REST APIs. This is your gateway to visualizing that data.
  • Public Data: Tap into a world of public data from governments, academic institutions, and public services for market research and trend analysis.

Final Thoughts

While an intimidating topic for some, Power BI's Web connector and Power Query editor make consuming REST APIs surprisingly manageable. Once you learn the pattern of connecting, converting the response to a table, and expanding the columns, you unlock a massive new world of data sources that are always up-to-date.

However, running into the complexities of authentication, rate limiting, and writing custom code to handle pagination can feel like a big hurdle. That’s why we built Graphed. We handle all the tough parts - API authentication, data pipelining, real-time syncs, and data warehousing - so you can connect to sources like Google Analytics, Shopify, and Salesforce in one click. Instead of wrestling with Power Query to get your data ready, you can simply ask your questions in plain English and instantly get AI-powered dashboards, saving hours of manual setup.

Related Articles

How to Enable Data Analysis in Excel

Enable Excel's hidden data analysis tools with our step-by-step guide. Uncover trends, make forecasts, and turn raw numbers into actionable insights today!