Skip to main content

API Changelog

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

2026-08-18 Validation Rules API

  • New ComparisonRuleType rule type added for validating a value against another value โ€” accepted on POST /v1/validation-rules and PATCH /v1/validation-rules/{ruleId} and returned wherever rules are read
  • New optional contexts field 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 digits and decimals attributes added to the meter_counter entity, describing the register size of a meter counter

2026-08-17 Dashboard API

  • New optional version field added to dashboards, reporting which dashboard format a dashboard uses โ€” accepted on POST /v1/dashboard/dashboards and PUT /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_overridable flag controls whether a capability may be overridden per variant, and capability UI hooks accept new optional default_visible and pricing_tier_setting settings โ€” accepted on POST /v1/entity/schemas/capabilities, PUT /v1/entity/schemas/capabilities/{composite_id}, and PUT /v1/entity/schemas/{slug}, and returned wherever schemas and capabilities are read
  • New optional ui_config.widget_visibility setting added to entity schemas for controlling which widgets are shown โ€” accepted on PUT /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}/feedback endpoint added for reading the feedback recorded for an agent execution, and PUT /v1/executions/{execution_id}/feedback for submitting it

2026-08-14 Blueprint API

  • New optional active_restore_job_id and active_restore_started_at fields added to blueprints, reporting a restore that is currently running โ€” accepted on POST /v2/blueprint-manifest/blueprints and PUT /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_protected value for reason together with a new optional protected_by field, returned by GET /v2/blueprint-manifest/jobs, GET /v2/blueprint-manifest/jobs/{job_id}, POST /v2/blueprint-manifest/jobs/{job_id}:cancel, and GET /v3/blueprint-manifest/blueprints/{blueprint_id}/deployments/{job_id}/restore-preview

2026-08-14 Design Builder API

  • DELETE /v1/designs/{designId} can now answer with 409 when the design cannot be deleted

2026-08-14 File API

  • New GET /v1/files/{id}/summary/feedback endpoint added for reading the feedback given on a file summary, and PUT /v1/files/{id}/summary/feedback for submitting it; GET /v1/files/{id}/summary now reports an optional feedback_available flag
  • New optional file_summary_execution_id field added to file responses, identifying the summary generation run of a file โ€” returned by POST /v1/files, POST /v2/files, GET/DELETE /v2/files/{id}, and GET /v1/entity/{id}/collections/{collectionSlug}/files

2026-08-14 Integration Toolkit API

  • POST /v2/erp/imports no longer accepts integration_id and use_case_slug โ€” the import determines its use case itself (breaking)
  • New POST /v2/erp/imports/{importId}:validate endpoint added for validating an import before executing it, and POST /v2/erp/imports/{importId}:suggest-use-cases for suggesting matching use cases โ€” the suggestion response reports file_columns once for the whole import rather than per suggestion, and every suggestion carries the entity_types it would create
  • POST /v2/erp/imports/{importId}:execute now accepts an optional request body and answers with 202 instead of 200, or with 422 when the import cannot be executed; POST /v2/erp/imports answers with 201 instead of 202 and accepts a new optional include_preview field for returning a preview of the import along with it (breaking)
  • Import error reporting changed: error.type was replaced by a required error.code, integration_id is no longer guaranteed, and a new optional validation.issues list reports individual validation problems โ€” each issue names the affected columns as objects with a required name and an optional entity, may point at a specific row, and no longer always carries a message โ€” affecting GET /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, and event_filter โ€” response is no longer required, request steps now also allow the PUT and PATCH methods, and a new file_proxy delivery type was added for forwarding files to an external system; use cases additionally report an optional changed_by, and GET /v1/integrations/{integrationId}/outbound-status reports an optional file_proxy status
  • Mapping simulation (POST /v1/erp/updates/mapping_simulation and POST /v2/erp/updates/mapping_simulation) now always reports a mode for each entity update and meter reading update, and adds optional pricing, prune_scope_updates, and meter_readings_prune_scope_updates details

