API Changelog
Breaking changes, new features, and significant updates to epilot APIs. Subscribe via RSS
2026-08-18 Validation Rules API
- New
ComparisonRuleTyperule type added for validating a value against another value โ accepted onPOST /v1/validation-rulesandPATCH /v1/validation-rules/{ruleId}and returned wherever rules are read - New optional
contextsfield added to validation rules, limiting the contexts a rule applies in โ accepted when creating and patching a rule and returned by the rule list, read, and used-by endpoints
2026-08-18 Meter Counter Entity
- New
digitsanddecimalsattributes added to themeter_counterentity, describing the register size of a meter counter
2026-08-17 Dashboard API
- New optional
versionfield added to dashboards, reporting which dashboard format a dashboard uses โ accepted onPOST /v1/dashboard/dashboardsandPUT /v1/dashboard/dashboards/{id}, and returned by the dashboard list, read, create, update, patch, and delete endpoints
2026-08-15 Entity API
- Schema capabilities can now be configured further: a new optional
variant_overridableflag controls whether a capability may be overridden per variant, and capability UI hooks accept new optionaldefault_visibleandpricing_tier_settingsettings โ accepted onPOST /v1/entity/schemas/capabilities,PUT /v1/entity/schemas/capabilities/{composite_id}, andPUT /v1/entity/schemas/{slug}, and returned wherever schemas and capabilities are read - New optional
ui_config.widget_visibilitysetting added to entity schemas for controlling which widgets are shown โ accepted onPUT /v1/entity/schemas/{slug}and returned by the schema read, list, versions, freeze, and unfreeze endpoints
2026-08-14 AI Agents API
- New
GET /v1/executions/{execution_id}/feedbackendpoint added for reading the feedback recorded for an agent execution, andPUT /v1/executions/{execution_id}/feedbackfor submitting it
2026-08-14 Blueprint API
- New optional
active_restore_job_idandactive_restore_started_atfields added to blueprints, reporting a restore that is currently running โ accepted onPOST /v2/blueprint-manifest/blueprintsandPUT /v2/blueprint-manifest/blueprints/{blueprint_id}, and returned by the blueprint list, read, create, update, and delete endpoints - Restore results can now report that a resource was kept because another resource depends on it: a new
dependency_protectedvalue forreasontogether with a new optionalprotected_byfield, returned byGET /v2/blueprint-manifest/jobs,GET /v2/blueprint-manifest/jobs/{job_id},POST /v2/blueprint-manifest/jobs/{job_id}:cancel, andGET /v3/blueprint-manifest/blueprints/{blueprint_id}/deployments/{job_id}/restore-preview
2026-08-14 Design Builder API
DELETE /v1/designs/{designId}can now answer with409when the design cannot be deleted
2026-08-14 File API
- New
GET /v1/files/{id}/summary/feedbackendpoint added for reading the feedback given on a file summary, andPUT /v1/files/{id}/summary/feedbackfor submitting it;GET /v1/files/{id}/summarynow reports an optionalfeedback_availableflag - New optional
file_summary_execution_idfield added to file responses, identifying the summary generation run of a file โ returned byPOST /v1/files,POST /v2/files,GET/DELETE /v2/files/{id}, andGET /v1/entity/{id}/collections/{collectionSlug}/files
2026-08-14 Integration Toolkit API
POST /v2/erp/importsno longer acceptsintegration_idanduse_case_slugโ the import determines its use case itself (breaking)- New
POST /v2/erp/imports/{importId}:validateendpoint added for validating an import before executing it, andPOST /v2/erp/imports/{importId}:suggest-use-casesfor suggesting matching use cases โ the suggestion response reportsfile_columnsonce for the whole import rather than per suggestion, and every suggestion carries theentity_typesit would create POST /v2/erp/imports/{importId}:executenow accepts an optional request body and answers with202instead of200, or with422when the import cannot be executed;POST /v2/erp/importsanswers with201instead of202and accepts a new optionalinclude_previewfield for returning a preview of the import along with it (breaking)- Import error reporting changed:
error.typewas replaced by a requirederror.code,integration_idis no longer guaranteed, and a new optionalvalidation.issueslist reports individual validation problems โ each issue names the affectedcolumnsas objects with a requirednameand an optionalentity, may point at a specificrow, and no longer always carries amessageโ affectingGET /v2/erp/imports,GET /v2/erp/imports/{importId}, and the validate, execute, and abort endpoints (breaking) - Use case configuration gained a set of new optional fields โ
direction,constants,lookups,fan_out,file_source,upload,params_mapping,required_params,ack_tracking, andevent_filterโresponseis no longer required, request steps now also allow thePUTandPATCHmethods, and a newfile_proxydelivery type was added for forwarding files to an external system; use cases additionally report an optionalchanged_by, andGET /v1/integrations/{integrationId}/outbound-statusreports an optionalfile_proxystatus - Mapping simulation (
POST /v1/erp/updates/mapping_simulationandPOST /v2/erp/updates/mapping_simulation) now always reports amodefor each entity update and meter reading update, and adds optionalpricing,prune_scope_updates, andmeter_readings_prune_scope_updatesdetails
2026-08-14 Query API
- New
POST /v2/query/autocomplete:searchendpoint added for autocompleting values while composing a query - New
GET /v2/query/chart-templatesendpoint added for listing the available chart templates, andPOST /v2/query/chart-templates/{template_id}:resolvefor resolving a template into a runnable query
2026-08-13 Automation API
- New
AssignEntityActionautomation action added for assigning an entity from a flow โ it can be configured onPOST /v1/automation/flowsandPUT /v1/automation/flows/{flow_id}, and is returned wherever actions are read (the flow read, list, search, and batch-get endpoints, the execution endpoints, andPOST /v1/automation/public/executions:resume)
2026-08-12 Blueprint API
- Blueprints now support a new
insightresource type โ it is accepted intypeandhard_dependencieswhen creating or updating blueprint resources (POST/PUT /v2/blueprint-manifest/blueprints, the resource create, update, and bulk endpoints, andPOST /v1/blueprint-manifest/jobs:createExport) and is returned wherever resource and job types are reported, so consumers must be prepared for this additional value
2026-08-12 Calendar API
- Calendar events now always return an
is_draftflag indicating whether the event is still a draft โ added toGET /v1/calendar/events,POST /v1/calendar/events, andGET/PATCH /v1/calendar/events/{event_id} - An event can now be cancelled through the new optional
is_cancelledfield onPATCH /v1/calendar/events/{event_id}
2026-08-12 Deduplication API
POST /v1/deduplicatenow returns an object with adeduplicatedEntitieslist instead of a bare array (breaking)- New
POST /v1/detect-duplicatesendpoint added for finding duplicates of an entity, andPOST /v1/duplicates/dismissfor dismissing a reported duplicate - New endpoints added for managing the uniqueness criteria that decide when two entities count as duplicates:
GET/POST /v1/uniqueness-criteriafor listing and creating them, andGET/PUT/DELETE /v1/uniqueness-criteria/{schema}for reading, replacing, and removing the criteria of a single schema
2026-08-12 Email Settings API
smtp_portis now a string instead of an integer in all SMTP connection responses (GET/POST /v2/smtp/connectionsandGET/PUT /v2/smtp/connections/{connectionId}); requests accept both a string and an integer (breaking)- New optional
skip_testquery parameter added toPOST /v2/smtp/connectionsandPUT /v2/smtp/connections/{connectionId}for saving a connection without testing it first
2026-08-12 Journey Config API
- Journeys read from the API now always carry an explicit
settings.isActiveflag, indicating whether the journey is accessible to end customers โ returned byGET /v1/journey/configuration/{id}andGET /v2/journey/configuration/{id}; the flag stays optional in request bodies
2026-08-11 Automation API
- New optional
workflow_context._automation_chainfield added to automation executions, recording the chain of automations an execution was started from โ accepted onPOST /v1/automation/executionsand returned by the execution list, read, search, delete, andPOST /v1/automation/public/executions:resumeendpoints
2026-08-11 Design Builder API
- New
POST /v1/designs/{designId}/duplicateendpoint added for creating a copy of an existing design
2026-08-11 Workflows Execution API
- New optional
_automation_chainfield added to flow executions, recording the chain of automations an execution was started from โ returned byPOST /v2/flows/executions,GET/PATCH /v2/flows/executions/{execution_id},POST /v2/flows/executions:search, and the reconcile-automation endpoint
2026-08-10 Blueprint API
- New optional
performed_byfield added to blueprint deployments, identifying who performed a deployment โ accepted onPOST /v2/blueprint-manifest/blueprintsandPUT /v2/blueprint-manifest/blueprints/{blueprint_id}, and returned by the blueprint list, read, create, update, and delete endpoints
2026-08-10 Customer Portal API
- New
GET /v2/portal/user/file/{id}/previewendpoint added for retrieving a preview of a file in the portal
2026-08-10 Query API
- The semantic model (
GET /v2/query/semantic-model) now reportsversion3; the value2is no longer returned (breaking) - The
tables.entity_relationshipstable was removed from the semantic model and replaced by a newtables.entity_edgestable (breaking) - Relationship mechanism values were renamed โ
entity_relationshipsis nowentity_relationandworkflow_contextsis nowworkflow_context(breaking) - New required
capabilitiesandconventions.workflow_org_id_paddingfields added to the semantic model response columnson the entity, purpose, and taxonomy tables is now optional and may be absent (breaking)
2026-08-10 Targeting API
- New
POST /v1/campaign/{campaign_id}/recipient/{recipient_id}/entity_ui:restoreendpoint added for restoring a dismissed entity UI, together with a new optionalentity_ui_status_before_dismissfield on recipient responses recording the status a recipient had before being dismissed - Campaign discovery (
POST /v1/campaign:discover) now always returns adismissedflag, along with an optionalstatus_updated_attimestamp
2026-08-10 Workflows Execution API
- New optional
heal_attemptsandlast_heal_attempted_atfields added to workflow tasks, reporting how often a task was auto-healed and when it was last attempted โ returned by all flow execution and task endpoints - New optional
next_condition_idsrequest field accepted onPATCH /v2/flows/executions/{execution_id}/tasks/{task_id}, for setting which conditions a task continues to
2026-08-10 Event: File Updated
- New
FileUpdatedevent added, fired whenever an existing file entity is updated โ likeFileCreatedit carries the file attachment reference (entity ID, S3 reference, and file metadata such as filename, MIME type, size, and version index) together with the hydrated file entity, so webhooks can react to changes on a file and receive its content