openapi: 3.0.3
info:
title: Workiz Jobs Time Off API
description: 'The Workiz REST API lets home-service businesses read and write their field service data - jobs, leads, team members, time off, and payments - and receive outbound webhooks for new jobs and new leads. Workiz is field service management (FSM) software covering scheduling and dispatch, CRM, estimates and invoicing, payments, and communications.
All calls are made to https://api.workiz.com/api/v1/ with the account API token embedded directly in the request path (https://api.workiz.com/api/v1/{api_token}/...). To obtain credentials, enable the Developer API add-on from the Workiz Feature Center / Marketplace and copy the API token (and secret) from Settings > Integrations. Responses are JSON, and HTTP status codes signal errors.
Endpoint coverage is marked per operation with `x-endpoint-status`: `confirmed` operations are grounded in Workiz''s public developer docs and the community PHP/Python SDKs; `modeled` operations (some Lead writes, the Payments detail, and the webhook payloads) reflect capabilities exposed through Workiz''s UI and integration partners (Make, Pipedream) whose exact request/response shapes are gated behind the authenticated developer portal and are represented here as a best-effort model.'
version: '1.0'
contact:
name: Workiz
url: https://developer.workiz.com/
servers:
- url: https://api.workiz.com/api/v1/{api_token}
description: Workiz REST API. The account API token is part of the base path.
variables:
api_token:
default: YOUR_API_TOKEN
description: The account API token from the Workiz Developer API add-on (Settings > Integrations). It is placed directly in the URL path; there is no Authorization header. A paired API secret is issued for signed requests where required.
tags:
- name: Time Off
description: Technician time-off records that affect availability.
paths:
/timeoff/get/:
get:
operationId: listTimeOff
tags:
- Time Off
summary: List time off
description: Returns time-off records for the account.
x-endpoint-status: confirmed
responses:
'200':
description: A list of time-off records.
content:
application/json:
schema:
$ref: '#/components/schemas/TimeOffListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/timeoff/get/{USER_NAME}/:
parameters:
- name: USER_NAME
in: path
required: true
description: The user name whose time off to retrieve.
schema:
type: string
get:
operationId: getUserTimeOff
tags:
- Time Off
summary: Get time off for a user
description: Returns the time-off records for a specific user by name.
x-endpoint-status: confirmed
responses:
'200':
description: The user's time-off records.
content:
application/json:
schema:
$ref: '#/components/schemas/TimeOffListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
Unauthorized:
description: Missing or invalid API token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
TimeOff:
type: object
properties:
id:
type: string
user:
type: string
startDate:
type: string
format: date-time
endDate:
type: string
format: date-time
reason:
type: string
TimeOffListResponse:
type: object
properties:
flag:
type: boolean
data:
type: array
items:
$ref: '#/components/schemas/TimeOff'
Error:
type: object
properties:
flag:
type: boolean
description: Workiz success flag; false on error.
code:
type: integer
data:
type: string
description: Human-readable error message.