tatersecurity.com Open App

Power BI Integration

Connect Microsoft Power BI to live TATER compliance data. Build custom dashboards, executive scorecards, and multi-week trend reports using the TATER compliance data endpoint.

Role required: An API key with Auditor-level access or higher is needed. Generate one under Manage → Connections → API Keys.

Overview

TATER exposes a dedicated flat-data endpoint at GET /api/reports/powerbi that returns denormalized JSON tables designed for direct import into Power BI, Excel, or any BI tool that supports web data sources. No transformation, no nested objects - just rows you can use.

The endpoint supports 21 datasets selectable via the dataset query parameter. The five core compliance datasets return purpose-built shapes:

DatasetContentsKey fields
controlsOne row per control per scan type (latest scan per type)controlId, title, application, scanType, status, isOverride, daysUntilOverrideExpiry
scansScan history with pass/fail KPIsscanId, scanDate, scanType, hostname, passCount, failCount, complianceRate
risksRisk register entriesriskId, title, category, likelihood, impact, riskScore, status, owner
overridesAll risk acceptancesoverrideId, controlId, type, expiryDate, daysUntilExpiry, isExpired
overviewSingle aggregate summary rowcomplianceRate, passCount, failCount, openRiskCount, activeOverrideCount, lastScanDate

The remaining datasets are flat exports of the GRC registers, Power Platform inventory, and device fleet. Each returns the register's rows as-is (newest first, capped at 200 rows per request):

DatasetContents
vendorsVendor / third-party risk register
auditsAudit management records
trainingSecurity training campaigns
bcpdrBusiness continuity / disaster recovery plans
policiesPolicy library metadata (document content is excluded)
changesChange requests (Change Control module)
exceptionsException / waiver records
poamPOA&M (Plan of Action & Milestones) items
monitoring-findingsApplication monitoring findings (including connector-synced findings)
tasksOps tickets / tasker tasks
access-reviewsAccess review campaigns
control-testsControl test records
powerplatformPower Platform GRC inventory (apps, connectors, environments, solutions)
flowsPower Automate flow inventory
devicesDevice fleet inventory extracted from the latest endpoint scans (MDE + Intune)
vulnerabilitiesPer-device vulnerability findings (CVE inventory with severity enrichment)
allEvery dataset in one response, as a keyed object: {"controls":[…],"scans":[…],…}

Connect Power BI Desktop

The quickest path is the Web connector in Power BI Desktop. Each dataset is a separate query.

Step 1 - Get your API key

In TATER, go to Manage → Connections → API Keys and create or copy an existing key. Keep it handy - you will paste it as a custom HTTP header.

Step 2 - Add a Web data source

  1. In Power BI Desktop, click Home → Get Data → Web.
  2. Select Advanced.
  3. In the URL field, enter the endpoint for the dataset you want:
    https://api.tatersecurity.com/api/reports/powerbi?dataset=controls
  4. Under HTTP request header parameters, add:
    Header: x-api-key  |  Value: your-api-key
  5. API keys are bound to the organization that was active when the key was generated, so data is scoped automatically — no org header is needed. (An x-organization-id header is accepted only if it matches the key's own organization; a mismatch is rejected.)
  6. Click OK. Power Query will load the JSON array.
  7. In the Power Query editor, click To Table, then expand the Record column to get individual columns.
  8. Click Close & Apply.
Tip: Repeat steps 2–8 for each dataset you need — any of the 21 datasets in the tables above (e.g. scans, risks, vendors, poam, devices, vulnerabilities) — so you have separate tables to relate in your data model.

Step 3 - Build relationships

The datasets share common fields for building relationships:

  • controls ↔ overrides: controls.controlId = overrides.controlId
  • controls ↔ scans: controls.scanId = scans.scanId

Step 4 - Schedule refresh

Publish your report to Power BI Service. In the dataset settings, configure a Scheduled Refresh. TATER caches the response for 60 seconds, so daily or hourly refresh schedules work without triggering rate limits.

Store your API key as a data source credential in Power BI Service under Data source credentials → Edit credentials → Anonymous → Advanced → Add header.

Connect Excel / Microsoft Fabric

The same Web connector approach works in Excel (Data → From Web) and Microsoft Fabric (Dataflow Gen2 → New source → Web API). Use the same URL and API key header.

Query Parameters Reference

ParameterValuesDefaultNotes
datasetAny dataset name from the tables above, or allallSingle-dataset requests return a flat array; all returns a keyed object
formatcsv-Returns the dataset as a CSV file download instead of JSON. Single datasets only — all always returns JSON.
statusPass, Fail, Manual, Skip, Error-Filter controls by status. Controls dataset only.
applicationAny compliance zone name-Filter controls by application. Controls dataset only.
limit1–10030Max scans to return. Scans dataset only.

Example URLs

# All datasets
https://api.tatersecurity.com/api/reports/powerbi

# Controls only
https://api.tatersecurity.com/api/reports/powerbi?dataset=controls

# Failing controls only
https://api.tatersecurity.com/api/reports/powerbi?dataset=controls&status=Fail

# Last 90 scans
https://api.tatersecurity.com/api/reports/powerbi?dataset=scans&limit=90

# Overview summary row
https://api.tatersecurity.com/api/reports/powerbi?dataset=overview

# Vendor register
https://api.tatersecurity.com/api/reports/powerbi?dataset=vendors

# Device fleet, as a CSV download
https://api.tatersecurity.com/api/reports/powerbi?dataset=devices&format=csv

CSV export

Add format=csv to any single-dataset request to receive the same rows as a CSV file (Content-Type: text/csv, served as an attachment named powerbi-<dataset>.csv). This is convenient for Excel, scheduled pulls with curl/PowerShell, or tools that prefer CSV over JSON.

# Failing controls as CSV
curl -H "x-api-key: $API_KEY" \
  "https://api.tatersecurity.com/api/reports/powerbi?dataset=controls&status=Fail&format=csv" \
  -o failing-controls.csv
Note: format=csv applies to single datasets only. dataset=all always returns JSON, because multiple datasets cannot share one CSV table.

Authentication

The endpoint supports two authentication methods:

  • API key (recommended for BI tools): Pass your API key in the x-api-key request header. Keys are bound to the organization they were generated in, so results are scoped automatically.
  • JWT Bearer token: Pass a valid TATER JWT in the Authorization: Bearer <token> header. Requires Auditor role or higher.