SmartQ.tv SmartQ.tv
Developer API Examples

Representative Response Examples

These are representative response-shape examples. They intentionally use placeholder values such as GROUP_ID, LOCATION_ID, ISO_TIMESTAMP, STATUS_STRING, and venue-neutral IDs or timestamps instead of venue-specific data.

locations:read

Discovery Example

{
  "ok": true,
  "version": "v1",
  "resource": "locations",
  "groupId": "GROUP_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "token": {
    "scopeType": "group_or_location",
    "scopes": ["locations:read", "shiftq:read", "matriq:read"],
    "rateLimitPerMinute": "NUMBER",
    "expiresAt": "ISO_TIMESTAMP_OR_NULL",
    "status": "active_or_revoked_or_expired",
    "allowedLocationIds": ["LOCATION_ID_IF_LOCATION_SCOPED"],
    "tokenPrefix": "TOKEN_PREFIX"
  },
  "data": {
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "REFRESH_DESCRIPTION"
    },
    "locations": [
      {
        "id": "LOCATION_ID",
        "name": "LOCATION_NAME",
        "locationShortName": "LOCATION_SHORT_NAME",
        "timezone": "IANA_TIMEZONE",
        "slug": "LOCATION_SLUG",
        "status": "STATUS_STRING",
        "modulesEnabled": {
          "shiftq": "BOOLEAN",
          "sportsq": "BOOLEAN",
          "matriq": "BOOLEAN",
          "campaigns": "BOOLEAN",
          "orderboard": "BOOLEAN"
        },
        "resources": ["RESOURCE_NAME"],
        "endpoints": {
          "root": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID",
          "modules": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/modules",
          "shiftq": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/shiftq",
          "sportsq": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/sportsq",
          "matriq": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/matriq"
        }
      }
    ]
  }
}
shiftq:read

ShiftQ Overview Example

{
  "ok": true,
  "version": "v1",
  "resource": "shiftq",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "sales": { "cadence": "CADENCE_STRING", "description": "SALES_REFRESH_DESCRIPTION" },
      "labor": { "cadence": "CADENCE_STRING", "description": "LABOR_REFRESH_DESCRIPTION" },
      "kitchen": { "cadence": "CADENCE_STRING", "description": "KITCHEN_REFRESH_DESCRIPTION" },
      "posMenu": { "cadence": "CADENCE_STRING", "description": "POS_MENU_REFRESH_DESCRIPTION" },
      "clockIns": { "cadence": "CADENCE_STRING", "description": "CLOCK_IN_REFRESH_DESCRIPTION" },
      "employees": { "cadence": "CADENCE_STRING", "description": "EMPLOYEE_REFRESH_DESCRIPTION" },
      "reservations": { "cadence": "CADENCE_STRING", "description": "RESERVATION_REFRESH_DESCRIPTION" }
    },
    "summary": {
      "businessDate": "YYYYMMDD",
      "salesUpdatedAt": "ISO_TIMESTAMP",
      "laborUpdatedAt": "ISO_TIMESTAMP",
      "top5Leaderboard": [
        { "employeeId": "EMPLOYEE_ID", "employeeName": "EMPLOYEE_NAME", "metric": "METRIC_NAME", "value": "NUMBER", "rank": "NUMBER" }
      ],
      "clockedInCount": "NUMBER",
      "soldOutItemCount": "NUMBER",
      "exceptionCounts": {
        "wrongJobCodeClockIns": "NUMBER",
        "scheduledButMissing": "NUMBER",
        "clockedInButNotScheduled": "NUMBER",
        "earlyClockIns": "NUMBER",
        "lateClockIns": "NUMBER"
      },
      "managerOnDutyCount": "NUMBER",
      "roleGroupCount": "NUMBER",
      "newTeamMemberCount": "NUMBER",
      "reservationDayCount": "NUMBER",
      "reservationPartyCount": "NUMBER",
      "kitchenAvgTicketTimeMinutes": "NUMBER",
      "kitchenExpediterAvgTicketTimeMinutes": "NUMBER",
      "kitchenReadyQueueCount": "NUMBER",
      "kitchenInProgressCount": "NUMBER",
      "kitchenStationCount": "NUMBER"
    }
  }
}
shiftq:read

