Skip to main content

API Changelog

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

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

2026-10-02 Submission API

  • GET /v1/submission/nonce/{nonce_id} now responds with an object containing a required exists flag and an optional nonce instead of returning the nonce directly (breaking)

2026-10-01 Blueprint Manifest API

  • Blueprint jobs can now fail with the new workflow_quota_reached error code when installing would exceed the organization's workflow limit, with new optional data.current, data.max_allowed, and data.planned fields describing the quota โ€” returned wherever blueprint job errors are read, so consumers must be prepared for this additional error code

2026-09-30 Blueprint Manifest API

  • Email signatures and shared inboxes can now be included in blueprints through the new email_signature and shared_inbox resource types โ€” accepted when adding blueprint resources and creating exports, and returned wherever blueprint resources, manifests, and jobs are read, so consumers must be prepared for these additional resource types

2026-09-30 Email Settings API

  • DELETE /v1/email-settings now responds with 204 and no content instead of 200

2026-09-30 Integration Address API

  • New GET /v1/integration/location/{country}/enrich endpoint was added for enriching location data for a country

2026-09-30 Permissions API

  • Roles can now be scoped to a portal through a new optional portal_id field โ€” accepted on POST /v1/permissions/roles and PUT /v1/permissions/roles/{roleId} and returned wherever roles are read

2026-09-29 Entity API

  • The zipcode and zipcode_town values of conditions[].format on entity schemas were renamed to postal_code and postal_code_city โ€” affecting PUT /v1/entity/schemas/{slug} and everywhere entity schemas are read (breaking)

2026-09-29 Integration Toolkit API

  • New POST /v1/integrations/{integrationId}/outbound/mapping-simulation endpoint was added for simulating outbound mappings
  • Dead-lettered outbound messages can now be redriven with the current mapping re-applied through a new optional reapply_mapping field on POST /v1/integrations/{integrationId}/outbound/messages/dlq/redrive โ€” redrive results can now return the new mapping_failed status together with a mapping_error, so consumers must be prepared for this additional status
  • POST /v2/integrations/{integrationId}/monitoring/stats can now filter by correlation through new optional correlation_id and correlation_ids fields, and group results by the new correlation_id value of group_by
  • New GET /v2/erp/imports/{importId}/download and GET /v2/erp/imports/{importId}/preview endpoints were added for downloading and previewing an import
  • validation.entity_details_truncated was removed from import responses on all /v2/erp/imports endpoints (breaking)

2026-09-28 Workflows Definition API

  • Flow templates can now define how contexts are handled through a new optional context_settings field, and automation tasks can attach their output to contexts through a new optional tasks[].automation_config.output_context.attach_to_contexts field โ€” both accepted on POST /v2/flows/templates and PUT /v2/flows/templates/{flowId} and returned wherever flow templates are read

2026-09-28 Workflows Execution API

  • Flow executions can now be kept in the background: new optional visibility and visible_on fields control where an execution is shown โ€” accepted on PATCH /v2/flows/executions/{execution_id} and returned wherever flow executions are read โ€” and POST /v2/flows/executions:search accepts a new optional include_background flag for including background executions in the results