When I Work website screenshot

When I Work

When I Work is an employee scheduling and workforce management platform serving over 200,000 workplaces in industries such as restaurants, retail, healthcare, and hospitality. The platform provides a REST API that enables developers and integration partners to manage shifts, schedules, users, time clock records, attendance, and team communication programmatically. API access is restricted to the Premium plan tier, which also includes webhook support and SAML/SSO capabilities. Authentication follows a token-based model where a private developer key and user credentials are exchanged for a bearer token used in subsequent requests. When I Work also publishes webhooks for real-time event notifications, making it suitable for building payroll, HR, and operations integrations.

When I Work publishes 22 APIs on the APIs.io network, including Accounts API, Annotations API, Availabilities API, and 19 more. Tagged areas include Employee Scheduling, Workforce Management, Time Tracking, Time Clock, and Shift Management.

The When I Work catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.

When I Work’s developer surface includes authentication, documentation, engineering blog, pricing, and 11 more developer resources.

52.5/100 developing ▬ flat Agent 41/100 agent ready Full breakdown ↓
scored 2026-08-05 · rubric v0.9.1
AccessPaidOpenFree trial⚡ Free to try
22 APIs
Employee SchedulingWorkforce ManagementTime TrackingTime ClockShift ManagementAttendanceTeam MessagingHourly WorkersLabor ForecastingHR

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-08-05 · rubric v0.9.1
Composite quality — 52.5/100 · developing
Contract Quality 17.3 / 25
Developer Ergonomics 4.3 / 20
Commercial Clarity 11.6 / 20
Operational Transparency 5.5 / 13
Governance 7.0 / 12
Discoverability 6.9 / 10
Agent readiness — 41/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/when-i-work: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 22

Individual APIs this provider publishes, each with its own machine-readable definition.

When I Work Accounts API

Accounts (aka Workplaces) are objects that define a business account with When I Work. Each user is associated with an account enabling them to access Shifts or other data. For ...

When I Work Annotations API

Annotations convey important information to all staff for the given schedules (locations) and date range. Any or none of the following tags may apply to an Annotation: * Time Of...

When I Work Availabilities API