ShiftQ Kitchen Example

{
  "ok": true,
  "version": "v1",
  "resource": "shiftq/kitchen",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "KITCHEN_REFRESH_DESCRIPTION"
    },
    "currentBusinessDate": "YYYYMMDD",
    "requestedBusinessDate": "YYYYMMDD",
    "bucketAvailable": true,
    "retentionDays": 366,
    "latestMetadata": {
      "updatedAt": "ISO_TIMESTAMP",
      "businessDate": "YYYYMMDD",
      "dateKey": "YYYY-MM-DD",
      "liveBusinessDate": "YYYYMMDD",
      "bucketIntervalMinutes": 15,
      "lastStatus": "ok",
      "lastHttpStatus": 200,
      "lastError": "ERROR_STRING_IF_PRESENT",
      "averageBasis": "ticket_count",
      "avgKitchenTicketTimeMinutes": 11.42,
      "avgKitchenTicketTimeDivisorField": "prepTicketCount",
      "avgKitchenTicketTimeDivisorValue": 37,
      "avgExpediterTicketTimeMinutes": 13.58,
      "avgExpediterTicketTimeDivisorField": "expediterTicketCount",
      "avgExpediterTicketTimeDivisorValue": 31,
      "avgExpoClearMinutes": 3.1,
      "prepTicketCount": 37,
      "prepRowCount": 88,
      "expediterTicketCount": 31,
      "expediterRowCount": 75,
      "expediterLevelCount": 1,
      "stationCount": 3,
      "salesCategoryCount": 2,
      "timeBucketCount": 6,
      "thirtyMinuteBucketCount": 6
    },
    "currentSnapshot": {
      "businessDate": "YYYYMMDD",
      "dateKey": "YYYY-MM-DD",
      "metricsBusinessDate": "YYYYMMDD",
      "metricsDateKey": "YYYY-MM-DD",
      "timezone": "IANA_TIMEZONE",
      "updatedAt": "ISO_TIMESTAMP",
      "dayStartMs": 1753632060000,
      "selectionMode": "prepStations",
      "trackedPrepStations": ["PREP_STATION_GUID"],
      "trackAllPrepStations": false,
      "availablePrepStations": [
        {
          "id": "PREP_STATION_GUID",
          "name": "Grill",
          "includeWithExpediter": false,
          "expoRouting": "EXPO"
        }
      ],
      "trackedSalesCategories": ["FOOD"],
      "trackAllSalesCategories": false,
      "availableSalesCategories": ["FOOD", "NA BEVERAGES"],
      "queue": {
        "inProgressCount": 4,
        "readyQueueCount": 2,
        "oldestReadyMinutes": 6
      },
      "averages": {
        "averageBasis": "ticket_count",
        "avgKitchenTicketTimeMinutes": 11.42,
        "avgKitchenTicketTimeSource": "prep_station_ticket_average",
        "avgKitchenTicketTimeDivisorField": "counts.prepTicketCount",
        "avgKitchenTicketTimeDivisorValue": 37,
        "avgExpediterTicketTimeMinutes": 13.58,
        "avgExpediterTicketTimeSource": "first_level_expediter_ticket_average",
        "avgExpediterTicketTimeDivisorField": "counts.expediterTicketCount",
        "avgExpediterTicketTimeDivisorValue": 31,
        "avgExpoClearMinutes": 3.1
      },
      "counts": {
        "clearedTicketCount": 33,
        "prepTicketCount": 37,
        "prepRowCount": 88,
        "sourceTicketCount": 24,
        "expediterTicketCount": 31,
        "expediterRowCount": 75,
        "expediterSourceTicketCount": 31,
        "expediterLevelCount": 1,
        "stationCount": 3,
        "salesCategoryCount": 2,
        "timeBucketCount": 6,
        "thirtyMinuteBucketCount": 6
      },
      "expediterTicketAverages": [
        {
          "fulfillmentLevel": 1,
          "stationName": "Expo",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 31,
          "averageTicketTimeMinutes": 13.58,
          "ticketCount": 31,
          "rowCount": 75,
          "minTicketTimeMinutes": 5.2,
          "maxTicketTimeMinutes": 21.6
        }
      ],
      "stationTicketAverages": [
        {
          "stationGuid": "PREP_STATION_GUID",
          "stationName": "Grill",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 12,
          "averageTicketTimeMinutes": 10.67,
          "ticketCount": 12,
          "rowCount": 24,
          "minTicketTimeMinutes": 4.1,
          "maxTicketTimeMinutes": 17.8
        }
      ],
      "salesCategoryTicketAverages": [
        {
          "salesCategory": "FOOD",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 37,
          "averageTicketTimeMinutes": 11.42,
          "ticketCount": 37,
          "rowCount": 88,
          "minTicketTimeMinutes": 3.9,
          "maxTicketTimeMinutes": 19.2
        }
      ],
      "timeBuckets": [
        {
          "bucketStartMs": 1753632000000,
          "bucketEndMs": 1753632900000,
          "bucketStartIso": "ISO_TIMESTAMP",
          "bucketEndIso": "ISO_TIMESTAMP",
          "bucketLabel": "LOCAL_15_MINUTE_RANGE",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 9,
          "averageTicketTimeMinutes": 10.8,
          "ticketCount": 9,
          "rowCount": 21,
          "minTicketTimeMinutes": 4.6,
          "maxTicketTimeMinutes": 17.4,
          "stationTicketAverages": [
            {
              "stationGuid": "PREP_STATION_GUID",
              "stationName": "Grill",
              "averageBasis": "ticket_count",
              "averageDivisorField": "ticketCount",
              "averageDivisorValue": 4,
              "averageTicketTimeMinutes": 10.12,
              "ticketCount": 4,
              "rowCount": 8,
              "minTicketTimeMinutes": 4.8,
              "maxTicketTimeMinutes": 14.5
            }
          ],
          "expediterTicketAverages": [
            {
              "fulfillmentLevel": 1,
              "stationName": "Expo",
              "averageBasis": "ticket_count",
              "averageDivisorField": "ticketCount",
              "averageDivisorValue": 8,
              "averageTicketTimeMinutes": 12.4,
              "ticketCount": 8,
              "rowCount": 19,
              "minTicketTimeMinutes": 5.1,
              "maxTicketTimeMinutes": 17.2
            }
          ],
          "salesCategoryTicketAverages": [
            {
              "salesCategory": "FOOD",
              "averageBasis": "ticket_count",
              "averageDivisorField": "ticketCount",
              "averageDivisorValue": 9,
              "averageTicketTimeMinutes": 10.8,
              "ticketCount": 9,
              "rowCount": 21,
              "minTicketTimeMinutes": 4.6,
              "maxTicketTimeMinutes": 17.4
            }
          ]
        }
      ],
      "bucketIntervalMinutes": 15,
      "status": {
        "state": "ok",
        "httpStatus": 200,
        "error": "ERROR_STRING_IF_PRESENT"
      },
      "retentionDays": 366
    },
    "requestedBucket": {
      "businessDate": "YYYYMMDD",
      "dateKey": "YYYY-MM-DD",
      "metricsBusinessDate": "YYYYMMDD",
      "metricsDateKey": "YYYY-MM-DD",
      "timezone": "IANA_TIMEZONE",
      "updatedAt": "ISO_TIMESTAMP",
      "dayStartMs": 1753545660000,
      "selectionMode": "prepStations",
      "trackedPrepStations": ["PREP_STATION_GUID"],
      "trackAllPrepStations": false,
      "availablePrepStations": [
        {
          "id": "PREP_STATION_GUID",
          "name": "Grill",
          "includeWithExpediter": false,
          "expoRouting": "EXPO"
        }
      ],
      "trackedSalesCategories": ["FOOD"],
      "trackAllSalesCategories": false,
      "availableSalesCategories": ["FOOD", "NA BEVERAGES"],
      "queue": {
        "inProgressCount": 3,
        "readyQueueCount": 1,
        "oldestReadyMinutes": 4
      },
      "averages": {
        "averageBasis": "ticket_count",
        "avgKitchenTicketTimeMinutes": 10.94,
        "avgKitchenTicketTimeSource": "prep_station_ticket_average",
        "avgKitchenTicketTimeDivisorField": "counts.prepTicketCount",
        "avgKitchenTicketTimeDivisorValue": 32,
        "avgExpediterTicketTimeMinutes": 12.71,
        "avgExpediterTicketTimeSource": "first_level_expediter_ticket_average",
        "avgExpediterTicketTimeDivisorField": "counts.expediterTicketCount",
        "avgExpediterTicketTimeDivisorValue": 27,
        "avgExpoClearMinutes": 2.8
      },
      "counts": {
        "clearedTicketCount": 29,
        "prepTicketCount": 32,
        "prepRowCount": 74,
        "sourceTicketCount": 21,
        "expediterTicketCount": 27,
        "expediterRowCount": 63,
        "expediterSourceTicketCount": 27,
        "expediterLevelCount": 1,
        "stationCount": 3,
        "salesCategoryCount": 2,
        "timeBucketCount": 5,
        "thirtyMinuteBucketCount": 5
      },
      "expediterTicketAverages": [
        {
          "fulfillmentLevel": 1,
          "stationName": "Expo",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 27,
          "averageTicketTimeMinutes": 12.71,
          "ticketCount": 27,
          "rowCount": 63,
          "minTicketTimeMinutes": 5,
          "maxTicketTimeMinutes": 19.3
        }
      ],
      "stationTicketAverages": [
        {
          "stationGuid": "PREP_STATION_GUID",
          "stationName": "Grill",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 10,
          "averageTicketTimeMinutes": 10.11,
          "ticketCount": 10,
          "rowCount": 20,
          "minTicketTimeMinutes": 4,
          "maxTicketTimeMinutes": 16.6
        }
      ],
      "salesCategoryTicketAverages": [
        {
          "salesCategory": "FOOD",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 32,
          "averageTicketTimeMinutes": 10.94,
          "ticketCount": 32,
          "rowCount": 74,
          "minTicketTimeMinutes": 3.8,
          "maxTicketTimeMinutes": 18.7
        }
      ],
      "timeBuckets": [
        {
          "bucketStartMs": 1753545600000,
          "bucketEndMs": 1753546500000,
          "bucketStartIso": "ISO_TIMESTAMP",
          "bucketEndIso": "ISO_TIMESTAMP",
          "bucketLabel": "11:00 AM - 11:15 AM",
          "averageBasis": "ticket_count",
          "averageDivisorField": "ticketCount",
          "averageDivisorValue": 7,
          "averageTicketTimeMinutes": 10.3,
          "ticketCount": 7,
          "rowCount": 16,
          "minTicketTimeMinutes": 4.2,
          "maxTicketTimeMinutes": 15.9,
          "stationTicketAverages": [
            {
              "stationGuid": "PREP_STATION_GUID",
              "stationName": "Grill",
              "averageBasis": "ticket_count",
              "averageDivisorField": "ticketCount",
              "averageDivisorValue": 3,
              "averageTicketTimeMinutes": 9.92,
              "ticketCount": 3,
              "rowCount": 6,
              "minTicketTimeMinutes": 4.4,
              "maxTicketTimeMinutes": 13.8
            }
          ],
          "expediterTicketAverages": [
            {
              "fulfillmentLevel": 1,
              "stationName": "Expo",
              "averageBasis": "ticket_count",
              "averageDivisorField": "ticketCount",
              "averageDivisorValue": 6,
              "averageTicketTimeMinutes": 11.9,
              "ticketCount": 6,
              "rowCount": 14,
              "minTicketTimeMinutes": 4.8,
              "maxTicketTimeMinutes": 16.1
            }
          ],
          "salesCategoryTicketAverages": [
            {
              "salesCategory": "FOOD",
              "averageBasis": "ticket_count",
              "averageDivisorField": "ticketCount",
              "averageDivisorValue": 7,
              "averageTicketTimeMinutes": 10.3,
              "ticketCount": 7,
              "rowCount": 16,
              "minTicketTimeMinutes": 4.2,
              "maxTicketTimeMinutes": 15.9
            }
          ]
        }
      ],
      "bucketIntervalMinutes": 15,
      "status": {
        "state": "ok",
        "httpStatus": 200,
        "error": "ERROR_STRING_IF_PRESENT"
      },
      "retentionDays": 366
    },
    "endpoints": {
      "current": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/shiftq/kitchen",
      "byBusinessDate": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/shiftq/kitchen?businessDate=YYYYMMDD"
    }
  }
}

