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. 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. 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. 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_KEY with the key you copied and 1000 with 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
        Source

    Click 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. 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. 5

    Define Relationships and Build Your First Visual

    Switch to the Model view (the three-boxes icon on the left rail). Drag the UserID column from TimeLogs onto UserID in Users to create a many-to-one relationship. Do the same for ProjectID → Projects and ClientID → Clients.

    Switch to Report view, drop a Bar chart on the canvas, drag Projects[Name] to the Axis and create a quick measure Total 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

Ready to Pull Live Shop Floor Data into Power BI?

Start a free 30-day trial of Standard Time® and connect Power BI, Excel, or any OData tool to your real shop floor data — no credit card required.

View Pricing Contact Us