Skip to main content

API Changelog

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

2026-09-04 Metering API

  • POST /v2/metering/readings/prune can now respond with 413 when the prune request is too large to be processed

2026-09-03 Email Settings API

  • New AllowedRecipientDomainsSetting email setting type added, restricting which recipient domains may be sent to โ€” accepted on POST /v1/email-settings, POST /v1/email-settings/{id}, and DELETE /v1/email-settings, and returned wherever email settings are read, so consumers must be prepared for this additional setting shape

2026-09-03 Validation Rules API

  • Rule condition values can now reference an environment value instead of only a fixed value: conditions[].value, its min and max, their adjust.value, and applies_when.value accept an environment value, and conditions[].value, min, and max additionally accept an external value โ€” accepted on POST /v1/validation-rules and PATCH /v1/validation-rules/{ruleId} and returned wherever rules are read, so consumers must be prepared for these additional shapes

2026-09-03 Core Events

  • New optional _automation_chain field added to all built-in event payloads, listing the automations that led to the event (up to 100 entries) so consumers can detect and break automation loops; it can also be set when triggering an event through the Event Catalog API and is then carried over to the published event and to every event derived from the resulting entity operation

2026-09-02 Automation API

  • Automation assignment actions can now spread work across a group of candidates: config.assignment_type accepts the new sequential and even_distribution values, together with new optional config.candidate_group, config.fallback, config.fallback_assignees, and config.reset_interval fields โ€” accepted on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id} and returned wherever flows and executions are read
  • Assignment actions additionally accept a new optional config.workload_filter for narrowing which existing workload is counted when picking an assignee
  • New EventCatalogTrigger trigger type (event_catalog) added for starting flows from Event Catalog events โ€” configured with event_name, a pinned event_version, the entity_node_id and entity_schema of the entity the execution runs on, and an optional ignore_automation_triggered flag (default true); accepted on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id} and returned wherever triggers are read
  • Executions started by an Event Catalog event carry a new trigger_event variant of type event_catalog with event_id, event_name, event_version, published_version, entity_node_id, and a payload_ref to the stored event payload โ€” returned by the execution list, read, search, and POST /v1/automation/public/executions:resume endpoints
  • Action conditions accept a new source.originType value event for reading the condition operand from the trigger's event payload (attribute is then a dot path into the payload)
  • New optional trigger_event_name query parameter added to GET /v1/automation/flows for listing flows that have an event_catalog trigger for a given event

2026-09-02 Customer Portal API

  • The language request field of POST /v1/portal/exports is no longer restricted to de and en

2026-09-02 Integration Toolkit API

  • Integrations can now carry a new optional maps field, accepted on POST/PUT /v1/integrations/{integrationId} and their v2 counterparts and returned wherever integrations are read

2026-09-01 Automation API

  • The language_code field of an automation action's configuration is no longer restricted to de and en โ€” affecting POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id} as well as everywhere flows and executions are read
  • Automation actions can now be pointed at entities through an entity graph: a new optional config.graph_context field describing the graph and its nodes, where every node can be marked optional โ€” accepted on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id} and returned wherever flows and executions are read

2026-09-01 File API

  • The file upload endpoints (POST /v1/files, POST /v1/files/upload, POST /v1/files/public/upload, POST /v2/files, and POST /v2/files/upload) can now respond with 422 when the upload cannot be processed

2026-09-01 Integration Toolkit API

  • The entity sync status endpoint moved from GET /v1/entities/{entityId}/sync-status to GET /v1/integrations/entities/{entityId}/sync-status; the old path was removed without deprecation (breaking)

2026-09-01 Journey Config API

  • New GET /v1/journey/configuration/{id}/environment endpoint added for reading the environment of a journey configuration
  • New GET /v1/journey/environment-variables endpoint added for listing the environment variables available to journeys
  • The settings.embedOptions.lang field is no longer restricted to de, en, and fr โ€” affecting the journey configuration create and update endpoints in v1 and v2

2026-09-01 Partner Directory API

  • The language request field of POST /v2/partners/{id}/invite and POST /v2/partners/{orgId}/users is no longer restricted to de and en

2026-09-01 Meter Counter Entity

  • New ma_lo_id attribute added to the meter_counter entity, carrying the Marktlokation ID of a register

