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.

GET/api/v2/reports/monthly/

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>"

GET/api/v2/reports/employees/

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 detail for 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>"

GET/api/v2/reports/employees/active/

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, or null.

  • Name
    employee_groups
    Type
    string
    Description

    Filter by employee group IDs.

  • Name
    verbosity
    Type
    string
    Description

    Use detail to 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"
      }
    }
  ]
}

GET/api/v2/reports/projects/

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"
    }
  ]
}

GET/api/v2/reports/projects/employees/

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

GET/api/v2/reports/absences/

Absence Report

Get absence statistics in various aggregation modes.

Report Types

Specify the report type by using the resource ID in the URL:

IDDescription
annual-aggregateAbsences aggregated by year
monthly-aggregateAbsences aggregated by month
absences-listFlat 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>"

Was this page helpful?