Compatibility note: live ShiftQ kitchen responses also return thirtyMinuteBuckets as a legacy alias of timeBuckets while existing consumers migrate to the 15-minute bucket contract. Historical reads accept both businessDate=YYYYMMDD and businessDay=YYYYMMDD, using the local 4:01 AM through 4:00 AM business day. avgExpoClearMinutes is always included in kitchen metadata and bucket records; it returns null when no cleared expo tickets were recorded for that business day.

Kitchen averages are ticket-based. Use averages.avgKitchenTicketTimeDivisorValue with counts.prepTicketCount for the prep average, averages.avgExpediterTicketTimeDivisorValue with counts.expediterTicketCount for the Expo average, and each nested station, sales-category, bucket, and expediter average uses that row's own ticketCount. rowCount is raw Toast item-fulfillment volume, not the averaging divisor.

shiftq:read

ShiftQ Reservations Example

{
  "ok": true,
  "version": "v1",
  "resource": "shiftq/reservations",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "RESERVATION_REFRESH_DESCRIPTION"
    },
    "source": "pos_reservations_digest",
    "reservations": {
      "venueLabel": "VENUE_LABEL",
      "asOf": "ISO_TIMESTAMP",
      "asOfLabel": "DISPLAY_LABEL",
      "dayCount": "NUMBER",
      "totalParties": "NUMBER",
      "totalCovers": "NUMBER",
      "days": [
        {
          "dayKey": "YYYY-MM-DD",
          "label": "DAY_LABEL",
          "parties": "NUMBER",
          "covers": "NUMBER",
          "items": [
            {
              "id": "RESERVATION_ID",
              "displayTime": "TIME_LABEL",
              "guestName": "GUEST_NAME",
              "partySize": "NUMBER",
              "notes": "NOTES_STRING"
            }
          ]
        }
      ]
    }
  }
}
shiftq:read

