Harri Franchisee EmployeePositions API

The Franchisee EmployeePositions API from Harri — 5 operation(s) for franchisee employeepositions.

Operations 5

GET /api/v3/franchisees/{franchiseeId}/employees/{employeeId}/positions Retrieve employee positions API #
DELETE /api/v2/franchisees/{franchiseeId}/employees/{employeeId}/locations/{locationId}/positions/{positionCode} Delete employee position for fixed and flixable pay type API #
POST /api/v3/franchisees/{franchiseeId}/employees/{employeeId}/locations/{locationId}/positions/{positionCode} Attach position to employee API #
PUT /api/v4/franchisees/{franchiseeId}/employees/{employeeId}/locations/{locationId}/positions/{positionCode} Update position related info API #
POST /api/v2/franchisees/{franchiseeId}/employees/{employeeId}/positions/{positionCode}/set_primary Set employee primary position API #

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/harri-franchisee-employeepositions-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

harri-franchisee-employeepositions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Harri Employee Open Franchisee EmployeePositions API
  description: 'API for managing and retrieving employee data in the Harri system. - Notice: Harri''s API enforces a rate limit of 400 requests per minute. Once you exceed this limit, an HTTP 403 error is returned with a body that informs you that the limit has been exceeded. Please examine the API returns for this error so your software can respond appropriately. After 4 June, 2026, the rate limiting error will change from 403 to 429.'
  termsOfService: https://harri.com/terms
  version: 1.0.0
