---
updatedAt: 2026-01-21T11:49:48.000Z
---

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

# Fetch attendance summaries

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). <p><b>Before using this endpoint:</b></p> <ul> <li>Explore the <a href="/docs/explore-attendance-api" target="_blank">Attendance API</a> for more details on usage, rate limits, permissions, and more.</li> <li>You must provide both `dateRange` and `employeeId` filters in the request.</li> <li>Only fields mentioned in the `fields` parameter are returned in the response.</li> <li><b>Pagination:</b> 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 <a href="https://apidocs.hibob.com/docs/pagination" target="_blank">Pagination in Bob's API</a>.</li> </ul> <p><b>Testing notes</b>:</p>
  <ul>
  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>
  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>
  </ul>


# OpenAPI definition

```json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Attendance API",
    "contact": {
      "name": "Hi Bob, Inc."
    },
    "description": "Public API for importing attendance entries and managing attendance projects, tasks, and clients. Supports detailed field metadata and flexible filtering.",
    "license": {
      "name": "Proprietary",
      "url": "https://apidocs.hibob.com/docs/api-terms-of-use"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.hibob.com/v1",
      "description": "Production"
    },
    {
      "url": "https://api.sandbox.hibob.com/v1",
      "description": "Sandbox"
    }
  ],
  "x-readme": {
    "metrics-enabled": false
  },
  "tags": [
    {
      "name": "Attendance",
      "description": "Access attendance entries"
    }
  ],
  "paths": {
    "/attendance/summaries/search": {
      "post": {
        "operationId": "post_attendance-summaries-search",
        "tags": [
          "Attendance"
        ],
        "summary": "Fetch attendance summaries",
        "description": "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).\n\nThis is a read operation that uses POST because it requires a structured request body (filters, field selection, and pagination parameters). <p><b>Before using this endpoint:</b></p> <ul> <li>Explore the <a href=\"/docs/explore-attendance-api\" target=\"_blank\">Attendance API</a> for more details on usage, rate limits, permissions, and more.</li> <li>You must provide both `dateRange` and `employeeId` filters in the request.</li> <li>Only fields mentioned in the `fields` parameter are returned in the response.</li> <li><b>Pagination:</b> 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 <a href=\"https://apidocs.hibob.com/docs/pagination\" target=\"_blank\">Pagination in Bob's API</a>.</li> </ul> <p><b>Testing notes</b>:</p>\n  <ul>\n  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>\n  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>\n  </ul>\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendanceSummarySearchRequest"
              },
              "examples": {
                "basicSummarySearch": {
                  "summary": "Basic summary search",
                  "description": "Search for attendance summaries with basic fields",
                  "value": {
                    "fields": [
                      "/attendanceSummary/employeeId",
                      "/attendanceSummary/dateRange",
                      "/attendanceSummary/hoursWorked",
                      "/attendanceSummary/payableHours"
                    ],
                    "filters": [
                      {
                        "fieldId": "/attendanceSummary/dateRange",
                        "operator": "equals",
                        "values": [
                          "2025-01-01",
                          "2025-01-31"
                        ]
                      },
                      {
                        "fieldId": "/attendanceSummary/employeeId",
                        "operator": "equals",
                        "values": [
                          "123456789"
                        ]
                      }
                    ],
                    "limit": 100
                  }
                },
                "detailedSummarySearch": {
                  "summary": "Detailed summary with overtime",
                  "description": "Search including overtime and break information",
                  "value": {
                    "fields": [
                      "/attendanceSummary/employeeId",
                      "/attendanceSummary/dateRange",
                      "/attendanceSummary/hoursWorked",
                      "/attendanceSummary/potentialHours",
                      "/attendanceSummary/payableHours",
                      "/attendanceSummary/regularHours",
                      "/attendanceSummary/overtimeHours",
                      "/attendanceSummary/doubleOvertimeHours",
                      "/attendanceSummary/unpaidBreaks",
                      "/attendanceSummary/premiumPayEligibleHours",
                      "/attendanceSummary/specialRateEligibleHours",
                      "/attendanceSummary/workedRegularHours"
                    ],
                    "filters": [
                      {
                        "fieldId": "/attendanceSummary/dateRange",
                        "operator": "equals",
                        "values": [
                          "2025-01-01",
                          "2025-01-31"
                        ]
                      },
                      {
                        "fieldId": "/attendanceSummary/employeeId",
                        "operator": "equals",
                        "values": [
                          "123456789",
                          "987654321"
                        ]
                      }
                    ],
                    "limit": 50
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Attendance summaries matching the search criteria",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttendanceSummarySearchResponse"
                },
                "examples": {
                  "summaryResponse": {
                    "summary": "Summary search response",
                    "description": "Response showing aggregated attendance summary",
                    "value": {
                      "items": [
                        {
                          "objectType": "attendanceSummary",
                          "fields": {
                            "/attendanceSummary/employeeId": {
                              "value": "123456789"
                            },
                            "/attendanceSummary/dateRange": {
                              "value": [
                                "2025-01-01",
                                "2025-01-31"
                              ]
                            },
                            "/attendanceSummary/hoursWorked": {
                              "value": 168.5
                            },
                            "/attendanceSummary/payableHours": {
                              "value": 170
                            },
                            "/attendanceSummary/regularHours": {
                              "value": 160
                            },
                            "/attendanceSummary/overtimeHours": {
                              "value": 8.5
                            },
                            "/attendanceSummary/unpaidBreaks": {
                              "value": 1.5
                            },
                            "/attendanceSummary/workedRegularHours": {
                              "value": 155
                            }
                          }
                        }
                      ],
                      "response_metadata": {
                        "next_cursor": "eyJlbXBsb3llZUlkIjoiMTIzNDU2Nzg5In0="
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is malformed or includes invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Check your service user credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "The service user or token is missing the required permissions to access the requested data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Feature not enabled for this company",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded - see <a href=\"https://apidocs.hibob.com/reference/attendance#rate-limiting\">Rate limits</a>",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected error occurred. Try again or contact support if the issue persists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "basic": []
          },
          {
            "Bearer": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basic": {
        "type": "http",
        "scheme": "basic",
        "description": "Basic HTTP authentication using service user credentials"
      },
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "OAuth 2.0",
        "description": "OAuth 2.0 authentication using an Access Token is available for registered partners only.  Try It! does not support the full HiBob OAuth flow. You can follow <a href=\"https://apidocs.hibob.com/reference/oauth-20#testing-from-the-public-api-reference\" target=\"_blank\">these steps</a> to complete the OAuth 2.0 flow in Postman and then paste the token here."
      }
    },
    "schemas": {
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Error key identifier"
          },
          "error": {
            "type": "string",
            "description": "Human-readable error message"
          },
          "args": {
            "type": "array",
            "description": "Optional error arguments providing additional context",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AttendanceSummarySearchRequest": {
        "type": "object",
        "description": "Request schema for searching attendance summaries",
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "/attendanceSummary/employeeId",
                "/attendanceSummary/dateRange",
                "/attendanceSummary/hoursWorked",
                "/attendanceSummary/potentialHours",
                "/attendanceSummary/payableHours",
                "/attendanceSummary/regularHours",
                "/attendanceSummary/overtimeHours",
                "/attendanceSummary/doubleOvertimeHours",
                "/attendanceSummary/unpaidBreaks",
                "/attendanceSummary/premiumPayEligibleHours",
                "/attendanceSummary/specialRateEligibleHours",
                "/attendanceSummary/totalOvertimeHours",
                "/attendanceSummary/offset",
                "/attendanceSummary/workedRegularHours"
              ],
              "description": "Field ID. ootb fields are listed above. Custom fields following the pattern `/attendanceSummary/field_<number>` (e.g., `/attendanceSummary/field_591`) are also supported - use the metadata endpoint to get the field IDs, and Postman to test the endpoint with custom fields if needed."
            },
            "contains": {
              "const": "/attendanceSummary/employeeId"
            },
            "minContains": 1,
            "description": "List of field IDs to include in the response. Standard fields are listed above. Custom fields following the pattern `/attendanceSummary/field_<number>` are also supported. **Required**: The array must include `/attendanceSummary/employeeId`.",
            "default": [
              "/attendanceSummary/employeeId",
              "/attendanceSummary/dateRange",
              "/attendanceSummary/hoursWorked",
              "/attendanceSummary/payableHours"
            ],
            "example": [
              "/attendanceSummary/employeeId",
              "/attendanceSummary/dateRange",
              "/attendanceSummary/hoursWorked",
              "/attendanceSummary/payableHours"
            ]
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "fieldId",
                "operator",
                "values"
              ],
              "properties": {
                "fieldId": {
                  "type": "string",
                  "enum": [
                    "/attendanceSummary/dateRange",
                    "/attendanceSummary/employeeId"
                  ],
                  "description": "Field ID for the filter. Use `/attendanceSummary/dateRange` for date range filter or `/attendanceSummary/employeeId` for employee ID filter."
                },
                "operator": {
                  "type": "string",
                  "enum": [
                    "equals"
                  ],
                  "description": "Filter operator. Only `equals` is supported."
                },
                "values": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Filter values. For `dateRange` filter: provide exactly 2 dates [startDate, endDate] in ISO format (YYYY-MM-DD). For `employeeId` filter: provide one or more employee IDs."
                }
              }
            },
            "description": "List of filters to apply. You must provide exactly two filters: 1. One `dateRange` filter (fieldId: `/attendanceSummary/dateRange`) with exactly 2 dates [startDate, endDate] 2. One `employeeId` filter (fieldId: `/attendanceSummary/employeeId`) with one or more employee IDs",
            "minItems": 2,
            "maxItems": 2,
            "default": [
              {
                "fieldId": "/attendanceSummary/dateRange",
                "operator": "equals",
                "values": [
                  "2025-01-01",
                  "2025-01-31"
                ]
              },
              {
                "fieldId": "/attendanceSummary/employeeId",
                "operator": "equals",
                "values": [
                  "123456789"
                ]
              }
            ],
            "example": [
              {
                "fieldId": "/attendanceSummary/dateRange",
                "operator": "equals",
                "values": [
                  "2025-01-01",
                  "2025-01-31"
                ]
              },
              {
                "fieldId": "/attendanceSummary/employeeId",
                "operator": "equals",
                "values": [
                  "123456789"
                ]
              }
            ]
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "default": 100,
            "description": "Maximum number of items to return per page. Defaults to 100."
          },
          "cursor": {
            "type": "string",
            "description": "Opaque cursor for pagination. Use the value from `response_metadata.next_cursor` in the previous response to get the next page. Do not provide in the first request."
          },
          "includeHumanReadable": {
            "type": "boolean",
            "default": true,
            "description": "This property is not currently supported for this endpoint.  Whether to include human-readable formatted values alongside raw values in the response"
          }
        },
        "required": [
          "fields",
          "filters"
        ]
      },
      "AttendanceSummarySearchResponseObject": {
        "type": "object",
        "properties": {
          "objectType": {
            "type": "string",
            "enum": [
              "attendanceSummary"
            ],
            "description": "Type of the object"
          },
          "fields": {
            "type": "object",
            "description": "Attendance summary fields. Only fields requested in the search are included.",
            "properties": {
              "/attendanceSummary/employeeId": {
                "type": "object",
                "description": "The employee ID",
                "properties": {
                  "value": {
                    "type": "string"
                  }
                }
              },
              "/attendanceSummary/dateRange": {
                "type": "object",
                "description": "The date range that was requested for this summary",
                "properties": {
                  "value": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array with two dates [startDate, endDate] in ISO format"
                  }
                }
              },
              "/attendanceSummary/hoursWorked": {
                "type": "object",
                "description": "Total hours worked in the date range",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/potentialHours": {
                "type": "object",
                "description": "Total potential hours based on attendance policy",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/payableHours": {
                "type": "object",
                "description": "Total payable hours (worked hours + adjustments)",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/regularHours": {
                "type": "object",
                "description": "Regular working hours (excluding overtime)",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/overtimeHours": {
                "type": "object",
                "description": "Overtime hours",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/doubleOvertimeHours": {
                "type": "object",
                "description": "Double overtime hours",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/unpaidBreaks": {
                "type": "object",
                "description": "Total unpaid break hours deducted",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/premiumPayEligibleHours": {
                "type": "object",
                "description": "Hours eligible for premium pay (e.g., bank holidays)",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/specialRateEligibleHours": {
                "type": "object",
                "description": "Hours eligible for premium pay on days covered by the policy’s special day-of-week rate (for example configured weekends or other off days). If that day is a bank holiday, bank holiday premium rules apply instead.",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/totalOvertimeHours": {
                "type": "object",
                "description": "Total overtime hours (overtime + double overtime)",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/offset": {
                "type": "object",
                "description": "Difference between potential hours and payable hours",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              },
              "/attendanceSummary/workedRegularHours": {
                "type": "object",
                "description": "Regular hours actually worked (excluding overtime)",
                "properties": {
                  "value": {
                    "type": "number",
                    "format": "double"
                  }
                }
              }
            }
          }
        }
      },
      "AttendanceSummarySearchResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttendanceSummarySearchResponseObject"
            },
            "description": "Array of attendance summary objects matching the search criteria"
          },
          "response_metadata": {
            "type": "object",
            "properties": {
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Opaque cursor for the next page. Provide this value in the `cursor` parameter of the next request to get the next page. When null, there are no more pages."
              }
            }
          }
        }
      }
    }
  }
}
```