Skip to main content

API Changelog

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

2026-10-12 Identity API

  • New GET /v1/identity/operator/clients/{client_id}/organizations/{org_id}/users/{user_id}:subject endpoint was added for reading the subject of a user in an organization
  • partner_account was removed from operator client organizations: it is no longer accepted on POST /v1/identity/operator/clients/{client_id}/organizations and PUT /v1/identity/operator/clients/{client_id}/organizations/{org_id} and no longer returned by any operator client organization endpoint (breaking)

2026-10-12 Validation Rules API

  • Rule conditions now use the new ValueReference shape for dynamic values: ContextValue and EnvironmentValue are no longer accepted for conditions[].value.adjust.value and conditions[].applies_when.value on POST /v1/validation-rules and PATCH /v1/validation-rules/{ruleId}, which now accept ValueReference instead (breaking)
  • conditions[].value.offset on relative date values can now be a value reference instead of only an integer, and its ±36500 limit was removed — returned wherever validation rules are read, so consumers must handle non-integer offsets
  • Rule conditions can now use parameters through the new ParameterValue shape, accepted for conditions[].value, conditions[].value.min/max, conditions[].value.adjust.value, and conditions[].applies_when.value on POST /v1/validation-rules and PATCH /v1/validation-rules/{ruleId} and returned wherever validation rules are read
  • anchor on relative date values can now be a value reference, and today is no longer accepted as anchor on POST /v1/validation-rules and PATCH /v1/validation-rules/{ruleId} (breaking) — consumers must also handle non-string anchors wherever validation rules are read

2026-10-12 Workflows Execution API

  • Flow executions now carry advanced loops: tasks report their loops through a new optional tasks[].loops field and edges their loop through a new optional edges[].loop_id field — returned wherever flow executions and tasks are read
  • Loop details on flow executions were extended with new optional loop_source, phases[].loop_membership, tasks[].loop_membership, tasks[].conditions[].loop_outcome, and tasks[].loops.*.depth/outer_loop_ids/target_id fields, and tasks[].loop_config on flow executions and tasks is now deprecated in favour of tasks[].loops

2026-10-09 Audit Log API

  • Audit logs now record actions performed by AI agents: caller.trigger_type can return the new agent value, so consumers must be prepared for this additional trigger type, and callers report the acting agent and access token through new optional caller.agent, caller.token_id, caller.token_name, and caller.token_type fields — returned by POST /v1/logs and GET /v1/logs/{logId}
  • caller_type on POST /v1/logs is no longer restricted to a fixed set of values and now also accepts a list of caller types

2026-10-09 Design Builder API

  • Designs can now carry a Spark theme: the design accepts the new Spark_Theme shape on POST /v1/designs and PUT /v1/designs/{designId} and returns it wherever designs are read, and GET /v1/designs/{designId}/parse returns a new optional design.spark_theme field

2026-10-09 Integration Toolkit API

  • Import validation can now report the new issue codes FROM_ROWS_EXPRESSION_FAILED, MAPPING_EXPRESSION_FAILED, and VALUE_FORMAT_INVALID, and issues carry new optional attributes, expected, and lines details — returned by all /v2/erp/imports endpoints, so consumers must be prepared for these additional issue codes

2026-10-09 Query API

  • GET /v2/query/autocomplete no longer accepts labels, partners, purposes, sharing_configs, tags, and workflows as the dataset query parameter (breaking)

2026-10-09 Workflows Execution API

  • Flows can now be started in bulk: new POST /v2/flows/executions:bulk-start endpoint was added for starting many flow executions at once, together with new GET /v2/flows/bulk-jobs, GET /v2/flows/bulk-jobs:active, GET /v2/flows/bulk-jobs/{job_id}, and PATCH /v2/flows/bulk-jobs/{job_id} endpoints for tracking and updating bulk jobs
  • New POST /v2/flows/bulk-jobs/{job_id}/restart endpoint was added for restarting a bulk job, and bulk jobs link to their restarts through new optional restart_of and restarted_by fields. GET /v2/flows/bulk-jobs now also returns each job's entity_ids and entity_count, and an optional entity_schema

2026-10-09 Ticket Entity

  • Tickets can now record consents through a new consents field

2026-10-09 Core Events

  • New GridPlantRegistrationRequested and GridPlantRegistrationProgressed events were added for plant registration processes, and a new GridConnectionProgressed event was added for tracking a grid connection process after it was requested. The Progressed events carry a stage describing where the process stands, including a required stage.workflows list with the definition_id, status, current phase, and current task of every workflow on the opportunity
  • GridConnectionRequested now includes the related business accounts through a new accounts field

2026-10-08 Access Token API

  • New agent authentication endpoints were added under /v1/access-tokens/agent-auth for authenticating AI agents: discovery through GET .well-known/agent-configuration and GET .well-known/jwks.json; agent lifecycle through POST agent/register, agent/introspect, agent/reactivate, agent/revoke, agent/rotate-key, and GET agent/status; user approval through GET and POST approvals/{user_code}; capabilities through GET capability/list, GET capability/describe, POST agent/request-capability, and POST capability/execute; host management through POST host/revoke and host/rotate-key; and agent management through GET agents and DELETE agents/{agent_id}
  • New AgentAuthAgent and AgentAuthHost security schemes were added for authenticating agent and host requests

