Reonic Activities API

Timeline of events on a project — automatic activity records and manually logged calls and meetings.

Operations 6

GET /activities List activity feed #
GET /activities/manual Get manual activities #
GET /activities/manual/{activityId} Get manual activity #
POST /activities/manual/create Create manual activity #
POST /activities/manual/{activityId}/update Update manual activity #
POST /activities/manual/{activityId}/delete Delete manual activity #

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-activities-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-activities-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reonic REST Api v3 Activities 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: Activities
  description: Timeline of events on a project — automatic activity records and manually logged calls and meetings.
paths:
  /activities:
    get:
      summary: List activity feed
      description: 'Returns the chronological event feed for an entity (or all entities of the calling client) — every status change, file upload, note, tag edit, manual-activity log, and other system-recorded event. Supports filtering by entity, activity kind, and date range, plus standard `page`/`pageSize` pagination.


        **Examples:**

        - Feed for one residential project: `GET /activities?parentId=&parentType=residentialProject&page=1`

        - Status changes across the workspace last week: `GET /activities?type=status&from=2026-04-22T00:00:00Z&to=2026-04-29T00:00:00Z`

        - All manual call/meeting log entries: `GET /activities?type=manualActivity`


        **Allowed API keys:** Read-only, Read and Write'
      tags:
      - Activities
      parameters:
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        required: false
        name: parentId
        in: query
      - schema:
          type: string
          enum:
          - residentialProject
          - commercialProject
          - package
          - solarComponent
          - contact
          - photogrammetryJob
          - user
          example: residentialProject
        required: false
        name: parentType
        in: query
      - schema:
          type: string
          enum:
          - note
          - file
          - task
          - user
          - team
          - status
          - signature
          - tag
          - checklist
          - checklistContainer
          - manualActivity
          - heatpumpSubsidyDe
          - heatpumpSubsidyIt
          - gridRegistrationDeCreated
          - gridRegistrationDeUpdated
          - gridRegistrationItCreated
          - gridRegistrationItUpdated
          - gridRegistrationBrCreated
          - gridRegistrationBrUpdated
          - heatloadRoomScan
          - dealValue
          - closeDate
          - calendarEvent
          - variant
          - timeEntry
          - invoice
          - buildingAddress
          - oilTankRemoval
          - baustellenservice
          description: Filter to a single kind of activity (e.g. `status`, `tag`, `manualActivity`).
        required: false
        description: Filter to a single kind of activity (e.g. `status`, `tag`, `manualActivity`).
        name: type
        in: query
      - schema:
          type: string
          format: date-time
        required: false
        name: from
        in: query
      - schema:
          type: string
          format: date-time
        required: false
        name: to
        in: query
      - 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: integer
          minimum: 1
          maximum: 200
          default: 50
          description: 'Number of items per page. Default: 50. Max: 200.'
        required: false
        description: 'Number of items per page. Default: 50. Max: 200.'
        name: itemsPerPage
        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 activity feed
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Activity'
                  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: getActivities
      x-operation-id-source: derived
  /activities/manual:
    get:
      summary: Get manual activities
      description: 'Returns user-logged calls and meetings recorded against a single Residential Project or Commercial Project entity, ordered most-recent first. Unlike the activity feed (`GET /activities`), this returns the current editable state of each record — including the latest note text — rather than a history of changes.


        **Allowed API keys:** Read-only, Read and Write'
      tags:
      - Activities
      parameters:
      - schema:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        required: true
        name: parentId
        in: query
      - schema:
          type: string
          enum:
          - residentialProject
          - commercialProject
          example: residentialProject
        required: true
        name: parentType
        in: query
      - 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: integer
          minimum: 1
          maximum: 200
          default: 50
          description: 'Number of items per page. Default: 50. Max: 200.'
        required: false
        description: 'Number of items per page. Default: 50. Max: 200.'
        name: itemsPerPage
        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 list of manual activities
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ManualActivity'
                  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: getActivitiesManual
      x-operation-id-source: derived
  /activities/manual/{activityId}:
    get:
      summary: Get manual activity
      description: 'Returns a single user-logged call or meeting by its id, including the current note text, outcome, and edit metadata.


        **Allowed API keys:** Read-only, Read and Write'
      tags:
      - Activities
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: activityId
        in: path
      - 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: The manual activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualActivity'
      operationId: getActivitiesManualByActivityId
      x-operation-id-source: derived
  /activities/manual/create:
    post:
      summary: Create manual activity
      description: 'Records a call or meeting against a Residential Project or Commercial Project entity. The valid `outcome` values depend on `type`: see the `manualActivityOutcome` enum.


        **Allowed API keys:** Read and Write'
      tags:
      - Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                  - call
                  - meeting
                outcome:
                  type: string
                  enum:
                  - rescheduled
                  - completedObjectivesMet
                  - completedPartialProgress
                  - requiresFollowup
                  - cancelled
                  - connectedSuccessfulDiscussion
                  - connectedNeedsFollowup
                  - noAnswer
                  - leftVoicemailMessage
                  - wrongContact
                note:
                  type: string
                  maxLength: 5000
                parentId:
                  type: string
                  format: uuid
                  example: 123e4567-e89b-12d3-a456-426614174000
                parentType:
                  type: string
                  enum:
                  - residentialProject
                  - commercialProject
                  example: residentialProject
              required:
              - type
              - outcome
              - note
              - parentId
              - parentType
      responses:
        '201':
          description: The created manual activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualActivity'
      operationId: postActivitiesManualCreate
      x-operation-id-source: derived
  /activities/manual/{activityId}/update:
    post:
      summary: Update manual activity
      description: 'Replaces a manual activity''s `type`, `outcome`, and `note`. All three are required — there is no partial update.


        **Allowed API keys:** Read and Write'
      tags:
      - Activities
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: activityId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                  - call
                  - meeting
                outcome:
                  type: string
                  enum:
                  - rescheduled
                  - completedObjectivesMet
                  - completedPartialProgress
                  - requiresFollowup
                  - cancelled
                  - connectedSuccessfulDiscussion
                  - connectedNeedsFollowup
                  - noAnswer
                  - leftVoicemailMessage
                  - wrongContact
                note:
                  type: string
                  maxLength: 5000
              required:
              - type
              - outcome
              - note
              additionalProperties: false
      responses:
        '200':
          description: The updated manual activity
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ManualActivity'
                required:
                - data
      operationId: postActivitiesManualByActivityIdUpdate
      x-operation-id-source: derived
  /activities/manual/{activityId}/delete:
    post:
      summary: Delete manual activity
      description: 'Delete a manual activity by its ID.


        **Allowed API keys:** Read and Write'
      tags:
      - Activities
      parameters:
      - schema:
          type: string
          format: uuid
        required: true
        name: activityId
        in: path
      responses:
        '200':
          description: Deletion result
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 123e4567-e89b-12d3-a456-426614174000
                    required:
                    - id
                required:
                - data
      operationId: postActivitiesManualByActivityIdDelete
      x-operation-id-source: derived