Set your availability preferences to let your employer know when you prefer to work and when you prefer not to work. For more information about using Availabilities, visit the [...

When I Work Import API

The import API is used to import a variety of When I Work resources from user-provided CSV or Excel files. ### Import Types All available import types and their columns are list...

When I Work OpenShift Requests API

Shift Bidding, also called “OpenShift Requests”, is an option within an OpenShift that allows employees to express interest in the shift. Management can then view who has reques...

When I Work Payrolls API

Payrolls allows you to select a pay period date range and hours worked within that range. Default range if not supplied is today + 3 days. > Please note that payrolls cannot be ...

When I Work Positions API

Positions (aka, job or duty) are used to define labor allocation. Users can be tagged (associated) with one or more Positions. When I Work uses this association for shift eligib...

When I Work Punch API

A punch is an event where a user clocks in or clocks out. Punches can be managed to restrict where an employee can clock in/out and from what devices. If a user forgets to clock...

When I Work Request Type API

Types of time off that can be selected when submitting a time off request. For more information about using Time Off Requests, visit the [Help Center](https://help.wheniwork.com...

When I Work Schedule Templates API

Schedule templates allow you to create a daily or weekly schedule that is reusable. If your schedules are very similar from day to day or week to week, use a template to save ti...

When I Work Schedules (Locations) API

Schedules are logical groupings of users that are working together. Schedules can be physical offices with addresses or logical groups like departments. Users can be tagged (ass...

When I Work Shift Break - Paid Rest API

When the Attendance setting is enabled to Ask Employees About Paid Rest Breaks the feedback on whether or not breaks were taken is provided here. Note: This endpoint requires th...

When I Work Shift Breaks API

Two types of breaks are provided. First; Scheduled Shift Breaks are break records associated with scheduled shifts. Second; Shift Breaks are break records associated with time w...

When I Work Shift Requests API

If you’re unable to work one of your shifts, you can give it to one of your coworkers (drop the shift) or trade shifts with one of your coworkers (swap shifts). For more informa...

When I Work Shift Templates (Blocks) API

Shift templates save you time when you need to schedule shifts that have a consistent start and end time. Instead of manually entering in custom shift details one-by-one, shift ...

When I Work Shifts API

Shifts provide the basis for scheduling. Many other objects, including Schedules (aka Locations), Positions, Sites, Users, Tasks, and Tags all link through Shifts. For more info...

When I Work Sites API

Sites communicate additional information about a given shift to the recipient. Typical usage is when you schedule employees for shifts that are at different physical sites (addr...

When I Work Swaps API

The Swaps API from When I Work — 1 operation(s) for swaps.

When I Work Time Off Requests API

When you need to take time off from work, use When I Work to send the request to your manager for approval. Time off can be submitted as unpaid, paid (PTO), sick, or holiday. Fo...

When I Work Times API

Time records are a listing of the worked hours and can be select by date range. Records are sourced from timeclock terminal, web clock In/Out, mobile clock In/Out, timesheet edi...

When I Work Timezones API

Timezones for When I work workplaces including Olson ID

When I Work Users API

A person on the When I Work platform is associated with a two tier record. The persons email/password is associated to a person_id. For each Workplace the person belongs to a us...

Scroll for all 22

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

When I Work Rate Limits

2 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

When I Work Context

9 classes · 4 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

When I Work API Rules

5 rules · 4 warnings 1 info

SPECTRAL

JSON Schema 8

Standalone JSON Schema definitions for this provider's data models.

Position

8 properties

JSON SCHEMA

Request

16 properties

JSON SCHEMA

Schedule

19 properties

JSON SCHEMA

Shift

30 properties

JSON SCHEMA

ShiftTemplate

12 properties

JSON SCHEMA

Site

16 properties

JSON SCHEMA

Time

27 properties

JSON SCHEMA

User

23 properties

JSON SCHEMA

Scroll for all 8

Examples 1

Example request and response payloads for these APIs.

When I Work Examples

1 fields

EXAMPLE

Security Posture 3

Authentication, domain security, vulnerability disclosure, and trust-center signals.

When I Work Authentication

http · 1 scheme

SECURITY

When I Work Domain Security

TLSv1.3 · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

When I Work Agentic Access

119 operations · 71 acting

119 operations · 71 acting

AGENTIC

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 3

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 3

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: when-i-work
name: When I Work
type: Index
accessModel:
  pricing: paid
  onboarding: open
  trial: true
  try_now: true
  public: true
  label: Paid (free trial) · Open access
  confidence: high
  source:
  - plans
  - authentication
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/when-i-work.png
url: https://raw.githubusercontent.com/api-evangelist/when-i-work/refs/heads/main/apis.yml
created: 2026-06-12
modified: 2026-06-12
specificationVersion: '0.19'
description: 'When I Work is an employee scheduling and workforce management platform serving over 200,000 workplaces in industries
  such as restaurants, retail, healthcare, and hospitality. The platform provides a REST API that enables developers and integration
  partners to manage shifts, schedules, users, time clock records, attendance, and team communication programmatically. API
  access is restricted to the Premium plan tier, which also includes webhook support and SAML/SSO capabilities. Authentication
  follows a token-based model where a private developer key and user credentials are exchanged for a bearer token used in
  subsequent requests. When I Work also publishes webhooks for real-time event notifications, making it suitable for building
  payroll, HR, and operations integrations.

  '
tags:
- Employee Scheduling
- Workforce Management
- Time Tracking
- Time Clock
- Shift Management
- Attendance
- Team Messaging
- Hourly Workers
- Labor Forecasting
- HR
apis:
- aid: when-i-work:when-i-work-accounts-api
  name: When I Work Accounts API
  description: 'Accounts (aka Workplaces) are objects that define a business account with When I Work. Each user is associated
    with an account enabling them to access Shifts or other data.


    For more information about Accounts, visit the [Help Center](https://help.wheniwork.com/article-categories/account-settings/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Accounts
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-accounts-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-annotations-api
  name: When I Work Annotations API
  description: 'Annotations convey important information to all staff for the given schedules (locations) and date range.


    Any or none of the following tags may apply to an Annotation:


    * Time Off Not Allowed

    * Business Closed

    * Announcement


    The "Time Off Not Allowed" tag is the only tag that affects the behavior of another API. Time Off requests will be considered
    invalid if the request''s date range overlaps an Annotation of the "Time Off Not Allowed" type for the user''s location(s).


    For more on using Annotations, visit the [Help Center](https://help.wheniwork.com/hc/en-us/articles/204348065-Annotations).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Annotations
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-annotations-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-availabilities-api
  name: When I Work Availabilities API
  description: 'Set your availability preferences to let your employer know when you prefer to work and when you prefer not
    to work.


    For more information about using Availabilities, visit the [Help Center](https://help.wheniwork.com/articles/setting-your-availability-computer/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Availabilities
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-availabilities-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-import-api
  name: When I Work Import API
  description: "The import API is used to import a variety of When I Work resources from user-provided CSV or Excel files.\n\
    \n### Import Types\n\nAll available import types and their columns are listed here. Where possible, the column names will\
    \ align with names used elsewhere in the API, but this is not always possible.\n\n<table>\n   <thead>\n     <tr>\n   \
    \    <th>type</th>\n       <th>columns</th>\n       <th>required?</th>\n       <th>notes</th>\n     </tr>\n   </thead>\n\
    \   <tbody>\n     <tr>\n       <td rowspan=\"5\" class=\"nowrap\"><code>SHIFT_TEMPLATE</code></td>\n       <td>start_time</td>\n\
    \       <td>✅</td>\n       <td></td>\n     </tr>\n     <tr>\n       <td>end_time</td>\n       <td>✅</td>\n       <td></td>\n\
    \     </tr>\n     <tr>\n       <td>schedule</td>\n       <td></td>\n       <td>\n         <p>A schedule name to associate\
    \ with the shift template. If no schedule with that name exists,\na new schedule will be created.</p>\n         <p>If\
    \ omitted, the shift template will be assigned to all schedules (or the value \"All Schedules\"\ncan be provided to do\
    \ the same).</p>\n       </td>\n     </tr>\n     <tr>\n       <td>position</td>\n       <td></td>\n       <td>\n     \
    \    <p>A position name to associate with the shift template. If no position with that name exists,\na new position will\
    \ be created.</p>\n       </td>\n     </tr>\n     <tr>\n       <td>unpaid_break</td>\n       <td></td>\n       <td>The\
    \ length of the unpaid break in minutes.</td>\n     </tr>\n     <tr>\n       <td rowspan=\"12\" class=\"nowrap\"><code>EMPLOYEE</code></td>\n\
    \       <td>first_name</td>\n       <td>✅</td>\n       <td>First name of the employee</td>\n     </tr>\n     <tr>\n  \
    \     <td>last_name</td>\n       <td>✅</td>\n       <td>Last name of the employee</td>\n     </tr>\n     <tr>\n      \
    \ <td>email</td>\n       <td></td>\n       <td>The email address of the employee</td>\n     </tr>\n     <tr>\n       <td>employee_code</td>\n\
    \       <td></td>\n       <td>The employee code to associate with the employee</td>\n     </tr>\n     <tr>\n       <td>file_number</td>\n\
    \       <td></td>\n       <td>The file number corresponding to the employee in ADP</td>\n     </tr>\n     <tr>\n     \
    \  <td>id</td>\n       <td></td>\n       <td>The user id corresponding to the employee in When I Work</td>\n     </tr>\n\
    \     <tr>\n       <td>location</td>\n       <td></td>\n       <td>\n         <p>A schedule (location) name to associate\
    \ with the employee. If no schedule with that name\nexists, a new schedule will be created.</p>\n       </td>\n     </tr>\n\
    \     <tr>\n       <td>max</td>\n       <td></td>\n       <td>The maximum hours per week of the employee</td>\n     </tr>\n\
    \     <tr>\n       <td>phone</td>\n       <td></td>\n       <td>The phone number of the employee</td>\n     </tr>\n  \
    \   <tr>\n       <td>position</td>\n       <td></td>\n       <td>\n         <p>A position name to associate with the employee.\
    \ If no position with that name exists,\na new position will be created.</p>\n       </td>\n     </tr>\n     <tr>\n  \
    \     <td>tags</td>\n       <td></td>\n       <td>\n         <p>A comma separated list of tags to associate to the employee.\
    \ If the tag does not exist,\nit will be created.</p>\n       </td>\n     </tr>\n     <tr>\n       <td>wage</td>\n   \
    \    <td></td>\n       <td>\n         <p>The hourly rate of the employee expressed as a floating point number (e.g. 14.50)</p>\n\
    \       </td>\n     </tr>\n   </tbody>\n </table>"
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Import
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-import-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-openshift-requests-api
  name: When I Work OpenShift Requests API
  description: 'Shift Bidding, also called “OpenShift Requests”, is an option within an OpenShift that allows employees to
    express interest in the shift. Management can then view who has requested to pick up the OpenShift and select and approve
    an employee to work the shift.


    For more info about using OpenShift Requests, visit the [Help Center](https://help.wheniwork.com/articles/shift-bidding/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - OpenShift Requests
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-openshift-requests-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-payrolls-api
  name: When I Work Payrolls API
  description: 'Payrolls allows you to select a pay period date range and hours worked within that range. Default range if
    not supplied is today + 3 days.


    > Please note that payrolls cannot be created or deleted via the API


    For more info about managing Payroll, visit the [Help Center](https://help.wheniwork.com/articles/close-and-export-payroll/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Payrolls
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-payrolls-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-positions-api
  name: When I Work Positions API
  description: 'Positions (aka, job or duty) are used to define labor allocation. Users can be tagged (associated) with one
    or more Positions. When I Work uses this association for shift eligibility, Alert notifications filtering and labor reporting.


    For more information about using Positions, visit the [Help Center](https://help.wheniwork.com/articles/creating-and-managing-positions-computer/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Positions
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-positions-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-punch-api
  name: When I Work Punch API
  description: 'A punch is an event where a user clocks in or clocks out. Punches can be managed to restrict where an employee
    can clock in/out and from what devices.


    If a user forgets to clock out, they will be allowed to clock in after 9 hours from the end of their scheduled shift.
    If there is no scheduled shift, the user can clock in again after 18 hours from when they originally clocked in.'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Punch
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-punch-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-request-type-api
  name: When I Work Request Type API
  description: 'Types of time off that can be selected when submitting a time off request.


    For more information about using Time Off Requests, visit the [Help Center](https://help.wheniwork.com/articles/requesting-time-off-computer/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Request Type
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-request-type-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-schedule-templates-api
  name: When I Work Schedule Templates API
  description: 'Schedule templates allow you to create a daily or weekly schedule that is reusable. If your schedules are
    very similar from day to day or week to week, use a template to save time and avoid creating schedules from scratch.


    For more information about using Schedule Templates, visit the [Help Center](https://help.wheniwork.com/articles/using-schedule-templates-computer/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Schedule Templates
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-schedule-templates-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-schedules-locations-api
  name: When I Work Schedules (Locations) API
  description: 'Schedules are logical groupings of users that are working together. Schedules can be physical offices with
    addresses or logical groups like departments. Users can be tagged (associated) to one or more schedules. Schedules can
    be departments, facilities, business divisions or any grouping of staff.


    For more information about using Scheduled, visit the [Help Center](https://help.wheniwork.com/articles/creating-and-managing-schedules-computer/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Schedules (Locations)
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-schedules-locations-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-shift-break-paid-rest-api
  name: When I Work Shift Break - Paid Rest API
  description: "When the Attendance setting is enabled to Ask Employees About Paid Rest Breaks the feedback on whether or\
    \ not breaks were taken is provided here.\n\n  Note: This endpoint requires the request header for w-userid.\n  For more\
    \ information about managing Breaks, visit the [Help Center](https://help.wheniwork.com/articles/paid-break-reporting/#reporting-paid-breaks)\n\
    \n  (Deprecated - Please refer to the [updated documentation](https://apidocs.wheniwork.com/external/index.html?repo=attendance#tag/Times)\n\
    for managing break attestations)"
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Shift Break - Paid Rest
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-shift-break-paid-rest-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-shift-breaks-api
  name: When I Work Shift Breaks API
  description: "Two types of breaks are provided. First; Scheduled Shift Breaks are break records associated with scheduled\
    \ shifts. Second; Shift Breaks are break records associated with time worked.\nFor Shift Breaks (Attendance)\n   Three\
    \ types of records are possible from a break action or automated action\n   A record can be created from a user break\
    \ punch allocation\n   A record can be created from a Manager/Supervisor edit to a timesheet. (With this type of record,\n\
    no break time is generated and only the length is available to be queried.)\n   A Break record can be created via the\
    \ system configuration setting for Auto-Deduct of Breaks. (With\nthis type of record, no break time is generated and only\
    \ the length is available to be queried.)\n\n   Note: This endpoint requires the request header for w-userid.\n   For\
    \ more information about managing Breaks, visit the [Help Center](https://help.wheniwork.com/articles/attendance-settings/)"
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Shift Breaks
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-shift-breaks-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-shift-requests-api
  name: When I Work Shift Requests API
  description: 'If you’re unable to work one of your shifts, you can give it to one of your coworkers (drop the shift) or
    trade shifts with one of your coworkers (swap shifts).


    For more information about using Shift Requests, visit the [Help Center](https://help.wheniwork.com/articles/swapping-and-dropping-shifts-computer/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Shift Requests
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-shift-requests-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-shift-templates-blocks-api
  name: When I Work Shift Templates (Blocks) API
  description: 'Shift templates save you time when you need to schedule shifts that have a consistent start and end time.
    Instead of manually entering in custom shift details one-by-one, shift templates allow you to schedule a shift quickly
    and easily.


    For more information about using Shift Templates, visit the [Help Center](https://help.wheniwork.com/articles/creating-and-managing-shift-templates-computer/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Shift Templates (Blocks)
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-shift-templates-blocks-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-user-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-time-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-position-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-schedule-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-site-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-request-schema.json
  - type: JSONSchema
    url: json-schema/when-i-work-shifttemplate-schema.json
  - type: Examples
    url: examples/when-i-work-examples.json
  - type: Vocabulary
    url: vocabulary/when-i-work-vocabulary.yml
  - type: JSONLDContext
    url: json-ld/when-i-work-context.jsonld
  - type: Plans
    url: plans/when-i-work-plans-pricing.yml
  - type: RateLimits
    url: rate-limits/when-i-work-rate-limits.yml
  - type: FinOps
    url: finops/when-i-work-finops.yml
- aid: when-i-work:when-i-work-shifts-api
  name: When I Work Shifts API
  description: 'Shifts provide the basis for scheduling. Many other objects, including Schedules (aka Locations), Positions,
    Sites, Users, Tasks, and Tags all link through Shifts.


    For more information about how to use Shifts, visit the [Help Center](https://help.wheniwork.com/article-categories/scheduling-your-team/).'
  humanURL: https://apidocs.wheniwork.com/external/index.html
  baseURL: https://api.wheniwork.com/2
  tags:
  - Shifts
  properties:
  - type: OpenAPI
    url: openapi/when-i-work-shifts-api-openapi.yml
  - type: Documentation
    url: https://apidocs.wheniwork.com/external/index.html
  - type: JSONSchema
    url: json-schema/when-i-work-shift-schema.json
  - type: J

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/when-i-work/refs/heads/main/apis.yml