Fivexer Workers API

The workers API from Fivexer — 21 operation(s) for workers.

Operations 27

GET /portal/photos/{file} A worker profile photo (no authentication; the URL is the credential) #
GET /v1/workers/approvals People waiting for approval to join, oldest first #
POST /v1/workers/approvals Approve or reject people waiting to join, many at once #
POST /v1/workers Create or update a worker #
GET /v1/workers List worker ids #
GET /v1/workers/{id} Worker detail: routing profile, availability, load #
PATCH /v1/workers/{id} Update a worker in place (partial) #
DELETE /v1/workers/{id} Remove (offboard) a worker #
POST /v1/workers/{id}/availability Pause or resume a worker (backlog preserved unless releaseBacklog) #
GET /v1/workers/{id}/queue A worker's current task queue #
GET /v1/workers/{id}/metrics Worked time, breaks and throughput for one worker #
GET /v1/workers/{id}/task-time What one worker spent time on, measured from task transitions #
GET /v1/workers/{id}/time/day One worker's day as a timeline #
GET /v1/workers/{id}/time-entries The shift and break log for one worker over a window #
POST /v1/workers/{id}/time-entries Record a shift that was worked but never logged #
PATCH /v1/workers/{id}/time-entries/{entryId} Correct one recorded shift or break, keeping what it said before #
PATCH /v1/workers/{id}/time-entries/{entryId}/metadata Add a description or task link to a recorded shift or break #
PUT /v1/workers/{id}/time-entries/{entryId}/roles State the roles a recorded shift was worked in #
POST /v1/workers/{id}/role Change the role a worker on shift is doing #
GET /v1/workers/{id}/time-corrections Changes made to one worker's time records #
GET /v1/workers/{id}/offboarding Preview what removing a worker hands back and frees #
PUT /v1/workers/{id}/links/{connector} Link a worker to their user in a connected system #
DELETE /v1/workers/{id}/links/{connector} Remove a worker’s link to a connected system #
DELETE /v1/workers/{id}/photo Remove a worker’s profile photo #
GET /v1/workers/leave-settlements List removed workers whose leave is not yet settled #
POST /v1/workers/{id}/settle-leave Settle a removed worker’s leave #

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/5xer-com:5xer-com-workers-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

5xer-com-workers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fivexer Platform Workers API
  description: 'Routing-as-a-service: create workers and tasks, the platform matches continuously. `/v1` authenticates with a workspace API key (`Authorization: Bearer sk_...`); `/console` with a session token from `/auth`; `/admin` with the operator token.'
  version: 0.1.0
servers:
- url: https://5xer.com
  description: This deployment