components:
  schemas:
    Activity:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        type:
          type: string
          description: Activity template key (e.g. `tagsUpdated`, `noteCreated`).
        associatedType:
          type:
          - string
          - 'null'
          enum:
          - note
          - file
          - task
          - user
          - team
          - status
          - signature
          - tag
          - checklist
          - checklistContainer
          - manualActivity
          - heatpumpSubsidyDe
          - heatpumpSubsidyIt
          - gridRegistrationDeCreated
          - gridRegistrationDeUpdated
          - gridRegistrationItCreated
          - gridRegistrationItUpdated
          - gridRegistrationBrCreated
          - gridRegistrationBrUpdated
          - heatloadRoomScan
          - dealValue
          - closeDate
          - calendarEvent
          - variant
          - timeEntry
          - invoice
          - buildingAddress
          - oilTankRemoval
          - baustellenservice
          - null
        associatedId:
          type:
          - string
          - 'null'
          format: uuid
        parentId:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        parentType:
          type: string
          enum:
          - residentialProject
          - commercialProject
          - package
          - solarComponent
          - contact
          - photogrammetryJob
          - user
          example: residentialProject
        createdAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        createdById:
          type:
          - string
          - 'null'
          format: uuid
      required:
      - id
      - type
      - associatedType
      - associatedId
      - parentId
      - parentType
      - createdAt
      - createdById
    ManualActivity:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        type:
          type: string
          enum:
          - call
          - meeting
        outcome:
          type: string
          enum:
          - rescheduled
          - completedObjectivesMet
          - completedPartialProgress
          - requiresFollowup
          - cancelled
          - connectedSuccessfulDiscussion
          - connectedNeedsFollowup
          - noAnswer
          - leftVoicemailMessage
          - wrongContact
        note:
          type:
          - string
          - 'null'
        parentId:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        parentType:
          type: string
          enum:
          - residentialProject
          - commercialProject
          example: residentialProject
        createdAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        createdById:
          type:
          - string
          - 'null'
          format: uuid
        updatedAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T15:30:00.000Z'
        updatedById:
          type:
          - string
          - 'null'
          format: uuid
      required:
      - id
      - type
      - outcome
      - note
      - parentId
      - parentType
      - createdAt
      - createdById
      - updatedAt
      - updatedById
  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