2026-08-31 Blueprint Manifest API

  • POST /v2/blueprint-manifest/jobs/{job_id}:continue no longer accepts the resources_to_ignore and sync_notes request fields; the request body now takes the same installation options as the install endpoints (breaking)
  • Blueprint installations can now ask for a fresh authentication: jobs report a new REAUTH_REQUIRED status wherever jobs and manifests are read, and POST /v3/blueprint-manifest/blueprint:install accepts a new optional session_credentials field
  • The language request field of POST /v1/blueprint-manifest/jobs/{job_id}:exportManifest is no longer restricted to de and en

2026-08-31 Customer Portal API

  • Portals can now expose an MCP server: a new optional feature_settings.mcp_enabled flag accepted on POST /v2/portal/portal, POST /v3/portal/config, and PUT /v3/portal/config/{portal_id}, and returned together with the granted feature_settings.mcp_grant_version wherever the portal configuration is read

2026-08-31 Environments API

  • Environment values are no longer text-only: the type of an environment accepts the new Text, Number, Boolean, Map, and JSON values, and its value is no longer always a string but takes the shape matching the type โ€” affecting POST /v1/environments and PUT /v1/environments/{key} as well as everywhere environments are read (breaking)
  • PUT /v1/environments/{key} can now respond with 409 when the environment conflicts with the current state

2026-08-28 App API

  • App hooks can now run yearly: the intervals of a component's hook configuration accept the new P1Y value, accepted on POST/PATCH /v1/app-configurations/{appId}/versions/{version}/components and returned wherever apps and app configurations are read

2026-08-28 Automation API

  • Automation flows can now be triggered by relation changes: trigger operation types accept the new relationsAdded, relationsRemoved, relationsDeleted, relationsSoftDeleted, and relationsRestored values on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id}, and executions report them in trigger_event.operation_type
  • Automation actions can now wait for a journey submission through new optional config.journey_id and config.wait_for_journey_submission fields, accepted when creating or updating a flow and returned wherever flows and executions are read; a waiting execution additionally reports a workflow_wait_context
  • Executions started from a workflow now report who triggered it through a new optional workflow_context.trigger_user_id field, accepted on POST /v1/automation/executions and returned wherever executions are read

2026-08-28 Billing API

  • Pricing configuration history entries now report the installment amount through a new optional installment_amount field, returned by GET /v1/billing/billing_accounts/{id}/configuration_history, GET /v1/billing/billing_accounts/{id}/pricing_information, GET /v1/billing/contracts/{id}/configuration_history, and GET /v1/billing/contracts/{id}/pricing_information

2026-08-28 Entity API

  • The variant_overridable field of schema attributes and capabilities was removed and replaced by a new optional overridable_attribute field โ€” affecting the schema, attribute, and capability endpoints in v1 and v2, in both requests and responses (breaking)

2026-08-28 Workflows Execution API

  • Workflow tasks can now be set to wait for a journey submission through new optional automation_config.journey_id, automation_config.wait_for_journey_submission, and automation_config.journey_execution fields, accepted on POST /v2/flows/executions, POST /v2/flows/executions/{execution_id}/tasks, and PATCH /v2/flows/executions/{execution_id}/tasks/{task_id}, and returned wherever executions and tasks are read
  • Workflow steps and tasks report a new WAITING_FOR_JOURNEY_SUBMISSION status while they wait, returned by all execution, step, and task endpoints and accepted when creating or updating a step or task

2026-08-27 App API

  • App versions can now carry release notes through a new optional changelog field on PATCH /v1/app-configurations/{appId}/versions/{version}, and POST /v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion} accepts an optional request body for setting them while cloning

2026-08-27 Customer Portal API

  • Consumption, cost, and price data can now be requested per year: the interval query parameter of GET /v2/portal/consumption, GET /v2/portal/costs, and GET /v2/portal/prices accepts the new P1Y value, which GET /v2/portal/visualization/metadata also reports as an available interval

2026-08-27 Entity API

  • POST /v1/entity/schemas/{slug}/freeze and POST /v1/entity/schemas/{slug}/unfreeze are deprecated and will be removed in a future version
  • The latest query parameter of the schema read and list endpoints is deprecated, as are the frozen, latest, and frozen_version fields of schema responses

2026-08-27 Permissions API

  • Grant conditions gained two new types, NotEqualsCondition and NotEqualsCurrentUserCondition, for granting access when a value does not match โ€” accepted on POST /v1/permissions/roles and PUT /v1/permissions/roles/{roleId} and returned wherever roles and grants are read
  • Grant conditions accept a new optional attributes list for applying a condition to several attributes at once; a condition's values must now contain at least one entry (breaking)