canonical: https://jentic.com/apis/mctime.com/mctime

# McTime API

Jentic publishes the only available OpenAPI specification for McTime API, keeping it validated and agent-ready. McTime is a workforce management platform that handles time tracking, clocking, scheduling, and payroll preparation for shift-based teams. The API has 18 operations spanning time entries, users, organizations, assignments, the clock endpoint for in/out punches, and read-only analytics. Agents use it to log clock events from kiosks or messaging interfaces, build manager dashboards, and feed approved hours into payroll.

## For AI agents

Track time entries, manage shift assignments, run clock in/out events, and prepare payroll for McTime's workforce management platform.

## Scope

Does not handle direct payroll disbursement, benefits administration, or recruiting - use for time tracking, clocking, scheduling, and payroll prep only.

## Capabilities

- Record clock-in and clock-out events for an employee
- Create, update, and approve time entries against an assignment
- Manage user accounts including roles and active status
- Manage organisations and their hierarchical structure
- Assign employees to shifts, projects, or cost codes
- Pull analytics on hours worked, attendance, and overtime
- Export approved hours for payroll processing

## Use cases

### Kiosk-Based Clock In/Out

Power a tablet kiosk or chat-based attendance flow that lets shift workers clock in and out without using the full McTime web app. The /clock endpoint accepts the user id and an in/out event, returning the recorded entry. Operations managers deploy this in warehouses, restaurants, and care homes where workers do not have desk access.

Example prompt: Call POST /clock with user_id=123 and event=in to record a clock-in for the current shift, then return the new time entry id.

### Manager Approval Dashboard

Surface pending time entries to managers and let them approve, edit, or reject them in bulk. The /times endpoint returns entries filtered by assignment or status, and individual entries can be updated via `/times/{id}.` Agents typically build this on top of an existing manager portal so approvals happen in seconds rather than minutes.

Example prompt: List time entries with status='pending' for assignments owned by manager_id 7, then update each to status='approved' after the agent has applied the team's overtime rules.

### Payroll Export Preparation

Roll up approved time entries by user and pay period and produce a payroll export ready for ingestion into a payroll system. The /times endpoint supports filtering by approval status and date range, and /assignments provides the mapping to cost centres and pay rates. This compresses the manual payroll-prep cycle and reduces transcription errors before paychecks are issued.

Example prompt: List all approved time entries between 2026-06-01 and 2026-06-15, group by user and assignment, calculate total regular and overtime hours, and return a CSV ready for payroll import.

### AI Agent for Attendance Anomalies

Build an agent that watches McTime time entries each morning, flags employees who clocked in late, missed a punch, or worked unscheduled hours, and posts a summary to the operations channel. The agent searches Jentic for 'list McTime time entries', loads the listing schema, and executes calls with vault credentials. Operations leads use the digest to address attendance issues the same day rather than at the end of the pay period.

Example prompt: List all time entries for yesterday, identify entries where clock-in was more than 10 minutes after the scheduled assignment start, and return a list of user names with their lateness in minutes.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/times` | List time entries |
| GET | `/times/{id}` | Retrieve a time entry |
| POST | `/clock` | Record a clock-in or clock-out event |
| GET | `/users` | List users |
| GET | `/users/{id}` | Retrieve a user |
| GET | `/organizations` | List organisations |
| GET | `/assignments` | List assignments |

## Key resources

- **Times** — Time entry records with start, end, status, and assignment
- **Clock** — Clock-in and clock-out punch events
- **Users** — Employee accounts with roles and status
- **Organizations** — Organisational hierarchy for users and assignments
- **Assignments** — Shifts, projects, or cost codes employees are assigned to

## Why Jentic

- **Setup:** Wiring the McTime API by hand means sending your key in the API_KEY header, pointing at the mctime.com/api/v2 host, and mapping the time-tracking calls yourself. Through Jentic you install once, import the McTime API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** McTime's clock input travels in the request body rather than a resource id in the URL path, so you limit the agent to the operations it needs, such as reading times, users, or assignments. It calls only the operations you allow, so clocking in is not included unless you add it.
- **Credential handling:** Your McTime API key is stored once, encrypted, by your own Jentic One instance and injected into the API_KEY header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'clock in a McTime employee', and Jentic returns the matching McTime operation with its input schema so the agent calls the right endpoint without browsing mctime.readme.io.

## Related APIs

- **Toggl Track** — Time tracking for individuals and small teams without shift management
- **Everhour** — Time tracking and project budgeting aimed at salaried services teams
- **Gusto** — Payroll provider that consumes hours exported from McTime
- **BambooHR** — HR system of record that pairs with McTime for time-of-attendance

## FAQ

### Why is there no official OpenAPI spec for McTime API?

McTime does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call McTime API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the McTime API use?

McTime uses an API key passed in the API_KEY header. Through Jentic, the key is stored encrypted in your Jentic One instance and attached to outbound requests at execution time, so the raw key never enters the agent's prompt or transcript.

### Can I clock employees in and out with the McTime API?

Yes. POST /clock accepts the user id and an in/out event and records a punch against the active shift. This is the primary endpoint for kiosk or chat-based attendance flows where users do not log into the full McTime app.

### What are the rate limits for the McTime API?

Rate limits are documented at mctime.readme.io and vary by plan tier. The API responds with 429 status codes when limits are exceeded; agents should respect Retry-After headers and back off exponentially during bulk operations like nightly payroll prep.

### How do I approve a time entry through Jentic?

Search Jentic for 'approve a McTime time entry', load the schema for the time-entry update operation under `/times/{id}`, and execute with status='approved'. Jentic attaches the API_KEY header automatically and returns the updated entry.

### Can the McTime API export approved hours for payroll?

Yes. GET /times supports filtering by approval status and date range; aggregating the result by user and assignment produces the rows needed for a payroll import. Agents typically run this once per pay period and emit a CSV mapped to the payroll system's expected schema.

### Does the McTime API expose scheduling?

Yes. GET /assignments returns shifts, projects, or cost codes that employees are assigned to, with start and end dates. Combined with /times, this lets agents compare scheduled to actual hours and flag attendance anomalies.

### Can I limit what my agent is allowed to do with the McTime API?

Yes. Jentic One is self-hosted by you, so your own rules decide which McTime operations and credentials the agent may use. You can allow only the read operations it needs, such as listing time entries at GET /times, reading users at GET /users, or pulling assignments at GET /assignments, and the agent calls nothing else. Because McTime carries the clock input in the request body rather than a resource id in the URL path, write actions like POST /clock stay out of reach unless you explicitly grant them.
