Changelog
v5.0.1 — Jun 23, 2026
- Added optional
timeBucketMsstring to the request body ofPOST /dataplans/policies/v1/all/forecast-usage(forecast TCO policy usage). When set, the forecast is bucketed into intervals of the given millisecond width. Non-breaking; omitting it preserves existing behavior. - Added optional
usageBucketsarray to the response ofPOST /dataplans/policies/v1/all/forecast-usage(forecast TCO policy usage). Each item is{ "bucketStartMs": string, "bytes": string }, wherebucketStartMsis the bucket window start in epoch milliseconds andbytesis the matched bytes within that bucket. Populated only whentimeBucketMsis set on the request; otherwise empty. Non-breaking;estimatedBytesis unchanged.
Jun 22, 2026
- Added company model pricing REST API under
/ai/model-pricing/v3(company resolved from auth context; non-breaking, new endpoints).GET /ai/model-pricing/v3returns{ "pricing": { "id": string (UUID), "companyId": string, "prices": object } }wherepricesis keyed by model name and each value is{ "inputPricePerMillionTokens": number, "outputPricePerMillionTokens": number, "cacheReadPricePerMillionTokens": number, "cacheWritePricePerMillionTokens": number }(USD per one million tokens).PUT /ai/model-pricing/v3accepts request body{ "prices": object (required) }with the same per-model value shape as a full replacement map and returns{ "pricing": { "id": string (UUID), "companyId": string, "prices": object } }.DELETE /ai/model-pricing/v3returns{ "id": string (UUID) }. - Added
CONNECTOR_TYPE_MICROSOFT_TEAMSto theconnectorTypeenum in the cases connector type schema. The value appears inconnectorTypeFiltersin the request body ofPOST /cases/cases/v1(list cases) andPOST /cases/filter-values/v1, and in theconnectorobject within delivery attempts in the response ofPOST /cases/notifications/v1/deliveries. Non-breaking. - Added read-only
resolvedConnectorConfigfield to theConnectorandConnectorSummaryresponse schemas in the notification-center connectors API. The field exposes the full effective connector configuration including backend auto-resolved values (e.g. a Slack integration ID). It is response-only and ignored on create/replace request bodies. It appears inConnectorresponses fromPOST /notifications/notification-center/v1/connectors(Create),PUT /notifications/notification-center/v1/connectors(Replace),GET /notifications/notification-center/v1/connectors/{id}(Get),GET /notifications/notification-center/v1/connectors(List), andGET /notifications/notification-center/v1/connectors/all/list(BatchGet); and inConnectorSummaryresponses fromGET /notifications/notification-center/v1/connectors/all/summaries(BatchGetConnectorSummaries) andGET /notifications/notification-center/v1/connectors/list/summaries(ListConnectorSummaries). Non-breaking. - Added optional
layoutColumnsinteger to dashboard widgets in the request bodies forPOST /dashboards/check/v1,POST /dashboards/dashboards/v1, andPUT /dashboards/dashboards/v1, and in the response payloads fromGET /dashboards/dashboards/v1/{dashboard_id}andGET /dashboards/dashboards/v1/slugs/lookup/{slug}. Non-breaking; omitting it preserves existing layout behavior. - Added
POST /cases/indicators/v1/getto return acaseobject for a source indicator. The request body supports aprometheusAlertobject with requiredfingerprintstring andstartedAtdate-time string. Non-breaking. - Added
minimum: 0to the optionalthresholdnumber in AI evaluation payloads: request bodies forPOST /ai/evaluations/v3andPATCH /ai/evaluations/v3/{id}, and response payloads fromGET /ai/evaluations/v3,GET /ai/evaluations/v3/{id},POST /ai/evaluations/v3, andPATCH /ai/evaluations/v3/{id}. Non-breaking; it documents the existing inclusive lower bound. - Added optional
genericIndicatorsarray undercaseIndicatorsin the case response payloads returned byGET /cases/cases/v1/{id},PUT /cases/cases/v1/{id}, and the list response fromPOST /cases/cases/v1. - Added optional
indicatorTypesarray to thefiltersobject in the request body forPOST /cases/cases/v1, allowing callers to filter the case list by indicator type. - Added a
MICROSOFT_TEAMSvalue to the connector type enum in the connectors payload (POST/PUT/notifications/notification-center/v1/connectors), enabling notification routing to Microsoft Teams. - Added
POST /dashboards/check/v1for validating a dashboard definition or an existing dashboard by ID without persisting changes. The response contains anissuesarray; each issue carriesseverity(enum:SEVERITY_UNSPECIFIED,SEVERITY_ERROR,SEVERITY_WARNING),message(string), andlocation(string, RFC 6901 JSON Pointer). The request body accepts either adashboardobject ordashboardId(string), and an optionalrequestId(string). Non-breaking; the endpoint is additive. - Added the AI Center v3 REST API for managing AI applications and AI evaluations:
- AI applications —
GET /ai/applications/v3(list),GET /ai/applications/v3/{id}(get),DELETE /ai/applications/v3/{id}(delete). - AI evaluations —
POST /ai/evaluations/v3(create),GET /ai/evaluations/v3(list),GET /ai/evaluations/v3/{id}(get),PATCH /ai/evaluations/v3/{id}(update),DELETE /ai/evaluations/v3/{id}(delete), andGET /ai/evaluation-counts/v3/per-type(counts per evaluation type). - Custom evaluations —
POST /ai/custom-evaluations/v3(create),GET /ai/custom-evaluations/v3(list),PATCH /ai/custom-evaluations/v3/{id}(update),DELETE /ai/custom-evaluations/v3/{id}(delete),GET /ai/custom-evaluations/v3/by-application/{application_id}(list for an application), andPOST/DELETE /ai/custom-evaluations/v3/{id}/applications/{application_id}(link / unlink a custom evaluation to an application).
- AI applications —
- Added two analytics alert types to the alert payload, which appears in the request and/or response of the alert-definition endpoints:
POST /alerts/alerts/v3(request and response),PUT /alerts/alerts/v3(request and response),PUT /alerts/alerts/v3/all/replace(request and response),GET /alerts/alerts/v3(response),GET /alerts/alerts/v3/{id}(response), andGET /alerts/alerts/v3/version-ids/{alert_version_id}(response). The alert type-definition object gains ananalyticsImmediatevariant (fires when a DataPrime query returns a result) and ananalyticsThresholdvariant (fires when a numeric result column violates a threshold). Both carry adataprimeQueryobject,useRowsAsPermutations(boolean),evaluationDelayMs(integer),noDataPolicy(object), andtimeframeMinutes(integer);analyticsThresholdadditionally carries arulesarray (1–5 items), atargetColumn(string), and anoperatorenum (ANALYTICS_THRESHOLD_OPERATOR_MORE_THAN_OR_UNSPECIFIED,ANALYTICS_THRESHOLD_OPERATOR_LESS_THAN,ANALYTICS_THRESHOLD_OPERATOR_MORE_THAN_OR_EQUALS,ANALYTICS_THRESHOLD_OPERATOR_LESS_THAN_OR_EQUALS,ANALYTICS_THRESHOLD_OPERATOR_EQUALS). Thetypeenum on the same payload gainsALERT_DEF_TYPE_ANALYTICS_IMMEDIATEandALERT_DEF_TYPE_ANALYTICS_THRESHOLD. Optional and non-breaking. - Breaking: Removed the
Extension testing serviceREST API:POST /integrations/testing/v1/extensions/initialize,DELETE /integrations/testing/v1/extensions, andPOST /integrations/testing/v1/extensions. These operations are no longer available. - Added an optional
ollyAnalysisobject to theCaseschema in case responses under/cases/cases/v1. Reports the result of an automated Olly analysis attached to a case (status, optional payload, completion timestamp). Response-only, non-breaking.
Jun 9, 2026
- A path parameter shared by multiple operations on the same path is now declared once at the path level instead of being repeated on each operation. Purely structural and non-breaking — the same parameters apply to the same operations, so the request contract is unchanged.
- Added optional
useDataTimeRangeboolean to the line-chart and time-series-lines widgets in the dashboard payload under/dashboards/dashboards/v1. Whentrue, the widget derives its time window from the returned data instead of the dashboard time range — useful for time-shifted DataPrime queries (e.g.addTime($m.timestamp, 14days)) whose output timestamps fall outside the dashboard's selected window. Optional and non-breaking; omitting it preserves existing behavior. - Breaking (spec contract): Integer fields that carry 64-bit values are now declared as
type: stringwith a digitpattern(^[0-9]+$unsigned,^-?[0-9]+$signed) andminLength: 1/maxLength: 20, instead of as numbers. This matches the actual JSON wire format — servers already emit and accept these values as quoted strings — so there is no runtime behavior change; only the declared type in the spec changes. - Array schemas now declare
minItems: 0(on every array, regardless of item type) and unsigned integer fields declareminimum: 0by default in the spec. Additive and non-breaking (least-restrictive constraints); no runtime behavior change. - Added optional
dataspacestring to the policy target in the log, span, and generic TCO policy payloads (/dataplans/log-policies/v1,/dataplans/span-policies/v1,/dataplans/policies/v1), request and response. A free-form identifier for the target's dataspace, mirroringdataset. Non-breaking. - Added optional
priority(enum:PRIORITY_TYPE_UNSPECIFIED,PRIORITY_TYPE_BLOCK,PRIORITY_TYPE_LOW,PRIORITY_TYPE_MEDIUM,PRIORITY_TYPE_HIGH),priorityOverride(object), andarchiveRetention(object with anidstring) to the policy target in the same log/span/generic policy payloads, request and response. Optional in the spec; server validation determines required semantics. Non-breaking. - 46 PUT/POST request bodies across the aaa, alerts, cases, dashboards, data-exploration, dataengine, dataplan(s), enrichment-rules, events2metrics, incidents, logs, metrics, and slo APIs are now declared
requiredin the spec. Non-breaking — clients were already required to send these bodies; the spec now reflects it. - Added a PagerDuty actor variant to case event actors, returned at
GET /cases/cases/v1/{case_id}/events. ThepagerDutyactor carriespagerDutyUserId(string),displayName(string), optionaluserEmail(string), and optionalcoralogixUserId(string, UUID). Response-only; non-breaking. - Removed the optional
sourcestring from the APM-database impacted-entity in case responses under/cases/cases/v1. The field had no consumers. - Added optional
accessPolicystring to the dashboard create/replace request bodies (POST/PUT /dashboards/dashboards/v1) and the dashboard get responses (GET /dashboards/dashboards/v1/{dashboard_id},GET /dashboards/dashboards/v1/slugs/lookup/{slug}), letting callers read and write a per-dashboard PBAC access policy (opaque JSON string). On create/replace a non-empty value sets the policy; omitting it leaves the policy unchanged. Non-breaking. - Added a PromQL variant to the dashboard variable query source in the dashboard payload under
/dashboards/dashboards/v1. Variables can now be sourced from a PromQL query in addition to metric name, label name, and label value sources. ThepromqlQueryobject carries the query string and an optionalpromqlQueryTypeenum (PROM_QL_QUERY_TYPE_UNSPECIFIED,PROM_QL_QUERY_TYPE_RANGE,PROM_QL_QUERY_TYPE_INSTANT) to opt into range queries. Non-breaking. - Added
resolvedValues(array of strings) to the SLO ownership tag in the SLO payload under/slo/slos/v1, request and response. A flat, deduplicated union of the tag's static values and the values resolved from its label keys (empties excluded), giving a single searchable list regardless of source. Non-breaking. - Added Prometheus Alert Manager support to the cases responses. The case payload returned by
GET /cases/cases/v1/{id}and the list atPOST /cases/cases/v1gains aprometheusAlertIndicatorsarray (an array of Prometheus alert indicator objects, undercaseIndicators) listing the Prometheus alerts contributing to the case, and the case events list atGET /cases/cases/v1/{case_id}/eventsgains aprometheusAlertManagerevent-actor variant. Response-only; non-breaking. - Breaking: moved two
/integrations/*endpoints to resolve OpenAPI path ambiguities. The legacy paths have been removed; clients must switch over.POST /integrations/contextual-data/v1/{integration_id}/test→POST /integrations/contextual-data/v1/test/{integration_id}.GET /integrations/extensions/v1/{id}→GET /integrations/extensions/v1/catalog/{id}.
- Added
allocationType(enum:QUOTA_ALLOCATION_TYPE_UNSPECIFIED,QUOTA_ALLOCATION_TYPE_PERCENTAGE,QUOTA_ALLOCATION_TYPE_LOCKED_UNITS) andcxManaged(boolean, response-only) to the quota allocation rule in the quota-rules payload under/dataplan/quota-rules/v1, letting quota rules distinguish percentage allocation from locked units and identify Coralogix-managed rules. Non-breaking. - Added
GET /cases/cases/v1/{case_id}/deep-linksfor retrieving deep-link URLs from a case to related product views. - Added a
PAGERDUTY_INCIDENTSvalue to the connector type enum in the connectors payload (POST/PUT /notifications/notification-center/v1/connectors), enabling notification routing to PagerDuty via the Incidents API. Non-breaking. - Breaking: removed the deprecated team-configs endpoints. The following paths have been deleted; clients must migrate to the equivalent case-settings paths under
/cases/cases/case-settings/v1/configs(see the 2026-05-19 entry).POST /cases/cases/team-configs/v1/configsGET /cases/cases/team-configs/v1/configs/{id}PATCH /cases/cases/team-configs/v1/configs/{id}DELETE /cases/cases/team-configs/v1/configs/{id}GET /cases/cases/team-configs/v1/configs:getActiveGET /cases/cases/team-configs/v1/configs:getSystemDefaults
- Cases API is now public: the following endpoints now appear in the public OpenAPI spec and customer-facing docs.
GET /cases/cases/v1/{id}POST /cases/cases/v1PUT /cases/cases/v1/{id}PUT /cases/priority-override/v1/{id}DELETE /cases/priority-override/v1/{id}POST /cases/assigned/v1/{id}DELETE /cases/assigned/v1/{id}PUT /cases/acknowledged/v1/{id}DELETE /cases/acknowledged/v1/{id}POST /cases/closed/v1/{id}PUT /cases/resolved/v1/{id}POST /cases/filter-values/v1PUT /cases/assigned/v1DELETE /cases/assigned/v1POST /cases/acknowledged/v1POST /cases/resolved/v1POST /cases/closed/v1POST /cases/priority-override/v1DELETE /cases/priority-override/v1GET /cases/grouping-keys/v1
- Added a new public case-settings API for managing team-level case settings. It supersedes the team-configs endpoints, which are now deprecated and will be removed in a future release — clients should migrate to the new paths below.
POST /cases/cases/case-settings/v1/configsGET /cases/cases/case-settings/v1/configs/{id}PATCH /cases/cases/case-settings/v1/configs/{id}DELETE /cases/cases/case-settings/v1/configs/{id}GET /cases/cases/case-settings/v1/configs:getActiveGET /cases/cases/case-settings/v1/configs:getSystemDefaults
- Breaking: moved five
/notifications/notification-center/v1/presets/*endpoints to resolve OpenAPI path ambiguities with/presets/{id}and/presets/{id}/default. The legacy paths have been removed; clients must switch over.POST /notifications/notification-center/v1/presets/custom→POST /notifications/notification-center/v1/presets:createCustom.PUT /notifications/notification-center/v1/presets/custom→PUT /notifications/notification-center/v1/presets:replaceCustom.POST /notifications/notification-center/v1/presets/{id}/default→POST /notifications/notification-center/v1/presets/{id}/default/apply. (This also resolves the/notifications/notification-center/v1/presets/custom/{id}collision, soDELETE /notifications/notification-center/v1/presets/custom/{id}keeps its existing path.)GET /notifications/notification-center/v1/presets/summaries→GET /notifications/notification-center/v1/presets:getDefaultSummary.POST /notifications/notification-center/v1/presets/tests→POST /notifications/notification-center/v1/presets:test.
- Breaking: moved two cases team-config read endpoints to resolve OpenAPI path ambiguities with
/cases/cases/team-configs/v1/configs/{id}. The legacy paths have been removed; clients must switch over.GET /cases/cases/team-configs/v1/configs/active→GET /cases/cases/team-configs/v1/configs:getActive.GET /cases/cases/team-configs/v1/configs/system-defaults→GET /cases/cases/team-configs/v1/configs:getSystemDefaults.
- Breaking: moved three
/aaa/*endpoints to resolve OpenAPI path ambiguities. The legacy paths have been removed; clients must switch over.GET /aaa/api-keys/v3/list→GET /aaa/api-keys/v3/list/all.GET /aaa/team-groups/v2/{group_id}/users→GET /aaa/team-groups/v2/{group_id}/users/list.PATCH /aaa/teams/v2/{team_id}/members/status→PATCH /aaa/teams/v2/{team_id}/members:updateStatuses.
- Added
POST /dataplans/policies/v1/all/forecast-usage, which forecasts the usage in bytes of a draft TCO policy based on the bytes matched by its filter rules over a given time window. - Breaking: moved two dashboards read endpoints to new REST paths to resolve OpenAPI path ambiguities with
/dashboards/dashboards/v1/{dashboard_id}. The legacy paths have been removed; clients must switch over.GET /dashboards/dashboards/v1/catalog→GET /dashboards/dashboards/v1/catalog/list.GET /dashboards/dashboards/v1/slugs/{slug}→GET /dashboards/dashboards/v1/slugs/lookup/{slug}.
- Added optional
targets(array, 1–10 items) to enrichments in the enrichment-rules payload under/enrichment-rules/enrichment-rules/v1, request and response. Each entry is an object with adatasetstring, scoping the enrichment to specific datasets. Non-breaking. - Added optional
roleArnandexternalIdstrings to the S3 target spec in the archive setup payload under/logs/data-setup/v2, request and response, supportingsts:AssumeRole+ external-ID cross-account S3 access. Non-breaking. - Added Cases KPI support across two cases payloads. Team-level KPI thresholds appear in the case-settings config under
caseLifecycle.kpi(an object whosethresholdsarray holds the per-KPI settings) — written onPOST /cases/cases/case-settings/v1/configsandPATCH /cases/cases/case-settings/v1/configs/{id}, and read onGET /cases/cases/case-settings/v1/configs/{id}(and the:getActive/:getSystemDefaultsreads). Case-level breach data appears in the case payload askpiBreaches(an object with abreachedKpisarray; each entry carrieskpiType,casePriority,breachedAt, andbreachStatus) in the case payload returned byGET /cases/cases/v1/{id}and the list atPOST /cases/cases/v1, response-only. Non-breaking. - Added optional
metadataobject (string-to-string map) to the success result of notification test endpoints (response), e.g.POST /notifications/notification-center/v1/connectors:test. Non-breaking. - Added optional
description(string),dpxlFilter(string), andurlFields(array) to the action payload under/actions/actions/v2, request and response. EachurlFieldsentry is an object withname(string) andrequired(boolean). Non-breaking.