API Changelog
Breaking changes, new features, and significant updates to epilot APIs. Subscribe via RSS
2026-07-28 Entity API
- New
POST /v1/entity:abortImportendpoint added for aborting an entity import that is still running
2026-07-27 App API
- New optional
change_modeanddelete_contactfields added to portal extension hook configuration โ settable viaPOST/PATCH /v1/app-configurations/{appId}/versions/{version}/componentsand 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}, andDELETE /v2/blueprint-manifest/blueprints/{blueprint_id}/notes/{note_id}endpoints added for adding, editing, and removing a note, and anotesfield 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 anupdated_attimestamp - New optional
sync_notesinstall option added toPOST /v2/blueprint-manifest/blueprint:install,POST /v3/blueprint-manifest/blueprint:install,POST /v3/blueprint-manifest/bulk-installs, andPOST /v2/blueprint-manifest/jobs/{job_id}:continue, controlling whether blueprint notes are carried over during installation
2026-07-27 Integration Toolkit API
- Passing
group_idon events is now supported for parallelization within a batch of events inPOST /v3/erp/updates/events POST /v1/integrations/{integrationId}/events/replayresponses now always includereplayedandresults, 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-checkandGET /v3/blueprint-manifest/blueprints/{blueprint_id}/deployments/{job_id}/health-reportendpoints 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/connectionsfor listing and creating connections,GET/PUT/DELETE /v2/smtp/connections/{connectionId}for reading, updating, and removing a single connection, andPOST /v2/smtp/connections/{connectionId}/testfor verifying that a connection works - New endpoints added for managing the sender addresses used with those connections:
GET/POST /v2/smtp/sendersfor listing and adding senders, andDELETE /v2/smtp/senders/{email}for removing one
2026-07-25 Integration Toolkit API
- New
POST /v2/integrations/{integrationId}/monitoring/external-eventsandGET /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_idfield added to ERP update events (POST /v1/erp/updates/eventsandPOST /v2/erp/updates/events) and returned for each event onPOST /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}/providersendpoint added, listing the available previous providers for a given integration type
2026-07-22 Message API
- New optional
inbox_idfield added toPOST /v1/message/threads:searchIds, limiting the returned thread IDs to threads in that inbox
2026-07-22 Metering API
- New
POST /v2/metering/readings/pruneendpoint added for removing meter readings
2026-07-21 Notification API
- New optional
allowed_channelsfield (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
anonymizequery parameter was added to the entity read endpoints (GET /v1/entity/{slug}/{id}and its v2/v3 variants, plus theactivity,changesets,relations,/v1/entity/activity/{id}, and/v1/entity:autocompleteoperations), and an optionalanonymizerequest-body flag was added toPOST /v1/entity:search,:list, and:export; whentrue, 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 withanonymize: true) - New optional
data_classificationfield (piiorpublic) added to every entity schema attribute type โ returned by the schema endpoints and settable viaPOST /v1/entity/schemas/attributesโ wherepiialways anonymizes the attribute value in anonymized responses andpublicnever does, overriding the built-in defaults
2026-07-16 File API
- New
GET /v1/files/{id}/textendpoint added, returning the plain-text representation of a file entity (FileText); itsstatusisready(text available),not_readywhile the text is still being prepared, orunsupportedwhen text is unavailable for the file or organization
2026-07-15 Access Token API
- New optional
anonymizeflag added when creating access tokens (POST /v1/access-tokens, including the app-token and assume-token variants); whentrue, 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}:publishendpoint added for starting an asynchronous V3 blueprint publication
2026-07-15 Customer Portal API
- New
POST /v2/portal/contract/{id}/resolve-templatesendpoint 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:generatenow accepts an optionalcontext_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:workloadendpoint 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_expressionfield (max 15000 characters) was added tofilterConditions.conditions[], evaluated against the event payload and passing when the result is truthy, andfield/operationbecame optional โ a condition is now either a classic field + operation comparison or a JSONata expression (the two are mutually exclusive), accepted onPOST/PUT /v1/webhooks/configsand returned in config responses
2026-07-13 File API
- New optional read-only
etagfield (the file's S3 content hash) added to file responses โ on both the file attributes and each entry inversions[]โ 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) onfilterConditions.conditions[].operation, letting event delivery be filtered by the item count of a field value (an array yields its length, a missing/null value yields0, any other single value yields1); accepted onPOST/PUT /v1/webhooks/configsand returned in config responses
2026-07-10 Event: Service Meter Reading Added
- New optional
file_idfield added to eachmeter_readingsitem, carrying the entity ID of the photo submitted with that reading; it matches anevent_attachments[].entity_id, so consumers can pair a reading with its attachment deterministically instead of relying on therelation_tags/_tags/mime_type/_created_atheuristics (which remain the fallback whenfile_idis absent)
2026-07-09 Blueprint API
- The
schema,taxonomy,family, andpermissionresource 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
typeenum was narrowed โ theconsecutive_failures,first_error,new_error_code,auth_expiry,ack_timeout, andvalidation_surgevalues are no longer accepted on create/update or returned in responses, and the relatedconsecutiverule field was removed from both requests and responses (breaking)
2026-07-09 User API
- New optional
in_app_notification_settingfield added to users โ returned across the/v2/userslist, get,me, invite, and group responses and settable viaPATCH /v2/users/{id}โ controlling per-type in-app notification delivery preferences