Available as an add-on |
What you can export
- Posts: one row per post, with the post date, profile, network, post type and metrics such as impressions, engagement, likes, comments, shares and plays.
- Daily profile data: one row per profile per day, with metrics such as followers, impressions, engagement, reach and the number of posts published that day.
Before you start
- The Power BI integration is part of the Premium integrations add-on.
- Your account needs API access, which is also an add-on. If you don't see Generate API key in Settings → Integrations, contact our support team to add it.
- You need a Vista Social API key. Go to Settings → Integrations and click Generate API key if you don't have one yet. Keep the key private: anyone with it can read your account data.
- You need Power BI Desktop to create the report. To refresh it on a schedule, you also need the Power BI Service.
Step 1: Find your profile group ID
Each export covers one profile group. To see your profile groups and their IDs:
- In Power BI Desktop, click Home → Get data, search for blank, and choose Blank query.
- Replace everything in the query editor with the query below, and put your API key in place of
YOUR_API_KEY. If the query editor doesn't open right away, click Advanced Editor first.
let
Source = Json.Document(
Web.Contents(
"https://vistasocial.com/api/integration/powerbi/groups",
[Headers = [#"x-api-key" = "YOUR_API_KEY"]]
)
),
Groups = Table.FromRecords(Source)
in
Groups- Click Next (or Done). If Power BI shows a message about missing credentials, click Configure credentials, set Authentication kind to Anonymous and click Connect. Your API key is already in the query, so Power BI doesn't need a sign-in.
You'll see a table with the id, name and type of every profile group you can access. Copy the id of the group you want to report on. You can delete this query afterwards.
Step 2: Connect Power BI to your data
- Click Home → Get data → Web. If you don't see Web, click the arrow under Get data or search for web.
- Choose Advanced.
- In URL parts, paste your export address, with your profile group ID in place of
GROUP_ID: - Check the date column. In post data, it comes in as text, for example "October 16, 2026". Click Transform Data, select the date column, then go to Transform → Data Type → Date, and click Close & Apply. Daily profile data already uses
YYYY-MM-DDand is usually detected as a date.
https://vistasocial.com/api/integration/powerbi/data?group=GROUP_ID&export_type=post&format=csv&days=90- Under HTTP request header parameters, enter
x-api-keyas the name and paste your API key as the value. - Click OK. If Power BI asks how to sign in, choose Anonymous and click Connect. The header carries your API key.
- On the preview screen, set Data Type Detection to Based on entire dataset, so metrics that are empty in the first rows still become numbers. Then click Load, or Transform Data to tidy up the columns first.
Keep your API key in the header, not in the web address. Addresses are often saved in logs and browser history.
Change what you export
Edit the options in your export address:
-
export_type:postfor one row per post, ordailyfor one row per profile per day. -
format: keepcsv. Without it, the data comes back as JSON. -
days: from1to360. A rolling window that ends today, so each scheduled refresh moves it forward. -
date_fromanddate_to: a fixed range inYYYY-MM-DDformat, up to 360 days. Use these instead ofdays. If you add both,daysis used.
Some examples:
- Posts from the last 30 days:
&export_type=post&format=csv&days=30 - Daily profile data from the last 90 days:
&export_type=daily&format=csv&days=90 - Daily profile data for the first half of the year:
&export_type=daily&format=csv&date_from=2026-01-01&date_to=2026-06-30
To report on both posts and daily profile data, add one data source for each.
Using a blank query instead
If you prefer working in the query editor, click Home → Get data → Blank query and paste the query below. Put your profile group ID in place of GROUP_ID and your API key in place of YOUR_API_KEY, and edit the options inside Query = [...].
let
Source = Csv.Document(
Web.Contents(
"https://vistasocial.com/api/integration/powerbi/data",
[
Query = [group = "GROUP_ID", export_type = "post", format = "csv", days = "90"],
Headers = [#"x-api-key" = "YOUR_API_KEY"]
]
),
[Delimiter = ",", Encoding = 65001, QuoteStyle = QuoteStyle.Csv]
),
Headers = Table.PromoteHeaders(Source, [PromoteAllScalars = true])
in
HeadersClick Next (or Done) and choose Anonymous if asked. Then press Ctrl+A to select every column and click Transform → Detect Data Type. If date is still text, set it to Date yourself. Rename the query and click Close & Apply.
What about the Web API option?
The Web API tile in Get data only has a URL field, so it can't send the x-api-key header. It works if you add &api_key=YOUR_API_KEY to the end of your export address, but your key is then saved wherever the address is logged. Use Web → Advanced when you can.
Step 3: Build your first visual
Once your data is loaded, build visuals the way you normally would in Power BI. For example, to chart engagement over time:
- In the Visualizations pane, choose a chart, for example Line chart.
- From the Data pane, drag date to X-axis and a metric such as engagement to Y-axis.
Step 4: Keep your data up to date
- Publish your report to the Power BI Service.
- In the Power BI Service, open the semantic model's Settings.
- Under Data source credentials, click Edit credentials, choose Anonymous and sign in. Your API key stays in the header you set in Step 2.
- Under Refresh, turn on scheduled refresh and pick a time, for example every day at 6:00 AM.
With days in your address, every refresh pulls the latest days of data.
Important notes
- Post dates and times use each post's own timezone, shown in the timezone column.
- Daily profile data includes some list fields, such as hourly, hashtags and page_fans_country. They come through as text and are best removed in Transform Data.
- An export covers up to 360 days. For a longer history, add a query for each period.
- Power BI shows large totals in short form, for example "4 thousand". To see the exact number, select the visual, open Format visual → Callout value and set Display units to None.
- Regenerating your API key turns off the old one. Update the key in the
x-api-keyheader of your data source, or refreshes will stop working.
Troubleshooting
-
Invalid API key: check that the
x-api-keyheader has your current key from Settings → Integrations. -
(500): Internal Server Error when connecting: the API key didn't reach Vista Social. Check that you added the
x-api-keyheader under HTTP request header parameters. If you used the Web API tile, add&api_key=with your key to the address. - Not allowed to access this profile group: check the group ID from Step 1. You can only export groups you have access to.
-
date_from and date_to are required, in the format YYYY-MM-DD: add
daysto your address, or both dates in theYYYY-MM-DDformat. - Please limit retrievals to 360 days at a time: shorten the date range to 360 days or less.
- Your subscription does not offer integrations: API access isn't active on your account. Contact our support team to add it.
- Your subscription does not include premium integrations addon: the Premium integrations add-on isn't active on your account. Contact our support team to add it.
- Too many requests: Power BI connections have their own per-minute limit. Refresh again after a minute, and avoid refreshing many data sources at the same moment.
Frequently Asked Questions
Q: Do I need to sign in to Power BI to use this?
A: Not to build the report in Power BI Desktop. You need a Power BI Service account to publish the report and refresh it on a schedule.
Q: Can I export more than one profile group?
A: Each data source covers one profile group. Add one for each group you want to report on.
Q: Is the data the same as in Vista Social reports?
A: Yes. Power BI reads the same post and daily profile data that Vista Social uses for your reports, so you can combine and chart it your own way.
Need help?
Reach out to our support team, and we are happy to help.
Related Reading:
Setting up Looker Studio integration for analytics
Setting up the Tableau integration for analytics
Sign up now and try Vista Social for 14 days, free!