POS Reservations Alias Example

{
  "ok": true,
  "version": "v1",
  "resource": "shiftq/toastReservations",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "RESERVATION_REFRESH_DESCRIPTION"
    },
    "source": "pos_reservations_digest",
    "reservations": {
      "venueLabel": "VENUE_LABEL",
      "asOf": "ISO_TIMESTAMP",
      "dayCount": "NUMBER",
      "totalParties": "NUMBER",
      "totalCovers": "NUMBER",
      "days": ["DAY_ROW_OBJECT"]
    }
  }
}
shiftq:read

ShiftQ Group Leaderboard Example

{
  "ok": true,
  "version": "v1",
  "resource": "shiftq/group-leaderboard",
  "groupId": "GROUP_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "groupId": "GROUP_ID",
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "GROUP_LEADERBOARD_REFRESH_DESCRIPTION"
    },
    "updatedAt": "ISO_TIMESTAMP",
    "count": "NUMBER",
    "leaderboard": {
      "byNetSales": [
        {
          "locationId": "LOCATION_ID",
          "locationName": "LOCATION_NAME",
          "locationShortName": "LOCATION_SHORT_NAME",
          "netSales": "NUMBER",
          "discountsPercent": "NUMBER",
          "laborPercent": "NUMBER",
          "voidsPercent": "NUMBER"
        }
      ],
      "byLowestLaborPercent": ["SAME_ROW_STRUCTURE"],
      "byLowestDiscountsPercent": ["SAME_ROW_STRUCTURE"],
      "byLowestVoidsPercent": ["SAME_ROW_STRUCTURE"]
    },
    "locationEndpoints": [
      {
        "id": "LOCATION_ID",
        "name": "LOCATION_NAME",
        "shiftq": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/shiftq",
        "sales": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/shiftq/sales"
      }
    ]
  }
}
shiftq:read

