Quickstart Guide
OpsScaleIQ provides a REST API for Growth and Enterprise-tier customers to programmatically access their operational data. The API is hosted on Google Cloud Platform (Cloud Run) and uses standard JSON over HTTPS.
Base URL
https://opsscaleiq.com/api/v1Response format
JSON
Auth
Bearer token
Rate limit
10,000 req/day
Authentication
Authenticate all requests using a Bearer token in the Authorization header. API keys are generated in Settings → API.
curl https://opsscaleiq.com/api/v1/locations \ -H "Authorization: Bearer osiq_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json"
Rate Limits
Default: 10,000 requests/day per API key. Rate limit headers are included in every response:
X-RateLimit-Limit: 10000 X-RateLimit-Remaining: 9922 X-RateLimit-Reset: 1703980800
Exceeded limits return 429 Too Many Requests. Implement exponential backoff with a 60-second minimum wait.
Error Handling
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request — invalid parameters |
| 401 | Unauthorized — missing or invalid API key |
| 403 | Forbidden — API access not enabled for org |
| 404 | Not Found — resource does not exist |
| 429 | Too Many Requests — rate limit exceeded |
| 500 | Internal Server Error — report to support |
Locations API
/api/v1/locationsReturns all locations in your organization with OpsScore™, review counts, and metadata.
{
"data": [
{
"id": "loc_01H5B",
"name": "Downtown Service Center",
"address": "123 Main St, Cityville, CA",
"opsScore": 82,
"reviewCount": 214,
"avgRating": 4.3
}
]
}Reviews API
/api/v1/reviewsFetch AI-triaged review data. Supports filters:
locationIdfilter by location IDminStarsminimum star rating (1–5)sinceISO date string (reviews after this date)limitnumber of results (default 50, max 200)
{
"data": [
{
"id": "rev_99XYZ",
"locationId": "loc_01H5B",
"source": "GOOGLE",
"rating": 2,
"text": "Waited 40 minutes. Very slow service.",
"aiTriage": {
"category": "UTC-04: Throughput & Queue Bottlenecks",
"severity": 2,
"confidence": 0.97
},
"autoPublished": false,
"createdAt": "2024-12-01T14:22:15Z"
}
]
}/api/v1/ops-scoresReturns current OpsScore™ breakdown for each location. Supports optional locationId filter.
{
"data": [
{
"locationId": "loc_01H5B",
"score": 82,
"factors": {
"avgRating": 88,
"responseRate": 79,
"responseTime": 85,
"velocityTrend": 72,
"resolutionRate": 91
},
"calculatedAt": "2024-12-14T00:00:00Z"
}
]
}/api/v1/alertsReturns active and recently resolved alerts. Filter by status (active | resolved), severity (1 | 2 | 3), or locationId.
/api/v1/benchmarksReturns industry benchmark comparisons for your organization's vertical. Available on Growth and Enterprise plans.
Webhook Payload Reference
Configure webhook URLs in Settings → Integrations → Webhooks. OpsScaleIQ sends a POST with a JSON body on the following events:
| Event | Description |
|---|---|
| review.triaged.critical | Fired when a Severity 3 review is triaged |
| review.triaged | Fired for every newly triaged review |
| alert.created | New alert created from a review or velocity spike |
| task.overdue | A task has breached its SLA window |
| task.resolved | A task has been marked resolved with proof |
| autopilot.published | Auto-Pilot posted a response to Google |
{
"event": "review.triaged.critical",
"orgId": "org_xxxx",
"data": {
"reviewId": "rev_99XYZ",
"locationId": "loc_01H5B",
"severity": 3,
"category": "UTC-01: Staff Conduct & Professionalism",
"rating": 1
},
"timestamp": "2024-12-14T09:15:00Z"
}SAML / SSO Setup
Enterprise plans support SAML 2.0 SSO via Okta, Azure AD, Google Workspace, and other IdPs. Full setup guide available in the Help Center:
Enterprise & Compliance help article