tags:
- name: Workers
paths:
  /portal/photos/{file}:
    get:
      summary: A worker profile photo (no authentication; the URL is the credential)
      tags:
      - Workers
      parameters:
      - schema:
          type: string
          pattern: ^wph_[A-Za-z0-9_-]{12}\.jpg$
        in: path
        name: file
        required: true
      security: []
      responses:
        '200':
          description: Default Response
      operationId: getPortalPhotosByFile
      x-operation-id-source: derived
  /v1/workers/approvals:
    get:
      summary: People waiting for approval to join, oldest first
      tags:
      - Workers
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersApprovals
      x-operation-id-source: derived
    post:
      summary: Approve or reject people waiting to join, many at once
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - workerIds
              - decision
              properties:
                workerIds:
                  type: array
                  minItems: 1
                  maxItems: 200
                  uniqueItems: true
                  items:
                    type: string
                    minLength: 1
                    maxLength: 128
                decision:
                  type: string
                  enum:
                  - approve
                  - reject
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: postV1WorkersApprovals
      x-operation-id-source: derived
  /v1/workers:
    post:
      summary: Create or update a worker
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                id:
                  type: string
                  maxLength: 128
                tags:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 64
                  maxItems: 64
                routingWeights:
                  type: object
                  additionalProperties:
                    type: number
                    minimum: 0
                  maxProperties: 128
                skills:
                  type: array
                  maxItems: 128
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - skillId
                    - level
                    properties:
                      skillId:
                        type: string
                        maxLength: 64
                      level:
                        type: number
                        minimum: 1
                        maximum: 5
                      weightOverride:
                        type: number
                        minimum: 0
                        maximum: 100
                      validFrom:
                        type:
                        - string
                        - 'null'
                        pattern: ^\d{4}-\d{2}-\d{2}$
                      validUntil:
                        type:
                        - string
                        - 'null'
                        pattern: ^\d{4}-\d{2}-\d{2}$
                teamIds:
                  type: array
                  items:
                    type: string
                    maxLength: 64
                  maxItems: 32
                ip:
                  type: string
                  maxLength: 45
                latitude:
                  type: number
                  minimum: -90
                  maximum: 90
                longitude:
                  type: number
                  minimum: -180
                  maximum: 180
                maxTravelDistanceKm:
                  type: number
                  minimum: 0
                maxBacklogSize:
                  type: number
                  minimum: 0
                available:
                  type: boolean
                locale:
                  type:
                  - string
                  - 'null'
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: postV1Workers
      x-operation-id-source: derived
    get:
      summary: List worker ids
      tags:
      - Workers
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1Workers
      x-operation-id-source: derived
  /v1/workers/{id}:
    get:
      summary: 'Worker detail: routing profile, availability, load'
      tags:
      - Workers
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersById
      x-operation-id-source: derived
    patch:
      summary: Update a worker in place (partial)
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                tags:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 64
                  maxItems: 64
                routingWeights:
                  type: object
                  additionalProperties:
                    type: number
                    minimum: 0
                  maxProperties: 128
                skills:
                  type: array
                  maxItems: 128
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - skillId
                    - level
                    properties:
                      skillId:
                        type: string
                        maxLength: 64
                      level:
                        type: number
                        minimum: 1
                        maximum: 5
                      weightOverride:
                        type: number
                        minimum: 0
                        maximum: 100
                      validFrom:
                        type:
                        - string
                        - 'null'
                        pattern: ^\d{4}-\d{2}-\d{2}$
                      validUntil:
                        type:
                        - string
                        - 'null'
                        pattern: ^\d{4}-\d{2}-\d{2}$
                teamIds:
                  type: array
                  items:
                    type: string
                    maxLength: 64
                  maxItems: 32
                ip:
                  type: string
                  maxLength: 45
                latitude:
                  type: number
                  minimum: -90
                  maximum: 90
                longitude:
                  type: number
                  minimum: -180
                  maximum: 180
                maxTravelDistanceKm:
                  type: number
                  minimum: 0
                maxBacklogSize:
                  type: number
                  minimum: 0
                available:
                  type: boolean
                locale:
                  type:
                  - string
                  - 'null'
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: patchV1WorkersById
      x-operation-id-source: derived
    delete:
      summary: Remove (offboard) a worker
      tags:
      - Workers
      parameters:
      - schema:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        in: query
        name: lastDay
        required: false
      - schema:
          type: string
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: deleteV1WorkersById
      x-operation-id-source: derived
  /v1/workers/{id}/availability:
    post:
      summary: Pause or resume a worker (backlog preserved unless releaseBacklog)
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - available
              properties:
                available:
                  type: boolean
                releaseBacklog:
                  type: boolean
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: postV1WorkersByIdAvailability
      x-operation-id-source: derived
  /v1/workers/{id}/queue:
    get:
      summary: A worker's current task queue
      tags:
      - Workers
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersByIdQueue
      x-operation-id-source: derived
  /v1/workers/{id}/metrics:
    get:
      summary: Worked time, breaks and throughput for one worker
      tags:
      - Workers
      parameters:
      - schema:
          type: string
          default: 7d
        in: query
        name: window
        required: false
      - schema:
          type: string
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersByIdMetrics
      x-operation-id-source: derived
  /v1/workers/{id}/task-time:
    get:
      summary: What one worker spent time on, measured from task transitions
      tags:
      - Workers
      parameters:
      - schema:
          type: string
        in: query
        name: from
        required: false
      - schema:
          type: string
        in: query
        name: to
        required: false
      - schema:
          type: string
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersByIdTaskTime
      x-operation-id-source: derived
  /v1/workers/{id}/time/day:
    get:
      summary: One worker's day as a timeline
      tags:
      - Workers
      parameters:
      - schema:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        in: query
        name: date
        required: false
      - schema:
          type: string
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersByIdTimeDay
      x-operation-id-source: derived
  /v1/workers/{id}/time-entries:
    get:
      summary: The shift and break log for one worker over a window
      tags:
      - Workers
      parameters:
      - schema:
          type: string
        in: query
        name: from
        required: false
      - schema:
          type: string
        in: query
        name: to
        required: false
      - schema:
          type: string
          enum:
          - json
          - csv
        in: query
        name: format
        required: false
      - schema:
          type: string
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersByIdTimeEntries
      x-operation-id-source: derived
    post:
      summary: Record a shift that was worked but never logged
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - startedAt
              - endedAt
              - note
              properties:
                startedAt:
                  type: string
                  format: date-time
                endedAt:
                  type: string
                  format: date-time
                note:
                  type: string
                  minLength: 3
                  maxLength: 500
                breaks:
                  type: array
                  maxItems: 24
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - startedAt
                    - endedAt
                    properties:
                      startedAt:
                        type: string
                        format: date-time
                      endedAt:
                        type: string
                        format: date-time
                description:
                  type:
                  - string
                  - 'null'
                  maxLength: 1000
                taskId:
                  type:
                  - string
                  - 'null'
                  maxLength: 200
                roles:
                  type: array
                  maxItems: 50
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - positionId
                    - startedAt
                    - endedAt
                    properties:
                      positionId:
                        type:
                        - string
                        - 'null'
                        maxLength: 64
                      startedAt:
                        type: string
                        format: date-time
                      endedAt:
                        type:
                        - string
                        - 'null'
                        format: date-time
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: postV1WorkersByIdTimeEntries
      x-operation-id-source: derived
  /v1/workers/{id}/time-entries/{entryId}:
    patch:
      summary: Correct one recorded shift or break, keeping what it said before
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - note
              properties:
                startedAt:
                  type: string
                  format: date-time
                endedAt:
                  type:
                  - string
                  - 'null'
                  format: date-time
                note:
                  type: string
                  minLength: 3
                  maxLength: 500
                type:
                  type: string
                  enum:
                  - shift
                  - break
                breaks:
                  type: array
                  maxItems: 24
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - startedAt
                    - endedAt
                    properties:
                      id:
                        type: string
                        maxLength: 64
                      startedAt:
                        type: string
                        format: date-time
                      endedAt:
                        type:
                        - string
                        - 'null'
                        format: date-time
                description:
                  type:
                  - string
                  - 'null'
                  maxLength: 1000
                taskId:
                  type:
                  - string
                  - 'null'
                  maxLength: 200
                roles:
                  type: array
                  maxItems: 50
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - positionId
                    - startedAt
                    - endedAt
                    properties:
                      positionId:
                        type:
                        - string
                        - 'null'
                        maxLength: 64
                      startedAt:
                        type: string
                        format: date-time
                      endedAt:
                        type:
                        - string
                        - 'null'
                        format: date-time
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      - schema:
          type: string
        in: path
        name: entryId
        required: true
      responses:
        '200':
          description: Default Response
      operationId: patchV1WorkersByIdTimeEntriesByEntryId
      x-operation-id-source: derived
  /v1/workers/{id}/time-entries/{entryId}/metadata:
    patch:
      summary: Add a description or task link to a recorded shift or break
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - type
              properties:
                type:
                  type: string
                  enum:
                  - shift
                  - break
                description:
                  type:
                  - string
                  - 'null'
                  maxLength: 1000
                taskId:
                  type:
                  - string
                  - 'null'
                  maxLength: 200
              anyOf:
              - required:
                - description
              - required:
                - taskId
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      - schema:
          type: string
        in: path
        name: entryId
        required: true
      responses:
        '200':
          description: Default Response
      operationId: patchV1WorkersByIdTimeEntriesByEntryIdMetadata
      x-operation-id-source: derived
  /v1/workers/{id}/time-entries/{entryId}/roles:
    put:
      summary: State the roles a recorded shift was worked in
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - roles
              - note
              properties:
                roles:
                  type: array
                  maxItems: 50
                  items:
                    type: object
                    additionalProperties: false
                    required:
                    - positionId
                    - startedAt
                    - endedAt
                    properties:
                      positionId:
                        type:
                        - string
                        - 'null'
                        maxLength: 64
                      startedAt:
                        type: string
                        format: date-time
                      endedAt:
                        type:
                        - string
                        - 'null'
                        format: date-time
                note:
                  type: string
                  minLength: 3
                  maxLength: 500
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      - schema:
          type: string
        in: path
        name: entryId
        required: true
      responses:
        '200':
          description: Default Response
      operationId: putV1WorkersByIdTimeEntriesByEntryIdRoles
      x-operation-id-source: derived
  /v1/workers/{id}/role:
    post:
      summary: Change the role a worker on shift is doing
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - positionId
              properties:
                positionId:
                  type:
                  - string
                  - 'null'
                  maxLength: 64
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: postV1WorkersByIdRole
      x-operation-id-source: derived
  /v1/workers/{id}/time-corrections:
    get:
      summary: Changes made to one worker's time records
      tags:
      - Workers
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersByIdTimeCorrections
      x-operation-id-source: derived
  /v1/workers/{id}/offboarding:
    get:
      summary: Preview what removing a worker hands back and frees
      tags:
      - Workers
      parameters:
      - schema:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        in: query
        name: lastDay
        required: false
      - schema:
          type: string
        in: path
        name: id
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersByIdOffboarding
      x-operation-id-source: derived
  /v1/workers/links:
    get:
      summary: List worker ↔ connector user links
      tags:
      - Workers
      parameters:
      - schema:
          type: string
          pattern: ^[a-z0-9][a-z0-9-]{0,63}$
        in: query
        name: connector
        required: false
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersLinks
      x-operation-id-source: derived
  /v1/workers/{id}/links/{connector}:
    put:
      summary: Link a worker to their user in a connected system
      tags:
      - Workers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - vendorUserId
              properties:
                vendorUserId:
                  type: string
                  minLength: 1
                  maxLength: 256
                tags:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 64
                  maxItems: 64
      parameters:
      - schema:
          type: string
          maxLength: 128
        in: path
        name: id
        required: true
      - schema:
          type: string
          pattern: ^[a-z0-9][a-z0-9-]{0,63}$
        in: path
        name: connector
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: putV1WorkersByIdLinksByConnector
      x-operation-id-source: derived
    delete:
      summary: Remove a worker’s link to a connected system
      tags:
      - Workers
      parameters:
      - schema:
          type: string
          maxLength: 128
        in: path
        name: id
        required: true
      - schema:
          type: string
          pattern: ^[a-z0-9][a-z0-9-]{0,63}$
        in: path
        name: connector
        required: true
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: deleteV1WorkersByIdLinksByConnector
      x-operation-id-source: derived
  /v1/workers/{id}/photo:
    delete:
      summary: Remove a worker’s profile photo
      tags:
      - Workers
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: deleteV1WorkersByIdPhoto
      x-operation-id-source: derived
  /v1/workers/leave-settlements:
    get:
      summary: List removed workers whose leave is not yet settled
      tags:
      - Workers
      security:
      - apiKey: []
      responses:
        '200':
          description: Default Response
      operationId: getV1WorkersLeaveSettlements
      x-operation-id-source: derived
  /v1/workers/{id}/settle-leave:
    post:
      summary: Settle a removed worker’s leave
      tags:
      - Workers
      security:
      - apiKey: []
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
      operationId: postV1WorkersByIdSettleLeave
      x-operation-id-source: derived
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: Workspace API key (sk_test_/sk_live_)
    session:
      type: http
      scheme: bearer
      description: Console session token (st_...)
    adminToken:
      type: http
      scheme: bearer
      description: Operator ADMIN_TOKEN
    workerToken:
      type: http
      scheme: bearer
      description: Worker session token (wt_...)
    supervisorToken:
      type: http
      scheme: bearer
      description: Supervisor session token (sv_...), scoped to one workspace and optionally one team