Reonic Activities API
Timeline of events on a project — automatic activity records and manually logged calls and meetings.
Timeline of events on a project — automatic activity records and manually logged calls and meetings.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/reonic-activities-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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