Restaurant365 Labor API

Employees, labor detail, payroll, and POS employees

Operations 4

GET /Employee List Employees #
GET /POSEmployee List POS Employees #
GET /LaborDetail List Labor Detail #
GET /PayrollSummary List Payroll Summary #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/restaurant365-labor-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

restaurant365-labor-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Restaurant365 OData Connector Labor API
  description: The Restaurant365 OData connector exposes R365 data to OData-compatible reporting and business-intelligence tools through read-only views for companies, locations, GL accounts, items, employees, labor, transactions, and sales. Authentication uses Domain\Username (the company subdomain and R365 username) with the R365 password. Most views support the standard OData query options $filter, $orderby, $select, $skip, and $top. Sales views (SalesEmployee, SalesDetail, SalesPayment) do not support $select or $count and are limited to a 31-day date range per request.
  version: v2
  contact:
    name: Kin Lane
    email: kin@apievangelist.com
  license:
    name: Proprietary
servers:
- url: https://odata.restaurant365.net/api/v2/views
  description: Restaurant365 OData v2 views endpoint
tags:
- name: Labor
  description: Employees, labor detail, payroll, and POS employees
paths:
  /Employee:
    get:
      operationId: listEmployees
      summary: List Employees
      description: List all employees with basic information.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of employees
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/Employee'
  /POSEmployee:
    get:
      operationId: listPosEmployees
      summary: List POS Employees
      description: Retrieve the data mapping between R365 and POS employee records.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of POS employee mappings
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/POSEmployee'
  /LaborDetail:
    get:
      operationId: listLaborDetail
      summary: List Labor Detail
      description: Retrieve employee punch time details, including clock in and clock out.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of labor detail records
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/LaborDetail'
  /PayrollSummary:
    get:
      operationId: listPayrollSummary
      summary: List Payroll Summary
      description: Retrieve a list of labor records summarized for payroll.
      tags:
      - Labor
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/top'
      responses:
        '200':
          description: A collection of payroll summary records
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/PayrollSummary'
components:
  schemas:
    Employee:
      type: object
      properties:
        employeeId:
          type: string
          format: uuid
        fullName:
          type: string
        firstName:
          type: string
        middleName:
          type: string
        lastName:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state:
          type: string
        zipCode:
          type: string
        email:
          type: string
          format: email
        phoneNumber:
          type: string
        mobilePhone:
          type: string
        allowTextMessaging:
          type: boolean
        birthday:
          type: string
          format: date-time
        birthdayDay:
          type: integer
        birthdayMonth:
          type: integer
        hireDate:
          type: string
          format: date-time
        multipleLocations:
          type: integer
        payrollID:
          type: string
        posid:
          type: string
        employeeLink:
          type: string
          format: uuid
        primaryLocation_id:
          type: string
          format: uuid
        inactive:
          type: boolean
        createdBy:
          type: string
        createdOn:
          type: string
          format: date-time
        modifiedBy:
          type: string
        modifiedOn:
          type: string
          format: date-time
    PayrollSummary:
      type: object
      properties:
        employeeID:
          type: string
          format: uuid
        payrollID:
          type: string
        location:
          type: string
        locationNumber:
          type: string
        jobCode:
          type: string
        payRate:
          type: number
        regularHours:
          type: number
        overtimeHours:
          type: number
        doubleOvertime:
          type: number
        breakPenalty:
          type: number
        grossReceipts:
          type: number
        splitShiftPenalty:
          type: number
        chargeTips:
          type: number
        declaredTips:
          type: number
        percentageOfSales:
          type: number
        percent:
          type: number
        payrollStart:
          type: string
          format: date-time
        payrollEnd:
          type: string
          format: date-time
    LaborDetail:
      type: object
      properties:
        laborId:
          type: string
          format: uuid
        labor:
          type: string
        dateWorked:
          type: string
          format: date-time
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        hours:
          type: number
        payRate:
          type: number
        payrate_Base:
          type: number
        payrollStatus:
          type: integer
        total:
          type: number
        total_Base:
          type: number
        employee_ID:
          type: string
          format: uuid
        r365Employee_ID:
          type: string
          format: uuid
        employeeJobTitle_ID:
          type: string
          format: uuid
        jobTitle_ID:
          type: string
          format: uuid
        location_ID:
          type: string
          format: uuid
        cateringEvent:
          type: string
          format: uuid
        tipDeclaredAmount:
          type: number
        employee:
          type: string
        payrollID:
          type: string
        jobTitle:
          type: string
        location:
          type: string
        dailySalesSummaryId:
          type: string
          format: uuid
        createdBy:
          type: string
        createdOn:
          type: string
          format: date-time
        modifiedBy:
          type: string
        modifiedOn:
          type: string
          format: date-time
    POSEmployee:
      type: object
      properties:
        posEmployeeId:
          type: string
          format: uuid
        fullName:
          type: string
        posid:
          type: string
        location_id:
          type: string
          format: uuid
        employee_id:
          type: string
          format: uuid
        createdBy:
          type: string
        createdOn:
          type: string
          format: date-time
        modifiedBy:
          type: string
        modifiedOn:
          type: string
          format: date-time
  parameters:
    top:
      name: $top
      in: query
      required: false
      description: Maximum number of results to return
      schema:
        type: integer
    filter:
      name: $filter
      in: query
      required: false
      description: Boolean expression used to filter results
      schema:
        type: string
    orderby:
      name: $orderby
      in: query
      required: false
      description: Property to sort by; append desc for descending order
      schema:
        type: string
    skip:
      name: $skip
      in: query
      required: false
      description: Number of results to skip
      schema:
        type: integer
    select:
      name: $select
      in: query
      required: false
      description: Comma-separated list of properties to return
      schema:
        type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Domain\Username with R365 password