Skip to main content

API Changelog

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

2026-07-28 Entity API

  • New POST /v1/entity:abortImport endpoint added for aborting an entity import that is still running

2026-07-27 App API

  • New optional change_mode and delete_contact fields added to portal extension hook configuration โ€” settable via POST/PATCH /v1/app-configurations/{appId}/versions/{version}/components and returned by the app, app-configuration, and public component read endpoints

2026-07-27 Blueprint API

  • Blueprints can now carry notes: new POST /v2/blueprint-manifest/blueprints/{blueprint_id}/notes, PATCH /v2/blueprint-manifest/blueprints/{blueprint_id}/notes/{note_id}, and DELETE /v2/blueprint-manifest/blueprints/{blueprint_id}/notes/{note_id} endpoints added for adding, editing, and removing a note, and a notes field is now accepted when creating or updating a blueprint (POST/PUT /v2/blueprint-manifest/blueprints) and returned on the blueprint read, list, create, update, and delete responses; each note also carries an updated_at timestamp
  • New optional sync_notes install option added to POST /v2/blueprint-manifest/blueprint:install, POST /v3/blueprint-manifest/blueprint:install, POST /v3/blueprint-manifest/bulk-installs, and POST /v2/blueprint-manifest/jobs/{job_id}:continue, controlling whether blueprint notes are carried over during installation

2026-07-27 Integration Toolkit API

  • Passing group_id on events is now supported for parallelization within a batch of events in POST /v3/erp/updates/events
  • POST /v1/integrations/{integrationId}/events/replay responses now always include replayed and results, reporting how many events were replayed and the outcome for each one

2026-07-26 Blueprint API

  • New POST /v3/blueprint-manifest/blueprints/{blueprint_id}/deployments/{job_id}:health-check and GET /v3/blueprint-manifest/blueprints/{blueprint_id}/deployments/{job_id}/health-report endpoints added for starting a health check on a blueprint deployment and reading the resulting health report

2026-07-26 Email Settings API

  • New endpoints added for managing custom SMTP connections: GET/POST /v2/smtp/connections for listing and creating connections, GET/PUT/DELETE /v2/smtp/connections/{connectionId} for reading, updating, and removing a single connection, and POST /v2/smtp/connections/{connectionId}/test for verifying that a connection works
  • New endpoints added for managing the sender addresses used with those connections: GET/POST /v2/smtp/senders for listing and adding senders, and DELETE /v2/smtp/senders/{email} for removing one

2026-07-25 Integration Toolkit API

  • New POST /v2/integrations/{integrationId}/monitoring/external-events and GET /v2/integrations/{integrationId}/monitoring/traces/{correlationId} endpoints added for reporting externally-observed events into integration monitoring and for reading the full trace belonging to one correlation ID
  • New optional correlation_id field added to ERP update events (POST /v1/erp/updates/events and POST /v2/erp/updates/events) and returned for each event on POST /v1/integrations/{integrationId}/events, letting an event be tied to a monitoring trace

2026-07-24 Integration Previous Provider API

  • New GET /v2/integration/{type}/providers endpoint added, listing the available previous providers for a given integration type

2026-07-22 Message API

  • New optional inbox_id field added to POST /v1/message/threads:searchIds, limiting the returned thread IDs to threads in that inbox

2026-07-22 Metering API

  • New POST /v2/metering/readings/prune endpoint added for removing meter readings

2026-07-21 Notification API

  • New optional allowed_channels field (email, in_app) added when creating notifications and returned on notification reads; it caps which delivery channels a notification may use, with actual delivery being the intersection of this list and each recipient's own channel preferences (an empty array suppresses all delivery)

