The purpose of this API is to retrieve employee attendance logs within a specified date range, with an optional employee filter. Results are ordered by log_date_time ascending.
Request
Property
Value
API Name
AttendanceLog
URL
https://your_account.modulus.biz/api/hr/v1/AttendanceLog
Method
GET
Source
Third Party Server
Recipient
modulus® Server
Accept
application/json
Request Headers
Header
Required
Description
Authorization
Yes
Bearer token for authentication. Format: Bearer <token>
Accept
Yes
application/json
Query String Parameters
Parameter
Required
Type
Description
employee_code
No
String
Filter by employee code. If omitted, logs for all employees are returned.
date_from
Yes
Date
Start date in YYYY-MM-DD format (inclusive).
date_to
Yes
Date
End date in YYYY-MM-DD format (inclusive). May equal date_from.
page_number
No
Integer
Page number. Default = 1.
page_size
No
Integer
Number of records per page. Default = 50.
Responses
HTTP Status
result
title
message
object
200 OK
true
Success
Attendance logs listed successfully.
meta_data and data
200 OK
true
Success
No attendance logs found matching your conditions.
meta_data and empty data array
400 Bad Request
false
Invalid Request
date_to is required.
date_from is required.
null
400 Bad Request
false
Invalid Request
date_from must be earlier than or equal to date_to.
null
Example 1 – All Employees
Request
curl --request GET 'https://your_account.modulus.biz/api/hr/v1/AttendanceLog?date_from=2026-09-01&date_to=2026-09-30&page_number=1&page_size=50' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'
200 OK
{
"result": true,
"title": "Success",
"message": "Attendance logs listed successfully.",
"object": {
"meta_data": {
"page_count": 3,
"page_number": 1,
"page_size": 50,
"record_count": 127
},
"data": [
{
"employee_code": "0001",
"log_date_time": "2026-09-15 08:57",
"collected_on": "2026-09-15 08:57:33",
"source": "GPS",
"status": "PROCESSED",
"direction": "IN",
"device": null,
"location": {
"id": 3,
"name": "Cairo HQ"
},
"coordinate": {
"longitude": 31.2357123,
"latitude": 30.0444196
},
"notes": null
},
{
"employee_code": "0002",
"log_date_time": "2026-09-15 09:02",
"collected_on": "2026-09-15 09:02:18",
"source": "DEVICE",
"status": "PROCESSED",
"direction": "IN",
"device": {
"id": 8,
"label": "Main Entrance"
},
"location": {
"id": 3,
"name": "Cairo HQ"
},
"coordinate": null,
"notes": null
}
]
}
}
Example 2 – One Employee
Request
curl --request GET 'https://your_account.modulus.biz/api/hr/v1/AttendanceLog?employee_code=0001&date_from=2026-09-01&date_to=2026-09-30&page_number=1&page_size=50' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'
200 OK
{
"result": true,
"title": "Success",
"message": "Attendance logs listed successfully.",
"object": {
"meta_data": {
"page_count": 1,
"page_number": 1,
"page_size": 50,
"record_count": 1
},
"data": [
{
"employee_code": "0001",
"log_date_time": "2026-09-15 08:57",
"collected_on": "2026-09-15 08:57:33",
"source": "GPS",
"status": "PROCESSED",
"direction": "IN",
"device": null,
"location": {
"id": 3,
"name": "Cairo HQ"
},
"coordinate": {
"longitude": 31.2357123,
"latitude": 30.0444196
},
"notes": null
}
]
}
}
Example 3 – No Matching Logs
Request
curl --request GET 'https://your_account.modulus.biz/api/hr/v1/AttendanceLog?employee_code=9999&date_from=2026-09-01&date_to=2026-09-30' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'
200 OK
{
"result": true,
"title": "Success",
"message": "No attendance logs found matching your conditions.",
"object": {
"meta_data": {
"page_count": 0,
"page_number": 1,
"page_size": 50,
"record_count": 0
},
"data": []
}
}
Example 4 – Missing Date
Request
curl --request GET 'https://your_account.modulus.biz/api/hr/v1/AttendanceLog?date_from=2026-09-01' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'
400 Bad Request
{
"result": false,
"title": "Invalid Request",
"message": "date_to is required.",
"object": null
}
Example 5 – Invalid Date Range
Request
curl --request GET 'https://your_account.modulus.biz/api/hr/v1/AttendanceLog?date_from=2026-09-30&date_to=2026-09-01' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'
400 Bad Request
{
"result": false,
"title": "Invalid Request",
"message": "date_from must be earlier than or equal to date_to.",
"object": null
}
Response Fields
Field
Type
Nullable
Description
employee_code
String
No
Employee code; leading zeros are significant.
log_date_time
DateTime
No
Effective log date/time, YYYY-MM-DD HH:mm.
collected_on
DateTime
No
Collection/receipt date/time, YYYY-MM-DD HH:mm:ss.
source
String
No
Attendance log source.
status
String
No
Current processing status.
direction
String
No
Punch direction.
device
Object
Yes
Device reference {id, label}.
location
Object
Yes
Location reference {id, name}.
coordinate
Object
Yes
GPS coordinate {longitude, latitude}.
notes
String
Yes
Log notes.
Allowed Values
Field
Values
source
DEVICE, IMPORT, MANUAL, GPS, APP
status
PENDING, SKIPPED, PROCESSED, DISABLED, HOLD, SUSPECT
direction
NA, IN, OUT
Integration Notes
Both date parameters are required and inclusive; single-day requests are valid.
Results are ordered by log_date_time ascending.
Date/time values use the configured modulus® account timezone.
device, location, and coordinate can be null.
Empty results return an empty data array with pagination metadata.
Doc navigation ← API: List Attendance Devices API: List Employees →