ShiftQ POS Menu Example

{
  "ok": true,
  "version": "v1",
  "resource": "shiftq/pos-menu",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "POS_MENU_REFRESH_DESCRIPTION"
    },
    "syncStatus": {
      "lastStatus": "STATUS_STRING",
      "lastCheckedAt": "ISO_TIMESTAMP",
      "lastSyncedAt": "ISO_TIMESTAMP",
      "fullMenuRewrite": "POLICY_STRING",
      "incrementalBaseUpdates": "POLICY_STRING",
      "stockOverlayRefresh": "CADENCE_STRING"
    },
    "menuMetadata": {
      "restaurantGuid": "POS_RESTAURANT_GUID",
      "lastUpdated": "ISO_TIMESTAMP"
    },
    "menuSnapshot": {
      "lastUpdated": "ISO_TIMESTAMP",
      "lastSynced": "ISO_TIMESTAMP"
    },
    "soldOutItems": {
      "count": "NUMBER",
      "items": [
        { "key": "LOCATION_ID:INDEX:ITEM_NAME", "name": "ITEM_NAME" }
      ]
    }
  }
}
sportsq:read

SportsQ Example

{
  "ok": true,
  "version": "v1",
  "resource": "sportsq",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "effectiveDate": "YYYY-MM-DD",
    "refresh": {
      "cadence": "CADENCE_STRING"
    },
    "guide": [
      {
        "eventId": "EVENT_ID",
        "title": "EVENT_TITLE",
        "league": "LEAGUE_NAME",
        "homeTeam": "HOME_TEAM_NAME",
        "awayTeam": "AWAY_TEAM_NAME"
      }
    ]
  }
}
matriq:read

