Reonic Time Tracking API

Time entries logged against projects. > [!warning] > **Beta:** These endpoints are in beta and may change as the service evolves. Please report issues or unexpected behavior to our team.

Operations 5

GET /timetracking/eventTypes Get time tracking event types #
GET /timetracking List time tracking entries #
POST /timetracking/create Create time tracking entries #
POST /timetracking/{entryId}/update Update time tracking entry #
POST /timetracking/{entryId}/archive Archive or restore time tracking entry #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/reonic-time-tracking-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

reonic-time-tracking-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reonic REST Api v3 Time Tracking API
  description: The Reonic REST API v3 provides programmatic access to create and manage resources.
  version: 3.2.0
  contact:
    email: kontakt@reonic.de
    url: https://reonic.com
    name: Reonic GmbH
servers:
- url: '{apiBaseUrl}/rest/v3/'
security:
- X-Authorization: []
tags:
- name: Time Tracking
  description: 'Time entries logged against projects.


    > [!warning]

    > **Beta:** These endpoints are in beta and may change as the service evolves. Please report issues or unexpected behavior to our team.'
  x-displayName: Time Tracking (BETA)
paths:
  /timetracking/eventTypes:
    get:
      summary: Get time tracking event types
      description: 'Get all time tracking event types, optionally including archived ones.


        **Allowed API keys:** Read-only, Read and Write'
      tags:
      - Time Tracking
      x-badges:
      - name: BETA
        position: before
        color: '#ea580c'
      parameters:
      - schema:
          type:
          - boolean
          - 'null'
          default: false
        required: false
        name: showArchived
        in: query
      - schema:
          type: string
          example: no-cache
        required: false
        name: Reonic-Cache-Control
        in: header
        description: Set to 'no-cache' to bypass the 1-hour response cache and force a fresh read. The fresh response is then written back to the cache for subsequent callers. Forced refreshes count against the uncached rate-limit bucket (30/min); only cache hits count against the cached bucket (500/min).
      responses:
        '200':
          description: Array of event types
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TimetrackingEventType'
                    description: List of items
                required:
                - data
      operationId: getTimetrackingEventTypes
      x-operation-id-source: derived
  /timetracking:
    get:
      summary: List time tracking entries
      description: 'List time tracking entries with filters and pagination. Page size is fixed at 50.


        **Allowed API keys:** Read-only, Read and Write'
      tags:
      - Time Tracking
      x-badges:
      - name: BETA
        position: before
        color: '#ea580c'
      parameters:
      - schema:
          type: integer
          minimum: 1
          default: 1
          description: 'Page number, starting from 1. Default: 1.'
        required: false
        description: 'Page number, starting from 1. Default: 1.'
        name: page
        in: query
      - schema:
          type:
          - boolean
          - 'null'
          default: false
        required: false
        name: archived
        in: query
      - schema:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          maxItems: 50
          description: Comma-separated list or repeated query param.
        required: false
        description: Comma-separated list or repeated query param.
        name: userIds
        in: query
      - schema:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uuid
          maxItems: 50
          description: Comma-separated list or repeated query param.
        required: false
        description: Comma-separated list or repeated query param.
        name: eventTypeIds
        in: query
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        required: false
        name: parentId
        in: query
      - schema:
          type: string
          enum:
          - residentialProject
          - commercialProject
        required: false
        name: parentType
        in: query
      - schema:
          type:
          - string
          - 'null'
          format: date-time
          description: Filter records where startAt is after this datetime (exclusive)
          example: '2026-01-01T15:30:00.000Z'
        required: false
        description: Filter records where startAt is after this datetime (exclusive)
        name: startAt.gt
        in: query
      - schema:
          type:
          - string
          - 'null'
          format: date-time
          description: Filter records where startAt is before this datetime (exclusive)
          example: '2026-01-01T15:30:00.000Z'
        required: false
        description: Filter records where startAt is before this datetime (exclusive)
        name: startAt.lt
        in: query
      - schema:
          type: string
          example: no-cache
        required: false
        name: Reonic-Cache-Control
        in: header
        description: Set to 'no-cache' to bypass the 1-hour response cache and force a fresh read. The fresh response is then written back to the cache for subsequent callers. Forced refreshes count against the uncached rate-limit bucket (30/min); only cache hits count against the cached bucket (500/min).
      responses:
        '200':
          description: Paginated time tracking entries
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TimetrackingEntry'
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                        minimum: 1
                        description: Current page number
                      perPage:
                        type: integer
                        minimum: 1
                        description: Number of items per page
                      total:
                        type: integer
                        minimum: 0
                        description: Total number of items across all pages
                      totalPages:
                        type: integer
                        minimum: 1
                      next:
                        type:
                        - string
                        - 'null'
                        description: Path to the next page, or null if there is no next page
                      prev:
                        type:
                        - string
                        - 'null'
                        description: Path to the previous page, or null if there is no previous page
                    required:
                    - page
                    - perPage
                    - total
                    - totalPages
                    - next
                    - prev
                required:
                - data
                - pagination
      operationId: getTimetracking
      x-operation-id-source: derived
  /timetracking/create:
    post:
      summary: Create time tracking entries
      description: 'Bulk create one or more time tracking entries.


        **Allowed API keys:** Read and Write'
      tags:
      - Time Tracking
      x-badges:
      - name: BETA
        position: before
        color: '#ea580c'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                entries:
                  type: array
                  items:
                    type: object
                    properties:
                      startAt:
                        type: string
                        format: date-time
                        example: '2026-01-01T15:30:00.000Z'
                      endAt:
                        type: string
                        format: date-time
                        example: '2026-01-01T15:30:00.000Z'
                      timestamp:
                        type: string
                        format: date-time
                        example: '2026-01-01T15:30:00.000Z'
                      userId:
                        type: string
                        format: uuid
                        example: 123e4567-e89b-12d3-a456-426614174000
                      comment:
                        type: string
                        maxLength: 4000
                      typeId:
                        type: string
                        format: uuid
                        example: 123e4567-e89b-12d3-a456-426614174000
                      parentId:
                        type: string
                        format: uuid
                        example: 123e4567-e89b-12d3-a456-426614174000
                      parentType:
                        type: string
                        enum:
                        - residentialProject
                        - commercialProject
                      breaks:
                        type: array
                        items:
                          type: object
                          properties:
                            start:
                              type: string
                              format: date-time
                              example: '2026-01-01T15:30:00.000Z'
                            end:
                              type: string
                              format: date-time
                              example: '2026-01-01T15:30:00.000Z'
                          required:
                          - start
                          - end
                          additionalProperties: false
                        maxItems: 100
                      latLng:
                        type: object
                        properties:
                          lat:
                            type: number
                            minimum: -90
                            maximum: 90
                          lng:
                            type: number
                            minimum: -180
                            maximum: 180
                        required:
                        - lat
                        - lng
                        additionalProperties: false
                    required:
                    - startAt
                    - endAt
                    - timestamp
                    - userId
                    additionalProperties: false
                  minItems: 1
                  maxItems: 100
              required:
              - entries
              additionalProperties: false
      responses:
        '201':
          description: The created entries
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TimetrackingEntry'
                    description: List of items
                required:
                - data
      operationId: postTimetrackingCreate
      x-operation-id-source: derived
  /timetracking/{entryId}/update:
    post:
      summary: Update time tracking entry
      description: 'Update an existing time tracking entry. Omit fields to leave them unchanged.


        **Allowed API keys:** Read and Write'
      tags:
      - Time Tracking
      x-badges:
      - name: BETA
        position: before
        color: '#ea580c'
      parameters:
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        required: true
        name: entryId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                startAt:
                  type: string
                  format: date-time
                  example: '2026-01-01T15:30:00.000Z'
                endAt:
                  type: string
                  format: date-time
                  example: '2026-01-01T15:30:00.000Z'
                timestamp:
                  type: string
                  format: date-time
                  example: '2026-01-01T15:30:00.000Z'
                userId:
                  type: string
                  format: uuid
                  example: 123e4567-e89b-12d3-a456-426614174000
                comment:
                  type:
                  - string
                  - 'null'
                  maxLength: 4000
                typeId:
                  type: string
                  format: uuid
                  example: 123e4567-e89b-12d3-a456-426614174000
                parentId:
                  type: string
                  format: uuid
                  example: 123e4567-e89b-12d3-a456-426614174000
                parentType:
                  type: string
                  enum:
                  - residentialProject
                  - commercialProject
                breaks:
                  type: array
                  items:
                    type: object
                    properties:
                      start:
                        type: string
                        format: date-time
                        example: '2026-01-01T15:30:00.000Z'
                      end:
                        type: string
                        format: date-time
                        example: '2026-01-01T15:30:00.000Z'
                    required:
                    - start
                    - end
                    additionalProperties: false
                  maxItems: 100
                latLng:
                  type: object
                  properties:
                    lat:
                      type: number
                      minimum: -90
                      maximum: 90
                    lng:
                      type: number
                      minimum: -180
                      maximum: 180
                  required:
                  - lat
                  - lng
                  additionalProperties: false
              additionalProperties: false
      responses:
        '200':
          description: The updated entry
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/TimetrackingEntry'
                required:
                - data
      operationId: postTimetrackingByEntryIdUpdate
      x-operation-id-source: derived
  /timetracking/{entryId}/archive:
    post:
      summary: Archive or restore time tracking entry
      description: 'Archive or restore a time tracking entry.


        **Allowed API keys:** Read and Write'
      tags:
      - Time Tracking
      x-badges:
      - name: BETA
        position: before
        color: '#ea580c'
      parameters:
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        required: true
        name: entryId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                archive:
                  type: boolean
              required:
              - archive
              additionalProperties: false
      responses:
        '200':
          description: The updated entry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimetrackingEntry'
      operationId: postTimetrackingByEntryIdArchive
      x-operation-id-source: derived
