API Changelog
Breaking changes, new features, and significant updates to epilot APIs. Subscribe via RSS
2026-09-04 Metering API
POST /v2/metering/readings/prunecan now respond with413when the prune request is too large to be processed
2026-09-03 Email Settings API
- New
AllowedRecipientDomainsSettingemail setting type added, restricting which recipient domains may be sent to โ accepted onPOST /v1/email-settings,POST /v1/email-settings/{id}, andDELETE /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, itsminandmax, theiradjust.value, andapplies_when.valueaccept an environment value, andconditions[].value,min, andmaxadditionally accept an external value โ accepted onPOST /v1/validation-rulesandPATCH /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_chainfield 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_typeaccepts the newsequentialandeven_distributionvalues, together with new optionalconfig.candidate_group,config.fallback,config.fallback_assignees, andconfig.reset_intervalfields โ accepted onPOST /v1/automation/flowsandPUT /v1/automation/flows/{flow_id}and returned wherever flows and executions are read - Assignment actions additionally accept a new optional
config.workload_filterfor narrowing which existing workload is counted when picking an assignee - New
EventCatalogTriggertrigger type (event_catalog) added for starting flows from Event Catalog events โ configured withevent_name, a pinnedevent_version, theentity_node_idandentity_schemaof the entity the execution runs on, and an optionalignore_automation_triggeredflag (defaulttrue); accepted onPOST /v1/automation/flowsandPUT /v1/automation/flows/{flow_id}and returned wherever triggers are read - Executions started by an Event Catalog event carry a new
trigger_eventvariant of typeevent_catalogwithevent_id,event_name,event_version,published_version,entity_node_id, and apayload_refto the stored event payload โ returned by the execution list, read, search, andPOST /v1/automation/public/executions:resumeendpoints - Action conditions accept a new
source.originTypevalueeventfor reading the condition operand from the trigger's event payload (attributeis then a dot path into the payload) - New optional
trigger_event_namequery parameter added toGET /v1/automation/flowsfor listing flows that have anevent_catalogtrigger for a given event
2026-09-02 Customer Portal API
- The
languagerequest field ofPOST /v1/portal/exportsis no longer restricted todeanden
2026-09-02 Integration Toolkit API
- Integrations can now carry a new optional
mapsfield, accepted onPOST/PUT /v1/integrations/{integrationId}and their v2 counterparts and returned wherever integrations are read
2026-09-01 Automation API
- The
language_codefield of an automation action's configuration is no longer restricted todeandenโ affectingPOST /v1/automation/flowsandPUT /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_contextfield describing the graph and its nodes, where every node can be markedoptionalโ accepted onPOST /v1/automation/flowsandPUT /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, andPOST /v2/files/upload) can now respond with422when the upload cannot be processed
2026-09-01 Integration Toolkit API
- The entity sync status endpoint moved from
GET /v1/entities/{entityId}/sync-statustoGET /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}/environmentendpoint added for reading the environment of a journey configuration - New
GET /v1/journey/environment-variablesendpoint added for listing the environment variables available to journeys - The
settings.embedOptions.langfield is no longer restricted tode,en, andfrโ affecting the journey configuration create and update endpoints in v1 and v2
2026-09-01 Partner Directory API
- The
languagerequest field ofPOST /v2/partners/{id}/inviteandPOST /v2/partners/{orgId}/usersis no longer restricted todeanden
2026-09-01 Meter Counter Entity
- New
ma_lo_idattribute added to themeter_counterentity, carrying the Marktlokation ID of a register
2026-08-31 Blueprint Manifest API
POST /v2/blueprint-manifest/jobs/{job_id}:continueno longer accepts theresources_to_ignoreandsync_notesrequest 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_REQUIREDstatus wherever jobs and manifests are read, andPOST /v3/blueprint-manifest/blueprint:installaccepts a new optionalsession_credentialsfield - The
languagerequest field ofPOST /v1/blueprint-manifest/jobs/{job_id}:exportManifestis no longer restricted todeanden
2026-08-31 Customer Portal API
- Portals can now expose an MCP server: a new optional
feature_settings.mcp_enabledflag accepted onPOST /v2/portal/portal,POST /v3/portal/config, andPUT /v3/portal/config/{portal_id}, and returned together with the grantedfeature_settings.mcp_grant_versionwherever the portal configuration is read
2026-08-31 Environments API
- Environment values are no longer text-only: the
typeof an environment accepts the newText,Number,Boolean,Map, andJSONvalues, and itsvalueis no longer always a string but takes the shape matching the type โ affectingPOST /v1/environmentsandPUT /v1/environments/{key}as well as everywhere environments are read (breaking) PUT /v1/environments/{key}can now respond with409when the environment conflicts with the current state
2026-08-28 App API
- App hooks can now run yearly: the
intervalsof a component's hook configuration accept the newP1Yvalue, accepted onPOST/PATCH /v1/app-configurations/{appId}/versions/{version}/componentsand 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, andrelationsRestoredvalues onPOST /v1/automation/flowsandPUT /v1/automation/flows/{flow_id}, and executions report them intrigger_event.operation_type - Automation actions can now wait for a journey submission through new optional
config.journey_idandconfig.wait_for_journey_submissionfields, accepted when creating or updating a flow and returned wherever flows and executions are read; a waiting execution additionally reports aworkflow_wait_context - Executions started from a workflow now report who triggered it through a new optional
workflow_context.trigger_user_idfield, accepted onPOST /v1/automation/executionsand returned wherever executions are read
2026-08-28 Billing API
- Pricing configuration history entries now report the installment amount through a new optional
installment_amountfield, returned byGET /v1/billing/billing_accounts/{id}/configuration_history,GET /v1/billing/billing_accounts/{id}/pricing_information,GET /v1/billing/contracts/{id}/configuration_history, andGET /v1/billing/contracts/{id}/pricing_information
2026-08-28 Entity API
- The
variant_overridablefield of schema attributes and capabilities was removed and replaced by a new optionaloverridable_attributefield โ 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, andautomation_config.journey_executionfields, accepted onPOST /v2/flows/executions,POST /v2/flows/executions/{execution_id}/tasks, andPATCH /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_SUBMISSIONstatus 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
changelogfield onPATCH /v1/app-configurations/{appId}/versions/{version}, andPOST /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
intervalquery parameter ofGET /v2/portal/consumption,GET /v2/portal/costs, andGET /v2/portal/pricesaccepts the newP1Yvalue, whichGET /v2/portal/visualization/metadataalso reports as an available interval
2026-08-27 Entity API
POST /v1/entity/schemas/{slug}/freezeandPOST /v1/entity/schemas/{slug}/unfreezeare deprecated and will be removed in a future version- The
latestquery parameter of the schema read and list endpoints is deprecated, as are thefrozen,latest, andfrozen_versionfields of schema responses
2026-08-27 Permissions API
- Grant conditions gained two new types,
NotEqualsConditionandNotEqualsCurrentUserCondition, for granting access when a value does not match โ accepted onPOST /v1/permissions/rolesandPUT /v1/permissions/roles/{roleId}and returned wherever roles and grants are read - Grant conditions accept a new optional
attributeslist for applying a condition to several attributes at once; a condition'svaluesmust now contain at least one entry (breaking)