MatriQ Overview Example

{
  "ok": true,
  "version": "v1",
  "resource": "matriq",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "gateway": { "cadence": "CADENCE_STRING" },
      "devices": { "cadence": "CADENCE_STRING" },
      "providerAvailable": { "cadence": "CADENCE_STRING", "description": "PROVIDER_REFRESH_DESCRIPTION" },
      "aiScheduler": { "cadence": "CADENCE_STRING", "description": "AI_SCHEDULER_REFRESH_DESCRIPTION" }
    },
    "summary": {
      "deviceIds": ["DEVICE_ID"],
      "providerCount": "NUMBER",
      "artifactCount": "NUMBER",
      "latestProviderArtifactUpdatedAt": "ISO_TIMESTAMP",
      "aiSchedulerPublished": "BOOLEAN",
      "aiSchedulerRunning": "BOOLEAN"
    }
  }
}
matriq:read

Provider Availability Example

{
  "ok": true,
  "version": "v1",
  "resource": "providerAvailable",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "deviceIds": ["DEVICE_ID"],
    "businessDate": {
      "active": "YYYYMMDD",
      "calendarDate": "YYYY-MM-DD",
      "timezone": "IANA_TIMEZONE"
    },
    "providers": [
      {
        "providerKey": "PROVIDER_KEY",
        "providerLabel": "PROVIDER_LABEL",
        "providerLogo": "PROVIDER_LOGO_URL"
      }
    ],
    "artifacts": [
      {
        "source": "ARTIFACT_SOURCE",
        "deviceId": "DEVICE_ID",
        "path": "BUCKET_PATH/provider-available-YYYY-MM-DD.json",
        "updatedAt": "ISO_TIMESTAMP"
      }
    ],
    "providersAvailable": [
      {
        "eventId": "EVENT_ID",
        "title": "EVENT_TITLE",
        "league": "LEAGUE_NAME",
        "leagueLogo": "LEAGUE_LOGO_URL",
        "homeTeam": "HOME_TEAM_NAME",
        "awayTeam": "AWAY_TEAM_NAME",
        "homeLogo": "HOME_TEAM_LOGO_URL",
        "awayLogo": "AWAY_TEAM_LOGO_URL",
        "providerLabel": "PROVIDER_LABEL",
        "providerLogo": "PROVIDER_LOGO_URL",
        "channelNumber": "CHANNEL_NUMBER"
      }
    ]
  }
}
matriq:read

