25 June 2026
5 Steps to Connect Power BI to Standard Time® via OData
Standard Time® exposes a live OData 4.0 feed — eleven entity sets covering time logs, projects, expenses, inventory, and more. These five steps take you from zero to a refreshable Power BI table in under ten minutes.
-
1
Generate Your API Key in Standard Time®
In Standard Time®, open the View menu and click Generate API Key. The dialog shows your current key — if you have never generated one, click Generate. Copy the key to your clipboard; you will paste it into every Power BI M query you create.
You also need your Customer ID (CID), a long alphanumeric string that identifies your account on the OData server. Find it in Help → About. Keep both values handy — the key authenticates each request and the CID tells the server whose data to return.
-
2
Open Power BI Desktop and Start a Blank Query
Launch Power BI Desktop (free from the Microsoft Store). On the Home ribbon, click Get Data → Blank Query. The Power Query Editor opens with an empty query named Query1 in the left panel.
Right-click Query1 in the Queries pane and choose Advanced Editor. This opens the M formula editor where you will paste the connection query. Select all placeholder text before pasting.
-
3
Paste an M Query and Click Done
Paste this query for the TimeLogs entity — the central fact table for all labor data. Replace
YOUR_API_KEYwith the key you copied and1000with your actual CID:let DaysBack = 14, Cutoff = DateTimeZone.ToText( DateTimeZone.LocalNow() - #duration(DaysBack, 0, 0, 0), "yyyy-MM-ddTHH:mm:sszzz" ), Source = OData.Feed( "https://stcloud67.com/odata/TimeLogs?cid=1000&$filter=Created gt " & Cutoff, null, [Headers = [#"X-Api-Key" = "YOUR_API_KEY"]] ) in SourceClick Done. Power BI executes the query and shows a preview of your time log rows. If you see column headers and data, the connection is working.
-
4
Rename the Query, Then Add More Entity Tables
Double-click Query1 in the Queries pane and rename it TimeLogs. Then repeat steps 2 and 3 for each additional entity you want — Projects, Users, Expenses, Inventory, and so on. The OData feed exposes eleven entities in total; paste-ready M queries for all of them are in the OData & Power BI Integration Guide.
Once all queries are added, click Close & Apply on the Home ribbon. Power BI loads every table into the data model and you are back on the report canvas.
-
5
Define Relationships and Build Your First Visual
Switch to the Model view (the three-boxes icon on the left rail). Drag the
UserIDcolumn from TimeLogs ontoUserIDin Users to create a many-to-one relationship. Do the same forProjectID→ Projects andClientID→ Clients.Switch to Report view, drop a Bar chart on the canvas, drag
Projects[Name]to the Axis and create a quick measureTotal Hours = SUM(TimeLogs[TimeLogDurationHours])for the Values. You now have a live, refreshable chart of hours by project — click Refresh on the Home ribbon any time you want current data from your shop floor.
Go Deeper
- OData & Power BI Integration Guide — full setup walkthrough with M queries for all 11 entities, all recommended relationships, and starter DAX measures
- Build Four Dashboards in Power BI — step-by-step instructions for shop floor time, project budget, full job cost, and inventory health dashboards
- OData Schema Reference — every entity set, every column, OData types, and FK relationships
- Smoke-Test Your OData Connection — verify a live connection before building anything