# Developer Docs Documentation
> The Developer Docs is where you'll find comprehensive guides and documentation to help you start working with Bob as quickly as possible.
Fetch the complete documentation index at: https://apidocs.hibob.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.
## API Reference: Attendance API
- [Attendance](https://apidocs.hibob.com/reference/attendance.md): Use the API to manage attendance entries and projects in Bob
- [Import attendance data](https://apidocs.hibob.com/reference/post_attendance-import-importmethod.md):
This endpoint allows you to import attendance punches (entries) for employees.
- Explore Import attendance punches into Bob via Public API for detailed information about this endpoint.
- It's important to fully understand how to use this endpoint correctly to avoid errors in the import process.
- [Fetch attendance summaries](https://apidocs.hibob.com/reference/post_attendance-summaries-search.md): This endpoint returns aggregated attendance summary metrics for one or more employees within a specified date range. Results are returned as a summary per employee per date range and can include total worked hours, payable hours, overtime, breaks, and other attendance metrics (based on the fields you request). This is a read operation that uses POST because it requires a structured request body (filters, field selection, and pagination parameters). Before using this endpoint:
- Explore the Attendance API for more details on usage, rate limits, permissions, and more.
- You must provide both `dateRange` and `employeeId` filters in the request.
- Only fields mentioned in the `fields` parameter are returned in the response.
- Pagination: Use `limit` and `cursor` parameters to paginate through results. The `cursor` value for the next page is returned in `response_metadata.next_cursor`. To learn more, see Pagination in Bob's API.
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- [Fetch daily attendance breakdown](https://apidocs.hibob.com/reference/post_attendance-daily-breakdown-search.md): This endpoint allows you to retrieve daily attendance breakdown data for employees. Each item in the response represents one day's attendance data for an employee, including hours worked, breaks, overtime, and other daily metrics. Please note that this endpoint requires body parameters, which is why it utilizes a POST request for a read operation. Before using this endpoint:
- Explore the Attendance API for more details on usage, rate limits, permissions, and more.
- You must provide both `date` and `employeeId` filters in the request.
- Only fields mentioned in the `fields` parameter are returned in the response.
- Pagination: Use `limit` and `cursor` parameters to paginate through results. The `cursor` value for the next page is returned in `response_metadata.next_cursor`. To learn more, see Pagination in Bob's API.
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- [Fetch attendance entries](https://apidocs.hibob.com/reference/post_attendance-entries-search.md): Fetch attendance entries (time log entries) with filters and pagination. Only fields listed in the fields parameter are returned. You must provide an employeeId filter and at least one clockInDate filter (using from and to operators). The maximum date range is 33 days. Before using this endpoint:
- Explore the Attendance API for more details on usage, rate limits, permissions, and more.
- Field IDs are prefixed with
/attendanceEntry/ (e.g. /attendanceEntry/id, /attendanceEntry/employeeId). - Use
limit and cursor for pagination; next page cursor is in response_metadata.next_cursor.
- [Bulk create attendance entries](https://apidocs.hibob.com/reference/post_attendance-entries.md): Create one or more attendance entries (time log entries) for employees. Entries must match the reporting method (duration or start-end) and rules of the attendance policy linked to the employee. Before using this endpoint
- Read the Explore Attendance API for concepts, usage, rate limits, and permissions.
- Maximum 100 entries per request.
- Reporting method:
- Duration: Use when you only need to log a total amount of time for a day. Send
clockInDate (YYYY-MM-DD) and duration (minutes). Maximum 24 hours - Start-end: Use when you know the actual start and end times. Send
clockInTime (timestamp that includes the date) and optionally clockOutTime. The entry date is taken from clockInTime.
- Cross-midnight:
clockInTime and clockOutTime must be on the same date. Sending an entry where clock-out is on another day than clock-in will return an error. Split cross-midnight work into two entries: one ending at 23:59 and one starting at 00:00 the next day.
- [Bulk update attendance entries for an employee](https://apidocs.hibob.com/reference/patch_attendance-employees-employeeid-entries.md): Update one or more attendance entries (time log entries) for a specific employee. Only provided fields are updated. Entries must match the reporting method (duration or start-end) and rules of the attendance policy linked to the employee. Update is scoped per employee to keep authorization, validation (such as overlaps or locked days), and transactional boundaries simple and safe, since those rules are typically employee-centric. - Each item must include the entry
id field to identify the entry to update. - Maximum 100 entries per request.
- Read-only fields:
employeeId, clockInDate, type. - Reporting method:
- Duration: Update
duration, maximum 24 hours.. - Start-end: Update
clockInTime and/or clockOutTime (timestamps). - Start-end (cross-midnight):
clockInTime and clockOutTime must be on the same date. If clock-out is on another day, the API returns an error. Split into two entries: one till 23:59 and one from 00:00 the next day.
- [Clock in (create entry)](https://apidocs.hibob.com/reference/post_attendance-employees-employeeid-entries-clock-in.md): Create a new attendance entry by clocking in the employee identified by the path. Returns the created entry ID.
- [Clock out](https://apidocs.hibob.com/reference/patch_attendance-employees-employeeid-entries-clock-out.md): Record clock-out for the employee identified by the path. Updates the most recent open clock-in entry for that employee with the given clock-out time. Returns the updated entry ID.
- [Delete an attendance entry](https://apidocs.hibob.com/reference/delete_attendance-entries-entryid.md): Delete an attendance entry by ID.
- [Projects](https://apidocs.hibob.com/reference/projects.md): The Projects API provides access to projects in Bob.
- [Get Project Metadata](https://apidocs.hibob.com/reference/get_attendance-projects-metadata.md): Returns project fields metadata, including out-of-the-box and custom fields. Use the field ID in fields and filters when calling the project search endpoint. Important Note: Custom fields of the following types are not supported via the API: - Multi-select list
- List
- Document
- [Search Projects](https://apidocs.hibob.com/reference/post_attendance-projects-search.md): This endpoint allows you to retrieve project data based on specified filters. Please note that this endpoint requires body parameters, which is why it utilizes a POST request for a read operation. Before using this endpoint:
- Explore the Attendance API for more details on usage, rate limits, permissions, and more.
- Only project fields mentioned in the `fields` parameter are returned. Use project metadata endpoint to get the field IDs.
- Pagination note: Pagination parameters are currently accepted but not enforced. The response includes all matching results regardless of the `limit` or `cursor` values. Pagination will be implemented in a future version to limit results per page. To learn more, see Pagination in Bob’s API.
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- [Create Project(s)](https://apidocs.hibob.com/reference/post_attendance-projects.md): Create one or more projects with the specified fields. Supports bulk creation of up to 100 projects in a single request. Project Tracking:
- By Project: Use `/project/billable` field, do not pass `/project/taskIds`
- By Task: Use `/project/taskIds` field, do not pass `/project/billable`
Note: Projects are created as `active` by default. To update the status, use archive/restore endpoints
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- For custom fields, use the Examples > Request Example > Create project with custom fields and copy to an external API client tool to change parameters.
- [Update Project](https://apidocs.hibob.com/reference/patch_attendance-projects-projectid.md): Update an existing project with the fields specified in the request body. Note: The `/project/status` field cannot be updated via this endpoint. Use archive/restore endpoints instead.
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- For custom fields, use the Examples > Request Example > Update project with fields and copy to an external API client tool to change parameters.
- [Archive Project](https://apidocs.hibob.com/reference/patch_attendance-projects-projectid-archive.md): Archive a project by setting its status to "archived". Archived projects remain stored and queryable, but are not available for selection when adding new attendance entries.
- [Restore Project](https://apidocs.hibob.com/reference/patch_attendance-projects-projectid-restore.md): Restore a project by setting its status to "active". This makes the project available for selection when adding new attendance entries.
- [Get Project Client Metadata](https://apidocs.hibob.com/reference/get_attendance-project-clients-metadata.md): Returns the project client fields (out-of-the-box only) fields and custom fields. Use the field ID in fields and filters when calling the project client search endpoint.
- [Search Project Clients](https://apidocs.hibob.com/reference/post_attendance-project-clients-search.md): This endpoint allows you to retrieve project client data based on specified filters. Please note that this endpoint requires body parameters, which is why it utilizes a POST request for a read operation. Before using this endpoint:
- Explore the Attendance API for more details on usage, rate limits, permissions, and more.
- Only project client fields mentioned in the `fields` parameter are returned. Use project client metadata endpoint to get the field IDs.
- Pagination note: Pagination parameters are currently accepted but not enforced. The response includes all matching results regardless of the `limit` or `cursor` values. Pagination will be implemented in a future version to limit results per page. To learn more, see Pagination in Bob’s API.
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- [Get Project Task Metadata](https://apidocs.hibob.com/reference/get_attendance-project-tasks-metadata.md): Returns the project task fields (out-of-the-box only). Use the field ID in fields and filters when calling the project task search endpoint.
- [Search Project Tasks](https://apidocs.hibob.com/reference/post_attendance-project-tasks-search.md): This endpoint allows you to retrieve project task data based on specified filters. Explore the Attendance API for more details on usage, rate limits, permissions, and more.
Notes:
- Only project task fields mentioned in the `fields` parameter are returned. Use project task metadata endpoint to get the field IDs.
- By default, only active project tasks will be retrieved. To fetch archived tasks, filter by `status` equals `archived`.
- Pagination parameters are currently accepted but not enforced. The response includes all matching results regardless of the `limit` or `cursor` values. Pagination will be implemented in a future version to limit results per page. To learn more, see Pagination in Bob’s API.
- This endpoint requires body parameters, which is why it utilizes a POST request for a read operation.
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- [Create Project Task(s)](https://apidocs.hibob.com/reference/post_attendance-project-tasks.md): Create one or more project tasks with the specified fields. Supports bulk creation of up to 100 tasks in a single request. Note: Tasks are created as `active` by default. To update the status, use archive/restore endpoints
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.
- [Archive Project Task](https://apidocs.hibob.com/reference/patch_attendance-project-tasks-taskid-archive.md): Archive a project task by setting its status to "archived". Archived tasks remain stored and queryable, but are not available for selection when adding new attendance entries.
- [Restore Project Task](https://apidocs.hibob.com/reference/patch_attendance-project-tasks-taskid-restore.md): Restore a project task by setting its status to "active". This makes the task available for selection when adding new attendance entries.
- [Update Project Task](https://apidocs.hibob.com/reference/put_attendance-project-tasks-taskid.md): Update an existing project task. This endpoint will replace the record with the data in the request payload, so make sure to first read the whole record to avoid data loss. Note: The `/projectTask/status` field cannot be updated via this endpoint. Use archive/restore endpoints instead.
Testing notes:
- Use the testing widget's Try It! option to test this endpoint.
- Use the Examples > Request Example option to see how to initiate body parameters.