2026-08-14 Query API

  • New POST /v2/query/autocomplete:search endpoint added for autocompleting values while composing a query
  • New GET /v2/query/chart-templates endpoint added for listing the available chart templates, and POST /v2/query/chart-templates/{template_id}:resolve for resolving a template into a runnable query

2026-08-13 Automation API

  • New AssignEntityAction automation action added for assigning an entity from a flow โ€” it can be configured on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id}, and is returned wherever actions are read (the flow read, list, search, and batch-get endpoints, the execution endpoints, and POST /v1/automation/public/executions:resume)

2026-08-12 Blueprint API

  • Blueprints now support a new insight resource type โ€” it is accepted in type and hard_dependencies when creating or updating blueprint resources (POST/PUT /v2/blueprint-manifest/blueprints, the resource create, update, and bulk endpoints, and POST /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_draft flag indicating whether the event is still a draft โ€” added to GET /v1/calendar/events, POST /v1/calendar/events, and GET/PATCH /v1/calendar/events/{event_id}
  • An event can now be cancelled through the new optional is_cancelled field on PATCH /v1/calendar/events/{event_id}

2026-08-12 Deduplication API

  • POST /v1/deduplicate now returns an object with a deduplicatedEntities list instead of a bare array (breaking)
  • New POST /v1/detect-duplicates endpoint added for finding duplicates of an entity, and POST /v1/duplicates/dismiss for dismissing a reported duplicate
  • New endpoints added for managing the uniqueness criteria that decide when two entities count as duplicates: GET/POST /v1/uniqueness-criteria for listing and creating them, and GET/PUT/DELETE /v1/uniqueness-criteria/{schema} for reading, replacing, and removing the criteria of a single schema

2026-08-12 Email Settings API

  • smtp_port is now a string instead of an integer in all SMTP connection responses (GET/POST /v2/smtp/connections and GET/PUT /v2/smtp/connections/{connectionId}); requests accept both a string and an integer (breaking)
  • New optional skip_test query parameter added to POST /v2/smtp/connections and PUT /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.isActive flag, indicating whether the journey is accessible to end customers โ€” returned by GET /v1/journey/configuration/{id} and GET /v2/journey/configuration/{id}; the flag stays optional in request bodies

2026-08-11 Automation API

  • New optional workflow_context._automation_chain field added to automation executions, recording the chain of automations an execution was started from โ€” accepted on POST /v1/automation/executions and returned by the execution list, read, search, delete, and POST /v1/automation/public/executions:resume endpoints

2026-08-11 Design Builder API

  • New POST /v1/designs/{designId}/duplicate endpoint added for creating a copy of an existing design

2026-08-11 Workflows Execution API

  • New optional _automation_chain field added to flow executions, recording the chain of automations an execution was started from โ€” returned by POST /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_by field added to blueprint deployments, identifying who performed a deployment โ€” accepted on POST /v2/blueprint-manifest/blueprints and PUT /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}/preview endpoint 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 reports version 3; the value 2 is no longer returned (breaking)
  • The tables.entity_relationships table was removed from the semantic model and replaced by a new tables.entity_edges table (breaking)
  • Relationship mechanism values were renamed โ€” entity_relationships is now entity_relation and workflow_contexts is now workflow_context (breaking)
  • New required capabilities and conventions.workflow_org_id_padding fields added to the semantic model response
  • columns on 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:restore endpoint added for restoring a dismissed entity UI, together with a new optional entity_ui_status_before_dismiss field on recipient responses recording the status a recipient had before being dismissed
  • Campaign discovery (POST /v1/campaign:discover) now always returns a dismissed flag, along with an optional status_updated_at timestamp

2026-08-10 Workflows Execution API

  • New optional heal_attempts and last_heal_attempted_at fields 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_ids request field accepted on PATCH /v2/flows/executions/{execution_id}/tasks/{task_id}, for setting which conditions a task continues to

2026-08-10 Event: File Updated

  • New FileUpdated event added, fired whenever an existing file entity is updated โ€” like FileCreated it 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