> ## Documentation Index > Fetch the complete documentation index at: https://docs.restaurant365.com/llms.txt > Use this file to discover all available pages before exploring further. # /public/labor/v1/sales-analytics > Retrieves labor sales analytics for a location within a date range ## OpenAPI ````json GET /public/labor/v1/sales-analytics { "openapi": "3.0.1", "info": { "title": "R365.PublicApi", "contact": { "name": "R365 Services Team", "email": "r365@restaurant365.com" }, "version": "1.0" }, "security": [ { "Bearer": [] } ], "paths": { "/public/labor/v1/sales-analytics": { "get": { "tags": [ "netcore" ], "description": "Retrieves labor sales analytics for a location within a date range", "parameters": [ { "name": "locationId", "in": "query", "description": "Identifier of the location to get forecast data", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "startDate", "in": "query", "description": "Start date to get forecast data", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "endDate", "in": "query", "description": "End date to get forecast data", "required": true, "schema": { "type": "string", "format": "date" } } ], "responses": { "200": { "description": "Published forecast sales", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/R365.Netcore.Public.Contracts.Forecast.Models.LocationLaborAnalyticsResponse" } }, "application/json": { "schema": { "$ref": "#/components/schemas/R365.Netcore.Public.Contracts.Forecast.Models.LocationLaborAnalyticsResponse" } }, "text/json": { "schema": { "$ref": "#/components/schemas/R365.Netcore.Public.Contracts.Forecast.Models.LocationLaborAnalyticsResponse" } } } } } } } }, "components": { "schemas": { "R365.Netcore.Public.Contracts.Forecast.Models.LocationLaborAnalyticsResponse": { "type": "object", "properties": { "locationId": { "type": "string", "format": "uuid" }, "locationName": { "type": "string", "nullable": true }, "DailyData": { "type": "array", "items": { "$ref": "#/components/schemas/R365.Netcore.Public.Contracts.Forecast.Models.DateIntervals" }, "nullable": true } } }, "R365.Netcore.Public.Contracts.Forecast.Models.DateIntervals": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time" }, "name": { "type": "string", "nullable": true, "description": "Display name of the date intervals." }, "Intervals": { "type": "array", "items": { "$ref": "#/components/schemas/R365.Netcore.Public.Contracts.Forecast.Models.Interval" }, "nullable": true } } }, "R365.Netcore.Public.Contracts.Forecast.Models.Interval": { "type": "object", "properties": { "startDateTime": { "type": "string", "format": "date-time" }, "publishedAt": { "type": "string", "format": "date-time", "nullable": true }, "publishedByName": { "type": "string", "nullable": true }, "ForecastedNetSales": { "type": "number", "format": "double" }, "ForecastedGrossSales": { "type": "number", "format": "double" }, "ForecastedEntree": { "type": "number", "format": "double" }, "ForecastedLabor": { "type": "number", "format": "double" }, "ActualNetSales": { "type": "number", "format": "double" }, "ActualGrossSales": { "type": "number", "format": "double" }, "ActualLabor": { "type": "number", "format": "double" }, "ActualLaborOTHours": { "type": "number", "format": "double" }, "ActualLaborDollars": { "type": "number", "format": "double" }, "OptimalLaborVariance": { "type": "number", "format": "double" }, "OptimalLabor": { "type": "number", "format": "double" }, "JobDetails": { "type": "array", "items": { "$ref": "#/components/schemas/R365.Netcore.Public.Contracts.Forecast.Models.JobDetail" }, "nullable": true } } }, "R365.Netcore.Public.Contracts.Forecast.Models.JobDetail": { "type": "object", "properties": { "jobId": { "type": "string", "format": "uuid" }, "jobName": { "type": "string", "nullable": true }, "LaborForecast": { "type": "number", "format": "double" }, "ActualLabor": { "type": "number", "format": "double" }, "ActualLaborOTHours": { "type": "number", "format": "double" }, "ActualLaborDollars": { "type": "number", "format": "double" } } } }, "securitySchemes": { "Bearer": { "type": "http", "description": "Put **_ONLY_** your JWT Bearer token on textbox below!", "scheme": "Bearer", "bearerFormat": "JWT" } } } } ````