Skip to main content

Overview

The v3 Sync Status API lets you monitor the health and freshness of every Kroo sync from your own tools. Use it to:
  • Track data freshness - See when each endpoint last landed fresh data
  • Plan around availability - View each endpoint’s next scheduled sync
  • Diagnose sync issues - Inspect last-run status, duration, and cadence
  • Monitor utilization - Track partner API-call volume over the last 24 hours
  • Build dashboards & alerts - Feed PowerBI reports and staleness alerts
This is particularly useful for data engineers and project managers who need to ensure critical construction data is up-to-date for reporting and decision-making.
The full request and response schema for every endpoint below lives in the API Reference tab. This page is the task-oriented guide. The legacy v1 Pipeline Status API (Basic Auth) is still supported for existing integrations.

Quick Start

The v3 API uses OAuth 2.0 client credentials: exchange your credentials for a short-lived Bearer token, then send that token on each request.
1

Get API client credentials

Contact implementations@getkroo.com to register an API client. You’ll receive a client_id and client_secret. Treat the secret like a password.
2

Request an access token

Exchange your credentials at the token endpoint. Request the read:sync_status scope.
Response:
3

Call the API with your token

Send the token in the Authorization header as a Bearer credential.
Tokens expire after 1 hour (expires_in: 3600). Request a new one with the same credentials when it expires. The read:sync_status scope is required for this endpoint.

Sync Status API (v3)

List Sync Status

Endpoint: GET /api/v3/sync_status Returns per-endpoint sync status for your company — one row per sync config, ordered by partner name then endpoint key. Results are paginated and cached for roughly 60 seconds. See the API Reference tab for the complete schema. Query Parameters:
  • partner (optional) - Integration name to filter to a single partner (e.g. procore). Max 100 characters
  • page (optional) - 1-indexed page number, clamped to [1, 10000]. Defaults to 1
  • per_page (optional) - Page size, clamped to [1, 100]. Defaults to 50
Sample Response:
Response Attributes:
Pagination: Use meta.total_pages to page through all endpoints. A large integration may span several pages — increase per_page (up to 100) or loop from page=1 to meta.total_pages.
Rate limiting: v3 endpoints allow 60 requests per minute per IP (the token endpoint allows 10 per minute). Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. When the limit is exceeded the API returns 429; back off until the X-RateLimit-Reset Unix timestamp before retrying.

PowerBI Dashboard Setup

Build a real-time sync monitoring dashboard in PowerBI on top of the v3 API. Because v3 uses OAuth, fetch a token and call the endpoint from a single Power Query (M) script rather than the basic Web connector.
1

Create a blank query

In PowerBI Desktop, click Get Data > Blank Query, then open the Advanced Editor.
2

Fetch a token and call the API

Paste the following, substituting your client_id, client_secret, and desired partner:
3

Set data types and build visuals

  1. Set Data Types - Date/Time for last_updated_at and next_sync_at, whole number for the numeric columns
  2. Click Close & Apply, then build:
    • Status Table - All endpoints with freshness and last-run status
    • Freshness Cards - Oldest / newest last_updated_at
    • Alert Visuals - Highlight endpoints where last_sync_status is failed or data is stale
    • Utilization Charts - api_calls_last_24h by partner
4

Enable auto-refresh

  1. Publish to PowerBI Service
  2. Go to Settings > Scheduled refresh and set the frequency (hourly recommended)
  3. Configure failure notifications
Access tokens expire after 1 hour. The query above requests a fresh token on every refresh, so scheduled refreshes keep working. For larger integrations, extend the script to loop through meta.total_pages.

Common Use Cases

Monitoring Critical Endpoints

Set up alerts for business-critical data using last_updated_at:

Operations Dashboard

Create executive dashboards showing:
  • Overall data health status (last_sync_status across endpoints)
  • Sync performance trends (last_sync_duration_seconds)
  • Integration partner reliability
  • Partner API utilization (api_calls_last_24h)

Troubleshooting Data Issues

When reports show unexpected data:
  1. Check last_updated_at and last_sync_status to identify sync delays or failures
  2. Compare freshness across related endpoints
  3. Coordinate with Kroo support using specific endpoint_key values and timestamps
Pro Tip: Bookmark your PowerBI dashboard and check it before running important reports to ensure you’re working with fresh data.

Legacy: Pipeline Status API (v1)

The v1 API remains available for existing integrations, but new integrations should use the v3 Sync Status API above. v1 uses Basic Authentication and returns flat maps of pipeline name to timestamp. Find your Basic Auth credentials in the Kroo App under Settings > Company.

Get Available Partners

Endpoint: GET /api/v1/pipeline_status/describe Discover which data integration partners are configured in your Kroo instance.
Response:

Get Pipeline Status

Endpoint: GET /api/v1/pipeline_status?partner={partner_name}&filters[]={pipeline_key} Retrieve the last sync timestamp for all pipelines from a specific partner. Query Parameters:
  • partner (required) - The name of the integration partner (e.g., “procore”, “cmic”)
  • filters[] (optional) - Pipeline keys to include in the response. Repeat the parameter to include multiple pipelines. If omitted, all pipelines are returned
Sample Response:

Get Next Sync Times

Endpoint: GET /api/v1/pipeline_status/next_sync_times?partner={partner_name}&filters[]={pipeline_key} Retrieve the scheduled next sync time for all pipelines from a specific partner. Accepts the same partner and filters[] parameters as above.
Sample Response: