Skip to main content

API Changelog

Breaking changes, new features, and significant updates to epilot APIs. Subscribe via RSS

2026-05-13 Entity API

  • New optional org_id field added to created_by user objects on saved views (POST /v1/entity/view, GET/PUT/PATCH /v1/entity/view/{id}, GET /v1/entity/views, GET /v1/entity/views/favorites) for partner access control across organizations

2026-05-13 Integration Toolkit API

  • New portal_ref and env_var_ref config options added to inbound use case field mappings โ€” portal_ref resolves to a property (portal_id, origin, domain, name) of one of the calling organization's portal configurations at runtime by filter, and env_var_ref resolves to an org-scoped non-secret environment variable from the environments-api service, replacing hardcoded environment-specific portal UUIDs and config values in inbound mappings

2026-05-13 Metering API

  • New endpoints added for managing pending reading changesets: GET /v1/metering/reading/{meter_id}/{counter_id}/changesets (list pending), PATCH /v1/metering/reading/{meter_id}/{counter_id}/changesets/{changeset_id} (edit the proposed value), POST .../changesets/{changeset_id}:apply (approve and commit to ClickHouse), and POST .../changesets/{changeset_id}:dismiss (reject)
  • New optional direct query parameter added to all reading-write endpoints (POST /v1/metering/reading, POST /v1/metering/readings, POST /v1/metering/readings/{meter_id}, POST /v2/metering/readings) โ€” when true, bypasses changeset interception and writes directly to ClickHouse, auto-clearing matching pending changesets; the same effect is triggered automatically when source: 'ERP' is set in the request body
  • New optional include_pending_changesets query parameter added to GET /v1/metering/meter and GET /v1/metering/reading/{meter_id}/{counter_id}, including pending reading changesets in the response alongside confirmed readings

2026-05-13 Event: Meter Reading Added

  • New activity_type field added identifying the lifecycle action that triggered the event: MeterReadingsAdded (direct commit), ChangesetCreated (pending), ChangesetApplied (pending โ†’ committed), or ChangesetDismissed (pending rejected)
  • New changeset_id and changeset_edit_mode (direct / external / approval) fields added, carrying the originating changeset's identifier and mode
  • New dismissed_reason and dismissed_at fields populated on ChangesetDismissed events

2026-05-07 Event: Service Meter Reading Added

  • New event_attachments array added carrying file metadata (entity_id, filename, mime_type, size_bytes, s3ref, version_index, readable_size, _tags, relation_tags, category, file_date, _created_at) for every file related to the ticket โ€” consumers should filter by relation_tags, _tags, mime_type, or _created_at proximity to reading_timestamp to identify the meter reading photo
  • New ticket_files array added on the hydrated entity graph carrying the full file entity objects

2026-05-06 App API

  • New PortalExtensionHookDataExport portal extension hook type added โ€” when configured on export-capable portal blocks, the portal delegates the export action (CSV/Excel/PDF download) to the external source instead of generating the file itself
  • New PortalExtensionHookVisualizationMetadata portal extension hook type added โ€” invoked before fetching data with the same portal context as the data hook, returns per-meter/contract visualization metadata (type_options, intervals, data_range)
  • intervals field on PortalExtensionHookConsumptionDataRetrieval, PortalExtensionHookCostDataRetrieval, and PortalExtensionHookPriceDataRetrieval deprecated โ€” prefer declaring a sibling visualizationMetadata hook so supported intervals can vary per meter/contract
  • use_static_ips field deprecated on all portal extension hook types โ€” prefer secure_proxy
  • New object enum value added to portal extension component option type, plus new fields (primitive sub-field declarations) and repeatable (array-of-entries flag) properties โ€” enables structured object-typed and list-typed component options

2026-05-06 User API

  • New optional abbreviation field (up to 2 characters, nullable) added to user groups across GET /v1/groups, POST /v1/groups, GET/PATCH /v1/groups/{id}, POST /v1/groups/{id}/user:next, and GET /v2/users/{id}/groups

2026-05-05 Automation API

  • New optional mark_as_read field added to ForwardEmailAction, ReplyEmailAction, and SendEmailAction configurations, controlling whether the email thread is automatically marked as read after the action completes

2026-05-04 Pricing API

  • New optional availability_address and variable_inputs fields added to the external catalog request context on POST /v1/public/external-catalog/products, POST /v1/public/external-catalog/product-recommendations, and POST /integration/external-service, enabling availability filtering by address and variable-amount price computation
  • New optional cashback_name field added to CashbackAmount items across order, pricing, cart, and external-catalog responses

2026-05-02 Message API

  • New optional mark_thread_as_read field added to POST /v1/message/messages and POST /v1/message/drafts, controlling whether sending a reply marks the thread as read for the sender's org/user (defaults to true)

2026-05-01 Core Events

  • Four new pending-changeset metadata fields added across all built-in events: _has_pending_changesets, _changeset_edit_modes, _changeset_attributes, and _changeset_edit_modes_by_attribute โ€” enabling fine-grained webhook conditions based on whether the triggering entity has pending changesets and which attributes/edit modes are involved

2026-05-01 Event: Meter Reading Added

  • New proposed_meter_readings array added carrying pending reading-changeset context (counter ID, value, direction, status, edit_mode, changeset_id, and previous values being overwritten); populated only when the event represents a pending reading-changeset creation
  • New unit field added to individual items in the existing meter_readings array

2026-04-30 Integration Toolkit API

  • slug request property is now required on all use-case create variants (POST /v1/integrations/{integrationId}/use-cases) โ€” file proxy, inbound, managed call, outbound, and secure proxy (breaking)
  • New optional allowed_origins array field added to FileProxy use case configuration, listing additional origins permitted to call /download (CORS); portal origins remain always allowed

2026-04-30 Journey Config API

  • New optional version query parameter added to GET /v1/journey/configuration/{id} and GET /v2/journey/configuration/{id} for fetching historical snapshots; 0 (default) returns the live row, positive integers return earlier saved versions
  • New optional settings.isActive boolean field added to journey configurations

2026-04-28 Entity API

  • New optional edit_mode and edit_mode_config fields added to all entity schema attribute types in schema responses
  • _changesets field now included on entity objects returned from activity log responses

2026-04-28 Notes API

  • created_by field type changed from a single object to an array of objects across all note endpoints โ€” consumers reading created_by fields must handle arrays (breaking)
  • New optional edited_at timestamp field added to notes and comments
  • POST /v1/notes:search now requires at least one entry in the contexts array; previously empty arrays were silently accepted (breaking)
  • New optional include_related_schemas array field added to note search requests for including notes on related entity schemas

2026-04-28 Entity Mapping API

  • New iteration operations added to entity mapping rules: _each (path to the source array to iterate), _as (variable name for each item, accessed as $<name> in _copy paths within _map), and _map (operation applied per iteration item), enabling array-to-array entity transformation

2026-04-28 Webhooks API

  • Webhook auth credential fields (password, clientSecret, keyValue) are now nullable; passing null explicitly clears the stored value, omitting the field preserves the existing value
  • New optional apply_changesets boolean field added to webhook payloadConfiguration; when true, entity fields in the webhook payload reflect proposed changeset values instead of current persisted values

2026-04-21 Core Events

  • New remarks array field added to MeterReadingAdded and ServiceMeterReadingAdded events, containing free-text remarks from the submitter in reading order (one per counter for multi-counter meters; empty or whitespace-only remarks are omitted)
  • New remark field added to individual counter reading items within ServiceMeterReadingAdded

2026-04-17 Pricing API

  • context.contract.billing_account and context.contract.payment request fields on POST /v1/public/external-catalog/products and POST /v1/public/external-catalog/product-recommendations changed from string relation IDs to objects (breaking)
  • context.contract.branch enum constraint removed on the same endpoints; the field now accepts any string instead of only the previous fixed values (power, gas, water, waste_water, district_heating)

2026-04-17 Permissions API

  • New equals_current_user grant condition (EqualsCurrentUserCondition) added, checking whether any relation_user attribute on the entity contains the currently authenticated user; an optional attribute path restricts the check to a specific field
  • New optional vendor_created boolean field added to user, partner, and sharing role responses, indicating the role was created by a vendor organization on behalf of a partner organization

2026-04-16 Design Builder API

  • Many new design token fields added to Journey design objects for fine-grained styling: button variants (primary, ghost, outlined), input fields, cards, chips, dropdowns, datepicker, toggles, topbar, font size scale, and more; IMAGE added as a new file_type option for design logos

2026-04-16 Integration Toolkit API

  • New optional group_id field on POST /v3/erp/updates/events for controlling processing parallelism: events sharing the same group_id are processed in order; events with different group_id values are processed concurrently (up to 20 concurrent groups per integration)

2026-04-16 Message API

  • New optional unlink_mapped_entities query parameter on POST /v1/message/threads/{id}/unassign; when true, also removes the unassigned entities from mapped_entities on related source entities

2026-04-16 Event: Meter Reading Added

  • New contracts array field added to the MeterReadingAdded event payload, providing the full list of hydrated contract entities linked to the meter (supports meters associated with multiple contracts)