---
updatedAt: 2026-05-19T13:35:38.000Z
---

Fetch the complete documentation index at: https://apidocs.hibob.com/llms.txt. Use this file to discover all available pages before exploring further.

# Explore Attendance API

Understand the basic concepts of attendance entries in Bob

# Overview

The **Attendance module** in Bob allows employees to log their attendance, while managers and administrators can view and manage timesheets. Attendance entries can be classified as paid or unpaid for payroll tracking purposes, depending on the organization's policy.

* **Projects** in Attendance enables companies to track how employees allocate their time across various initiatives. Project and tasks can be billable or non-billable, and these details are displayed in the Projects Hours Report in Bob.
* **Attendance entries API** allows companies to programmatically manage entries, import them, and query attendance summaries.
* **Time off API** adds to the attendance module and allows companies to fetch company calendar events (such as holidays and closures), see [Explore Time off API](https://apidocs.hibob.com/docs/explore-time-off-api).

<Callout icon="📘" theme="info">
  **Note:** The attendance module is available only to customers who purchased the <Anchor label="Time and Attendance module" target="_blank" href="https://www.hibob.com/features/time-attendance/">Time and Attendance module</Anchor>.
</Callout>

# Key Concepts

<Accordion title="Attendance policy">
  Attendance policies set the detailed rules that impact each employee’s attendance, including how overtime is defined, how break deductions are calculated, and who approves employees’ timesheets.

  > **Public API Support:** You cannot access attendance policies via the Public API.
</Accordion>

<Accordion title="Attendance entries">
  An attendance entry is the atomic unit of time tracking in Bob’s Attendance system. It represents a work duration, clock-in, clock-out, or break action recorded by an employee on a specific date and time. Entries are foundational data Bob uses to calculate daily summaries, timesheets, and billable hours per project.

  Each entry includes:

  <ul>
    <li><b>The date and time in one of the following formats:</b> (clock-in/clock-out or date/duration</li>

    <li><b>The type of entry </b>(work or break)</li>

    <li><b>The employee identifier </b></li>

    <li><b>Optional metadata</b> such as associated project or task (not supported when importing punches)</li>
  </ul>

  > **Public API Support:** The public API includes full entries CRUD + the option to import entries via a CSV file.
</Accordion>

<Accordion title="Attendance summaries and daily breakdown">
  In Bob, attendance reporting includes:

  <ul>
    <li>**Attendance summary**: Aggregated view for a date range, including worked hours, payable hours, overtime, breaks, and policy-based calculations.</li>
    <li>**Daily summary**: Day-by-day view showing how hours are calculated for each date, including regular time, overtime, breaks, and premium-eligible hours.</li>
  </ul>

  > **Public API support**:
  >
  > The Public API provides two corresponding search endpoints that return calculated attendance data. Both endpoints require filtering by employee IDs and date or date range.
</Accordion>

<Accordion title="Calendar events">
Calendar events (such as public holidays and company closures) are retrieved via the Time off API rather than the Attendance API.
</Accordion>

<Accordion title="Projects">
  Projects are defined in the Attendance settings in Bob. They track how employees spend time across different initiatives. Only employees assigned to a project can report attendance for that project or its tasks.

  <ul>
    <li>Each project can be tracked either at the project level or at the task level.</li>
    <li>Employees assigned to a project must select a project or task when adding attendance entries.</li>
    <li>Attendance entries are considered billable or non-billable for project tracking, based on the project’s or task’s billable flag.</li>
  </ul>

  > **Public API support**: You can create, update, archive and resrore projects via the Public API.
  > When importing attendance entries, you cannot link them to a project - this can only be done through the Bob UI.
</Accordion>

<Accordion title="Project fields and custom fields">
  Project fields define the information shown in project details, tables, and reports. They can also be used to filter data. In Bob you define project fields from **Time > Project > Project fields**.

  Project Fields can be:

  <ul>
    <li><b>Out-of-the-box fields</b> like name, description, assigned employees, and time tracking method</li>
    <li><b>Custom fields</b> added by an admin.</li>
  </ul>

  > **Public API Support**:
  >
  > <ul>
  >   <li>You can use the Public API metadata endpoints to retrieve field information (out-of-the-box and custom fields).</li>
  >   <li> Some custom field types are not supported via the Public API. Fields of type `Multi-select list`, `List`, and `Document` are excluded and will not appear in metadata responses.</li>
  >   <li>Each custom field has a unique ID in the format field\_xxx, where xxx is a system-generated number.</li>
  >   <li>Use the field ID when querying projects.</li>
  > </ul>
</Accordion>

<Accordion title="Project tasks">
  <ul>
    <li><b>Project tasks are defined in the Attendance settings in Bob, and represent different types of activities</b> that can be associated with a project.</li>

    <li><b>You can add a project task (i.e., activity type) to multiple projects</b>. </li>
    <li><b>Employees assigned to a project with tasks must select a task when adding attendance entries.</b>. </li>
    <li><b>Project-tasks can be used to track calculated billable time by project.</b>. </li>
  </ul>

  > Note: <b>Project tasks are not "Tasks" in Bob</b>. To learn about tasks that can be assigned to employees, and task-lists in Bob, see <a href="https://apidocs.hibob.com/docs/explore-tasks">Explore Tasks API</a>.

  > **Public API Support**: You can fetch, update and archive project-tasks via the Public API.
</Accordion>

<Accordion title="Calculated Billable time by project">
  In Bob, time can be tracked in one of two ways:

  <ul>
    <li><strong>By project</strong> – Track total time spent on the project. A project can be billable or non-billable.</li>
    <li><strong>By project tasks</strong> – Track time against specific tasks within the project. Each task can be billable or non-billable.</li>
  </ul>

  The **calculated billable time** refers to the hours tracked on a project or task that are eligible for invoicing or internal cost allocation. This information can be accessed via Project Reports in Bob.

  <b>Relationships between attendance data and billable time</b>

  | Entity               | Linked to               | Determines                                        |
  | -------------------- | ----------------------- | ------------------------------------------------- |
  | **Attendance entry** | Project / Project task  | The time spent on a specific project or task      |
  | **Project**          | Project’s billable flag | Whether time recorded for the project is billable |
  | **Project task**     | Task’s billable flag    | Whether time recorded for the task is billable    |
</Accordion>

# Attendance entries API

The Attendance Public API includes:

* **Entries CRUD:** Use this option when the integration *manages* attendance in Bob and needs full entry lifecycle control (create, update, delete) and support for richer scenarios like real-time clock-in/out and projects/tasks (when allowed by policy).
  * **Linking to Projects & tasks:** Supported only when allowed by policy and when using Entries CRUD. When importing punches, you cannot link an entry to a project or task.
* **Import punches:** Use this option when you already capture raw clock-in/out punches elsewhere (for example via a physical time clock) and want to ingest those punches into Bob using a simpler, more limited data model.
* **Querying attendance** summaries and daily breakdowns.

## Manage entries

Use this API when you need full programmatic control over attendance entries.

* **What you can do:** Create, update, delete, and search attendance entries, including support for real-time clock-in and clock-out flows.
* **What you can include:** employee ID, entry type (work or break), and either start/end times or a duration (depending on the reporting method).
* **Projects & tasks:** Linking an entry to a project or task is supported only when allowed by policy.

<Callout icon="🚧" theme="warn">
  **Rules and validations (important)**

  * **Policy compliance:** Entries must match the employee’s attendance policy rules and reporting method.
  * **Running cycle restrictions:** Only entries in running timesheet cycles can be accessed from the Public API. Attendance entries cannot be changed when the relevant timesheet cycle is submitted, approved, or locked.
  * **No future entries:** Creating entries in the future is not supported.
  * **No overlaps:** Entries for an employee cannot overlap.
  * **Cross-midnight (start/end):** When using start/end times, clock-in and clock-out must be on the same date. If work crosses midnight, split it into two entries.
  * **Bulk limits:** Create and update support up to 100 entries per request.
</Callout>

## Import punches

Use this API when you already have “punch” data from a physical time clock and want to ingest it into Bob.

* **What you can do:** Import clock-in and clock-out punches (with a limited data model compared to Entries CRUD).
* **Projects & tasks:** Not supported when importing punches.

<Callout icon="📘" theme="info">
  **Note**: Before using this API, explore [Import attendance punches into Bob via Public API](https://help.hibob.com/hc/en-us/articles/8108619113745) to fully understand how to use this API correctly.
</Callout>

# Projects API

The Projects API enables external systems to create, manage, and sync projects and tasks in Bob automatically. It supports creating projects, assigning them to tasks, assigning them to employees and Bob clients, archiving, and restoring projects as needed.

These capabilities enable customers to manage project lifecycles programmatically, while keeping Bob as the central platform for time tracking and reporting.

### Projects API flow

```mermaid
sequenceDiagram
    participant EXT as API Client
    participant BOB as Bob Platform
    
    EXT->>BOB: Read Employees (/people/search)
    BOB->>EXT: Return Employees (Employee fields: id, name, email)
    
		EXT-->>BOB: [Optional] Read tasks (/attendance/project-tasks/search) 
    BOB-->>EXT: Return Tasks  (Fields: id, name, billable)
    
    EXT-->>BOB: [Optional] Read Client IDs (/attendance/project-clients/search)
    BOB-->>EXT: Return Projects Clients (Fields: id, name)
   
    EXT->>BOB: Create project (Fields: name, description, billable/taskIds, members)
    BOB->>EXT: 201 Created (Bob project ID)
    EXT->>EXT: Store Bob project ID

```

# Required permissions

Before accessing attendance data, ensure the service user has permission to access the relevant information, just as you would when assigning permissions to a user in Bob.

* See [Attendance permissions reference guide](/reference/attendance#required-permissions).
* See [Attendance Projects permissions reference guide](/reference/projects#required-permissions) .

# Attendance endpoints

The Public APIs for managing projects provide developers with programmatic access to projects and tasks in Bob.

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        Use case
      </th>

      <th>
        Public API endpoint
      </th>

      <th>
        Comments
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Manage Attendance entries
      </td>

      <td>
        [Create entries](https://apidocs.hibob.com/reference/post_attendance-entries)  
        [Update entries for an employee](https://apidocs.hibob.com/reference/patch_attendance-employees-employeeid-entries)  
        [Delete entry](https://apidocs.hibob.com/reference/delete_attendance-entries-entryid)  
        [Search entries](https://apidocs.hibob.com/reference/post_attendance-entries-search)  
        [Clock in](https://apidocs.hibob.com/reference/post_attendance-employees-employeeid-entries-clock-in)  
        [Clock out](https://apidocs.hibob.com/reference/patch_attendance-employees-employeeid-entries-clock-out)
      </td>

      <td>
        Use these endpoints for full programmatic management of time entries, including real-time clock-in and clock-out.
      </td>
    </tr>

    <tr>
      <td>
        Import punches
      </td>

      <td>
        [Import attendance data](https://apidocs.hibob.com/reference/post_attendance-import-importmethod#/)

        <br />
      </td>

      <td>
        See <Anchor label="Import attendance punches into Bob via Public API" target="_blank" href="https://help.hibob.com/hc/en-us/articles/8108619113745">Import attendance punches into Bob via Public API</Anchor>   for detailed information about this endpoint
      </td>
    </tr>

    <tr>
      <td>
        Attendance summaries
      </td>

      <td>
        [Fetch attendance summaries](https://apidocs.hibob.com/reference/post_attendance-summaries-search)  
        [Fetch daily attendance breakdown](https://apidocs.hibob.com/reference/post_attendance-daily-breakdown-search)
      </td>

      <td>
        Use these endpoints to Query attendance summaries and daily breakdowns.
      </td>
    </tr>

    <tr>
      <td>
        Manage Projects
      </td>

      <td>
        [Get Project Metadata](https://apidocs.hibob.com/reference/get_attendance-projects-metadata)

        [Search Projects](https://apidocs.hibob.com/reference/post_attendance-projects-search)

        [Create Project(s)](https://apidocs.hibob.com/reference/post_attendance-projects)

        [Update Project](https://apidocs.hibob.com/reference/patch_attendance-projects-projectid)

        [Archive Project](https://apidocs.hibob.com/reference/patch_attendance-projects-projectid-archive)

        [Restore Project](https://apidocs.hibob.com/reference/patch_attendance-projects-projectid-restore)

        <br />
      </td>

      <td>
        Use these endpoints to create, read, update, and archive or restore projects in Bob. When you create a project, the response includes the project’s backend ID - save it for future updates or references.
      </td>
    </tr>

    <tr>
      <td>
        Manage Project Tasks
      </td>

      <td>
        [Get Project Task Metadata](https://apidocs.hibob.com/reference/get_attendance-project-tasks-metadata)

        [Search Project Tasks](https://apidocs.hibob.com/reference/post_attendance-project-tasks-search)  
        [Create Project Task(s)](https://apidocs.hibob.com/reference/post_attendance-project-tasks) [Archive Project Task](https://apidocs.hibob.com/reference/patch_attendance-project-tasks-taskid-archive) [Restore Project Task](https://apidocs.hibob.com/reference/patch_attendance-project-tasks-taskid-restore) [Update Project Task](https://apidocs.hibob.com/reference/put_attendance-project-tasks-taskid)

        <br />
      </td>

      <td>
        Use these endpoints to create, read, update, and archive or restore project tasks. Use the taskId to link tasks to a project when creating or updating it.
      </td>
    </tr>

    <tr>
      <td>
        Access Project Clients
      </td>

      <td>
        [Get Project Client Metadata](https://apidocs.hibob.com/reference/get_attendance-project-clients-metadata)

        [Search Project Clients](https://apidocs.hibob.com/reference/post_attendance-project-clients-search)

        <br />
      </td>

      <td>
        Use the project Clients endpoints to fetch client IDs and link clients to a project when creating or updating it
      </td>
    </tr>
  </tbody>
</Table>

# Related resources

* [Attendance API reference](/reference/attendance)
* <Anchor label="Manage people's attendance in Bob" target="_blank" href="https://help.hibob.com/hc/en-us/articles/4409792001169">Manage people's attendance in Bob</Anchor>
* [Manage and view attendance balance](https://help.hibob.com/hc/en-us/articles/27647326417809).
* [Rate limiting](/docs/rate-limit).
* [Getting started with Bob API](/reference/getting-started-with-bob-api).