2026-10-08 Pricing API

  • New POST /v2/public/catalog endpoint was added as a new version of POST /v1/public/catalog
  • Line items can now reference the catalog entry they came from through a new optional catalog_reference field — accepted on POST /v1/order, PUT /v1/order/{id}, POST /v1/pricing:compute, and POST /v1/public/cart:checkout, and returned wherever line items and pricing details are read

2026-10-08 Query API

  • Query results now report the queried time range and period comparison through new optional timeRange and comparison fields — returned by POST /v1/query:execute, POST /v2/query:execute, and POST /v2/query/domain/entities:execute
  • The semantic model (GET /v2/query/semantic-model) now includes a new required tables.analytics_datasets table
  • Chart templates can now belong to the new service category: category on GET /v2/query/chart-templates can return service, so consumers must be prepared for this additional category

2026-10-07 Snapshot API

  • New GET /v1/snapshots/{id}/restores/{index} endpoint was added for reading a single restore of a snapshot, and POST /v1/snapshots/{id}:restore now returns the restore_index of the started restore
  • POST /v1/snapshots, POST /v1/snapshots:capture-org, and POST /v1/snapshots/{id}:restore can now respond with 409 when a conflicting operation is already in progress

2026-10-07 Webhooks API

  • Webhook events are now retried automatically: event status can return the new retrying value, and events report their retry progress through new optional attempts, max_retry_attempts, and next_retry_at fields — returned by GET /v1/webhooks/configs/{configId}/events, GET /v1/webhooks/configs/{configId}/events/{eventId}, and POST /v2/webhooks/configs/{configId}/events (which also accepts retrying as a status filter), so consumers must be prepared for this additional status

2026-10-06 Automation API

  • actions[].config.assignees on automation flows now supports the new EntityAssignee and EntityAssigneeVariable assignee types — accepted on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id} and returned wherever flows and executions are read, so consumers must be prepared for these additional assignee types

2026-10-06 Entity API

  • New GET /v1/entity:import:latest endpoint was added for reading the latest entity import, and new POST /v1/entity:discardImport endpoint was added for discarding an import
  • Entity imports can now be run as a dry run: POST /v1/entity:import accepts new optional dry_run and dry_run_job_id fields, as well as a new optional unique_key field
  • Entity imports can now trigger automations through a new optional trigger_automations field on POST /v1/entity:import, and imports report who started them through a new optional started_by field

2026-10-05 Automation API

  • Automation flows can now be triggered by sent emails: a new SentEmailTrigger trigger shape is accepted on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id} and returned wherever flows are read, and executions report the new sent_email value as their trigger_event.type — so consumers must be prepared for these additional trigger and trigger event types

2026-10-05 Dashboard API

  • Dashboards can now be filtered through a new optional filters field, with per-tile tiles[].filter_settings — accepted when creating or updating a dashboard and returned wherever dashboards are read
  • A new notes visualisation was added: visualisation_id on dashboard tiles and insights accepts and returns the new notes value, so consumers must be prepared for this additional visualisation type

2026-10-05 Event Catalog API

  • Catalog events can now be changed through a draft version before publishing: new GET, PUT, and DELETE /v1/events/{event_name}/version_draft endpoints for managing the draft and POST /v1/events/{event_name}/version_draft:publish for publishing it
  • Catalog events now report when they were deprecated through a new optional deprecated_at field, and event mappings support a new optional mapping.payload field, accepted on POST /v1/events and PUT /v1/events/{event_name}

2026-10-05 Journey Config API

  • New POST /v1/journey/configuration/{id}/external-values endpoint was added for a journey configuration's external values

2026-10-05 Workflows Definition API

  • Flow templates now support advanced loops: tasks can define loops through a new optional tasks[].loops field and edges can belong to a loop through a new optional edges[].loop_id field. Both are accepted on POST /v2/flows/templates and PUT /v2/flows/templates/{flowId}, which also take a new optional client_supports_adv_loops query parameter, and both are returned wherever flow templates are read
  • tasks[].loop_config on flow templates is now deprecated in favour of tasks[].loops

2026-10-02 Blueprint Manifest API

  • New merge plan endpoints were added for reviewing and resolving conflicts before a blueprint is installed: GET /v3/blueprint-manifest/merge-plans/{merge_plan_id} with its resources and resources/{resource_key} sub-resources, PUT /v3/blueprint-manifest/merge-plans/{merge_plan_id}/resolutions for setting resolutions, and the :apply, :discard, :replan, :preview-revert, and :revert actions
  • Bulk installs and their targets can now wait for review: status returns the new REVIEW_REQUIRED value from the /v3/blueprint-manifest/bulk-installs endpoints, so consumers must be prepared for this additional status. Bulk installs also report a new counts.review_required count, and jobs and targets link to their merge plan through new optional merge_plan_id fields
  • Blueprint deployments now report their merge plan and whether they can be reverted, through new optional deployments[].merge_plan_id, merge_plan_state, merge_snapshot_id, revert_until, and snapshot_restore_available fields

2026-10-02 Journey Config API

  • Journey environment variables now support typed values: type on GET /v1/journey/environment-variables can return the new Text, Number, Boolean, List<Text>, List<Number>, and List<Boolean> values, with value holding a matching scalar or list — so consumers must be prepared for these additional types
  • GET /v1/journey/configuration/{id}/environment now returns the resolved variables together with any variableErrors, and can now also be called with portal authentication

2026-10-02 Organization API

  • New GET /v2/organization/announcements/active and POST /v2/organization/announcements/{announcement_id}/acknowledge endpoints were added for reading active announcements and acknowledging them