components:
  schemas:
    TimetrackingEventType:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
        position:
          type: number
        textColor:
          type: string
        backgroundColor:
          type: string
        archivedAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
      required:
      - id
      - name
      - position
      - textColor
      - backgroundColor
      - archivedAt
    TimetrackingEntry:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        trackingId:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        userId:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        createdAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        createdById:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        updatedAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        updatedById:
          type:
          - string
          - 'null'
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        archivedAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        startAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        endAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        workingTimeMinutes:
          type:
          - number
          - 'null'
        breakDurationMinutes:
          type:
          - number
          - 'null'
        breaks:
          type: array
          items:
            type: object
            properties:
              start:
                type:
                - string
                - 'null'
                format: date-time
                example: '2026-01-01T15:30:00.000Z'
              end:
                type:
                - string
                - 'null'
                format: date-time
                example: '2026-01-01T15:30:00.000Z'
            required:
            - start
            - end
        comment:
          type:
          - string
          - 'null'
        typeId:
          type:
          - string
          - 'null'
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        type:
          allOf:
          - $ref: '#/components/schemas/TimetrackingEventType'
          - type:
            - object
            - 'null'
        parentId:
          type:
          - string
          - 'null'
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        parentType:
          type:
          - string
          - 'null'
          enum:
          - residentialProject
          - commercialProject
          - null
        parentName:
          type:
          - string
          - 'null'
      required:
      - id
      - trackingId
      - userId
      - createdAt
      - createdById
      - updatedAt
      - updatedById
      - archivedAt
      - startAt
      - endAt
      - workingTimeMinutes
      - breakDurationMinutes
      - breaks
      - comment
      - typeId
      - type
      - parentId
      - parentType
      - parentName
  securitySchemes:
    X-Authorization:
      type: apiKey
      in: header
      name: X-Authorization
x-tagGroups:
- name: People
  tags:
  - Contacts
  - Users
  - Teams
- name: Projects
  tags:
  - Residential Projects
  - Commercial Projects
- name: Working on a project
  tags:
  - Notes
  - Tasks
  - Files
  - File Folders
  - Activities
  - Time Tracking
  - Checklists
  - Checklist Templates
  - Signature Requests
- name: Calendar
  tags:
  - Calendars
  - Calendar Categories
  - Appointments
- name: Catalog
  tags:
  - Components
  - Planning Templates
  - Planning Packages
  - Offer Templates
- name: Workspace setup
  tags:
  - Kanban Boards
  - Kanban Columns
  - Tags
  - Lead Sources
- name: Wiki
  tags:
  - Wiki
- name: Services
  tags:
  - Photogrammetry
- name: API helpers
  tags:
  - Upload
  - Links
- name: Integrations
  tags:
  - Webhooks
- name: Guides
  tags:
  - Migrating from API v2 to v3
  - Changelog