2026-07-16 Entity API

  • Entity data can now be returned with PII removed: an optional anonymize query parameter was added to the entity read endpoints (GET /v1/entity/{slug}/{id} and its v2/v3 variants, plus the activity, changesets, relations, /v1/entity/activity/{id}, and /v1/entity:autocomplete operations), and an optional anonymize request-body flag was added to POST /v1/entity:search, :list, and :export; when true, identifiers such as names, emails, phone numbers, and IBANs are replaced with deterministic pseudonyms (anonymization is forced regardless of the flag when the access token was created with anonymize: true)
  • New optional data_classification field (pii or public) added to every entity schema attribute type โ€” returned by the schema endpoints and settable via POST /v1/entity/schemas/attributes โ€” where pii always anonymizes the attribute value in anonymized responses and public never does, overriding the built-in defaults

2026-07-16 File API

  • New GET /v1/files/{id}/text endpoint added, returning the plain-text representation of a file entity (FileText); its status is ready (text available), not_ready while the text is still being prepared, or unsupported when text is unavailable for the file or organization

2026-07-15 Access Token API

  • New optional anonymize flag added when creating access tokens (POST /v1/access-tokens, including the app-token and assume-token variants); when true, all entity data returned to the token is PII-anonymized and the bearer cannot turn it off โ€” the flag is also returned on token list, create, and delete responses

2026-07-15 Blueprint API

  • New POST /v3/blueprint-manifest/blueprints/{blueprint_id}:publish endpoint added for starting an asynchronous V3 blueprint publication

2026-07-15 Customer Portal API

  • New POST /v2/portal/contract/{id}/resolve-templates endpoint added โ€” a POST variant of get-contract that accepts Handlebars templates and returns their resolved output per related meter (templates_output)

2026-07-15 Journey Config API

  • POST /v1/journey/document:generate now accepts an optional context_entity_id, resolving entity and relational template variables against that entity when generating the document

2026-07-14 Message API

  • New POST /v2/message/threads:workload endpoint added, returning the number of open threads assigned directly to each of up to 100 requested users (matching their central-inbox open view) for use in assignment load-balancing

2026-07-14 Webhooks API

  • Webhook filter conditions can now be expressed as a single JSONata expression: a new optional jsonata_expression field (max 15000 characters) was added to filterConditions.conditions[], evaluated against the event payload and passing when the result is truthy, and field/operation became optional โ€” a condition is now either a classic field + operation comparison or a JSONata expression (the two are mutually exclusive), accepted on POST/PUT /v1/webhooks/configs and returned in config responses

2026-07-13 File API

  • New optional read-only etag field (the file's S3 content hash) added to file responses โ€” on both the file attributes and each entry in versions[] โ€” across the v1 and v2 file endpoints, letting clients detect real content changes without re-downloading the file

2026-07-13 Webhooks API

  • Webhook filter conditions now support six length-based operators (length_equals, length_not_equals, length_greater_than, length_less_than, length_greater_than_or_equals, length_less_than_or_equals) on filterConditions.conditions[].operation, letting event delivery be filtered by the item count of a field value (an array yields its length, a missing/null value yields 0, any other single value yields 1); accepted on POST/PUT /v1/webhooks/configs and returned in config responses

2026-07-10 Event: Service Meter Reading Added

  • New optional file_id field added to each meter_readings item, carrying the entity ID of the photo submitted with that reading; it matches an event_attachments[].entity_id, so consumers can pair a reading with its attachment deterministically instead of relying on the relation_tags/_tags/mime_type/_created_at heuristics (which remain the fallback when file_id is absent)

2026-07-09 Blueprint API

  • The schema, taxonomy, family, and permission resource types are no longer accepted by the uniqueness-criteria endpoints (GET/PUT/DELETE /v1/blueprint-manifest/uniqueness-criteria/{resource_type}) and no longer appear in their responses (breaking)

2026-07-09 Integration Toolkit API

  • The integration notification rule type enum was narrowed โ€” the consecutive_failures, first_error, new_error_code, auth_expiry, ack_timeout, and validation_surge values are no longer accepted on create/update or returned in responses, and the related consecutive rule field was removed from both requests and responses (breaking)

2026-07-09 User API

  • New optional in_app_notification_setting field added to users โ€” returned across the /v2/users list, get, me, invite, and group responses and settable via PATCH /v2/users/{id} โ€” controlling per-type in-app notification delivery preferences