Reports
Reports provide aggregated views of time tracking data for analysis, payroll processing, and management oversight. Multiple report types are available, each offering different perspectives on your organization's data.
Monthly Report
Get a monthly summary of working hours per employee, including target hours, actual hours, and balance information.
Query Parameters
- Name
year- Type
- integer
- Description
The year to report on. Defaults to the current year.
- Name
month- Type
- integer
- Description
The month to report on (1-12). Defaults to the current month.
- Name
employees- Type
- string
- Description
Filter by employee IDs, pipe-separated.
- Name
employee_groups- Type
- string
- Description
Filter by employee group IDs, pipe-separated.
- Name
emails- Type
- string
- Description
Filter by employee email addresses, pipe-separated.
- Name
external_ids- Type
- string
- Description
Filter by external IDs, pipe-separated.
- Name
q- Type
- string
- Description
Search by employee name or RFID token.
- Name
incomplete_days- Type
- boolean
- Description
Filter employees with incomplete days only.
- Name
show-inactive- Type
- boolean
- Description
Include inactive employees.
Request
curl -X GET "https://api.zeitstrom.com/api/v2/reports/monthly/?year=2024&month=6" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Response
{
"count": 25,
"results": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"first_name": "Max",
"last_name": "Mustermann",
"email": "max@example.com",
"workmonth": {
"id": "a7b8c9d0-e1f2-3456-abcd-789012345678",
"year": 2024,
"month": 6,
"workday_count": 20,
"incomplete_days_count": 0,
"worktime_count": 576000,
"target_worktime": 576000,
"worktime_balance": 0
}
}
]
}
Additional Actions
Get Report Metadata
curl -X GET "https://api.zeitstrom.com/api/v2/reports/monthly/meta/" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Generate Print Report
curl -X POST "https://api.zeitstrom.com/api/v2/reports/monthly/print/" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Employee Report
Get detailed workday-level reports for employees within a date range, including timespans, breaks, and notes.
Query Parameters
- Name
daterange- Type
- string
- Description
Date range:
YYYY-MM-DD|YYYY-MM-DD. Defaults to the last 30 days.
- Name
employee_groups- Type
- string
- Description
Filter by employee group IDs, pipe-separated.
- Name
projects- Type
- string
- Description
Filter by project IDs, pipe-separated.
- Name
q- Type
- string
- Description
Search by employee name.
- Name
verbosity- Type
- string
- Description
Use
detailfor extended data including nested timespans per workday.
Request
curl -X GET "https://api.zeitstrom.com/api/v2/reports/employees/?daterange=2024-06-01|2024-06-30&verbosity=detail" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Employee Activity
Get the current activity status for all employees (working, absent, not working, etc.). Useful for building real-time dashboards.
Query Parameters
- Name
states- Type
- string
- Description
Filter by state:
working,absence,no-working-day, ornull.
- Name
employee_groups- Type
- string
- Description
Filter by employee group IDs.
- Name
verbosity- Type
- string
- Description
Use
detailto include current timespan info, employee name, and group.
Request
curl -X GET "https://api.zeitstrom.com/api/v2/reports/employees/active/?verbosity=detail" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Response
{
"results": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"state": "working",
"first_name": "Max",
"last_name": "Mustermann",
"employee_group_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"employee_group": "Engineering",
"timespan": {
"checkin_time": "2024-06-20T08:00:00Z",
"project_id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890"
}
}
]
}
Project Report
Get time spent per project within a date range.
Query Parameters
- Name
daterange- Type
- string
- Description
Date range:
YYYY-MM-DD|YYYY-MM-DD. Required.
- Name
projects- Type
- string
- Description
Filter by project IDs, pipe-separated.
- Name
employees- Type
- string
- Description
Filter by employee IDs, pipe-separated.
Request
curl -X GET "https://api.zeitstrom.com/api/v2/reports/projects/?daterange=2024-06-01|2024-06-30" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Response
{
"count": 5,
"results": [
{
"id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"name": "Website Redesign",
"code": "WEB-01",
"color": "#2196F3",
"duration": 259200,
"daterange_from": "2024-06-03",
"daterange_to": "2024-06-28"
}
]
}
Project Report by Employee
Get time spent on projects broken down by employee.
Request
curl -X GET "https://api.zeitstrom.com/api/v2/reports/projects/employees/?daterange=2024-06-01|2024-06-30" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Export as CSV
curl -X GET "https://api.zeitstrom.com/api/v2/reports/projects/employees/custom-export/?daterange=2024-06-01|2024-06-30" \
-H "Authorization: Token <YOUR_API_TOKEN>" \
-o project-report.csv
Absence Report
Get absence statistics in various aggregation modes.
Report Types
Specify the report type by using the resource ID in the URL:
| ID | Description |
|---|---|
annual-aggregate | Absences aggregated by year |
monthly-aggregate | Absences aggregated by month |
absences-list | Flat list of all absences |
Query Parameters
- Name
daterange- Type
- string
- Description
Date range:
YYYY-MM-DD|YYYY-MM-DD. Required.
Annual Aggregate
curl -X GET "https://api.zeitstrom.com/api/v2/reports/absences/annual-aggregate/?daterange=2024-01-01|2024-12-31" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Monthly Aggregate
curl -X GET "https://api.zeitstrom.com/api/v2/reports/absences/monthly-aggregate/?daterange=2024-01-01|2024-12-31" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Absences List
curl -X GET "https://api.zeitstrom.com/api/v2/reports/absences/absences-list/?daterange=2024-01-01|2024-12-31" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Absence reports support multiple output formats. Add &format=csv or &format=xlsx to the query string to download in different formats.