Auto Scheduler Example

{
  "ok": true,
  "version": "v1",
  "resource": "matriq/aiScheduler",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "AI_SCHEDULER_REFRESH_DESCRIPTION"
    },
    "deviceIds": ["DEVICE_ID"],
    "businessDay": "YYYYMMDD",
    "statusUpdatedAt": "ISO_TIMESTAMP",
    "publishedDraftUpdatedAt": "ISO_TIMESTAMP",
    "status": {
      "running": "BOOLEAN",
      "published": "BOOLEAN",
      "draftExists": "BOOLEAN",
      "runtime": {
        "emergencyStopActive": "BOOLEAN",
        "lastStartAt": "ISO_TIMESTAMP_OR_NULL",
        "lastStopAt": "ISO_TIMESTAMP_OR_NULL"
      }
    },
    "currentPublishedDraft": {
      "businessDay": "YYYYMMDD",
      "published": "BOOLEAN",
      "status": "STATUS_STRING",
      "draft": {
        "title": "DRAFT_TITLE",
        "items": [
          { "id": "SCHEDULE_ITEM_ID", "start": "HH:MM", "end": "HH:MM", "eventTitle": "EVENT_TITLE" }
        ]
      }
    },
    "actions": [
      {
        "label": "Emergency Stop Auto Scheduler",
        "method": "POST",
        "endpoint": "https://api.smartq.tv/v1/GROUP_ID/LOCATION_ID/matriq/aiScheduler/emergency-stop",
        "scope": "matriq:ai-scheduler:stop",
        "description": "ACTION_DESCRIPTION"
      }
    ]
  }
}
matriq:ai-scheduler:stop

Emergency Stop Example

{
  "ok": true,
  "version": "v1",
  "resource": "matriq/aiScheduler/emergency-stop",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "status": "queued_or_applied_or_failed",
    "deviceId": "DEVICE_ID",
    "commandId": "COMMAND_ID",
    "requestedAt": "ISO_TIMESTAMP",
    "reason": "REASON_STRING",
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "AI_SCHEDULER_REFRESH_DESCRIPTION"
    }
  }
}
campaigns:read

Campaigns Example

{
  "ok": true,
  "version": "v1",
  "resource": "campaigns",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "CAMPAIGN_REFRESH_DESCRIPTION"
    },
    "campaigns": [
      {
        "id": "CAMPAIGN_ID",
        "name": "CAMPAIGN_NAME",
        "status": "STATUS_STRING",
        "startsAt": "ISO_TIMESTAMP",
        "endsAt": "ISO_TIMESTAMP"
      }
    ],
    "deviceStatus": {
      "healthy": "NUMBER",
      "warning": "NUMBER",
      "offline": "NUMBER"
    }
  }
}
orderboard:read

OrderBoard Example

{
  "ok": true,
  "version": "v1",
  "resource": "orderboard",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "ORDERBOARD_REFRESH_DESCRIPTION"
    },
    "status": "coming_soon",
    "message": "ORDERBOARD_STATUS_MESSAGE"
  }
}
bevq:read

BevQ Example

{
  "ok": true,
  "version": "v1",
  "resource": "bevq",
  "groupId": "GROUP_ID",
  "locationId": "LOCATION_ID",
  "generatedAt": "ISO_TIMESTAMP",
  "data": {
    "location": {
      "id": "LOCATION_ID",
      "name": "LOCATION_NAME",
      "timezone": "IANA_TIMEZONE"
    },
    "refresh": {
      "cadence": "CADENCE_STRING",
      "description": "BEVQ_REFRESH_DESCRIPTION"
    },
    "status": "coming_soon",
    "message": "BEVQ_STATUS_MESSAGE"
  }
}