servers:
- url: https://gateway.harri.com/open-api-hub
tags:
- name: Franchisee EmployeePositions
paths:
  /api/v3/franchisees/{franchiseeId}/employees/{employeeId}/positions:
    get:
      tags:
      - Franchisee EmployeePositions
      summary: Retrieve employee positions API
      description: Retrieve employee positions
      operationId: FranshiseesGetEmployeePositions
      parameters:
      - name: franchiseeId
        in: path
        required: true
        schema:
          type: number
      - name: employeeId
        in: path
        description: employee id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  positions:
                    type: array
                    items:
                      $ref: '#/components/schemas/EmployeePosition'
  /api/v2/franchisees/{franchiseeId}/employees/{employeeId}/locations/{locationId}/positions/{positionCode}:
    delete:
      tags:
      - Franchisee EmployeePositions
      summary: Delete employee position for fixed and flixable pay type API
      description: Delete employee position for fixed flixable pay type
      operationId: FranshiseesDeleteEmployeePosition
      parameters:
      - name: franchiseeId
        in: path
        required: true
        schema:
          type: number
      - name: employeeId
        in: path
        description: employee id
        required: true
        schema:
          type: string
      - name: locationId
        in: path
        description: location id, should be primary location for the employees with fixed pay type
        required: true
        schema:
          type: string
      - name: positionCode
        in: path
        description: position code
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
  /api/v3/franchisees/{franchiseeId}/employees/{employeeId}/locations/{locationId}/positions/{positionCode}:
    post:
      tags:
      - Franchisee EmployeePositions
      summary: Attach position to employee API
      description: Attach positions to an employee
      operationId: FranshiseesAttachEmployeePosition
      parameters:
      - name: franchiseeId
        in: path
        required: true
        schema:
          type: number
      - name: employeeId
        in: path
        description: employee id
        required: true
        schema:
          type: string
      - name: locationId
        in: path
        description: location id, should be primary location for the employees with fixed pay type
        required: true
        schema:
          type: string
      - name: positionCode
        in: path
        description: position code
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                position:
                  type: object
                  properties:
                    is_primary:
                      type: boolean
                      description: Indicates whether this position is the primary role for a user. This value is determined based on the existence of a PRIMARY_POSITION service.
                    pay_type_id:
                      type: integer
                      description: Required if hourly_rate or tipped_status provided upon positoin creation
                    hourly_rate:
                      type: object
                      properties:
                        value:
                          type: number
                        start_date:
                          type: string
                          format: date
                        tronc_point:
                          type: number
                        tronc_rate:
                          type: number
                        tronc_amount:
                          type: number
                      description: this field should be defined only for Hourly employees
                    tipped_status:
                      type: object
                      properties:
                        is_tipped:
                          type: boolean
                        start_date:
                          type: string
                          format: date
                      description: this field should be defined only for Hourly employees
                    cost_centers:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: number
                          value:
                            type: object
                            properties:
                              id:
                                type: number
                            required:
                            - id
                        required:
                        - id
              required:
              - position
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  position:
                    $ref: '#/components/schemas/EmployeePositionRelatedInfo'
  /api/v4/franchisees/{franchiseeId}/employees/{employeeId}/locations/{locationId}/positions/{positionCode}:
    put:
      tags:
      - Franchisee EmployeePositions
      summary: Update position related info API
      description: 'Update position related info - COST CENTERS, this will be used for fixed and flexible hourly employees

        '
      operationId: FranshiseesUpdateEmployeePosition
      parameters:
      - name: franchiseeId
        in: path
        required: true
        schema:
          type: number
      - name: employeeId
        in: path
        description: employee id
        required: true
        schema:
          type: string
      - name: locationId
        in: path
        description: location id, should be the primary location for the employees with fixed pay type
        required: true
        schema:
          type: string
      - name: positionCode
        in: path
        description: position code
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                position:
                  type: object
                  properties:
                    cost_centers:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: number
                          value:
                            type: object
                            properties:
                              id:
                                type: number
                            required:
                            - id
                        required:
                        - id
                  required:
                  - cost_centers
              required:
              - position
      responses:
        '200':
          description: successful operation
  /api/v2/franchisees/{franchiseeId}/employees/{employeeId}/positions/{positionCode}/set_primary:
    post:
      tags:
      - Franchisee EmployeePositions
      summary: Set employee primary position API
      description: Set employee primary position based on the primary location positions
      operationId: FranshiseesSetPrimaryEmployeePosition
      parameters:
      - name: franchiseeId
        in: path
        required: true
        schema:
          type: number
      - name: employeeId
        in: path
        description: employee id
        required: true
        schema:
          type: string
      - name: positionCode
        in: path
        description: position code
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: successful operation
components:
  schemas:
    EmployeePosition:
      allOf:
      - $ref: '#/components/schemas/Position'
      - type: object
        properties:
          id:
            type: number
          location_id:
            type: integer
          is_primary:
            type: boolean
            description: Indicates whether this position is the primary role for a user. This value is determined based on the existence of a PRIMARY_POSITION service.
          cost_centers:
            type: array
            items:
              $ref: '#/components/schemas/CostCenter'
    CostCenter:
      type: object
      properties:
        id:
          type: number
        code:
          type: string
        name:
          type: string
        value:
          type: object
          properties:
            id:
              type: number
            code:
              type: string
            name:
              type: string
    TippedStatus:
      type: object
      properties:
        id:
          type: number
        is_tipped:
          type: boolean
        start_date:
          type: string
          format: date
    HourlyRate:
      type: object
      properties:
        id:
          type: number
        value:
          type: number
        start_date:
          type: string
          format: date
        tronc_point:
          type: number
        tronc_amount:
          type: number
        tronc_rate:
          type: number
    Position:
      type: object
      properties:
        code:
          type: string
        name:
          type: string
        category:
          type: object
          properties:
            id:
              type: number
            code:
              type: string
            name:
              type: string
    EmployeePositionRelatedInfo:
      allOf:
      - $ref: '#/components/schemas/Position'
      - type: object
        properties:
          id:
            type: number
          location_id:
            type: integer
          is_primary:
            type: boolean
            description: Indicates whether this position is the primary role for a user. This value is determined based on the existence of a PRIMARY_POSITION service.
          hourly_rate:
            $ref: '#/components/schemas/HourlyRate'
          tipped_status:
            $ref: '#/components/schemas/TippedStatus'
          cost_centers:
            type: array
            items:
              $ref: '#/components/schemas/CostCenter'
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://oauth.harri.com/oauth2/token
          scopes: {}