Authentication

There are two modes of authentication:

  • By token: after identification with your login credentials
  • By cookie: by reusing a valid session ID

BusinessActivityTree

Resource 'BusinessActivityTree' operations.

Get the full tree of a Business Activity

Returns the complete recursive tree structure of a BA with all its indicators. BA children outside the user's ACL scope are visible (name + impact) but not expandable; they carry acl_restricted: true on the indicator node so the front can render them greyed and forbid editing. In-scope BA nodes carry acl_restricted: false. The field is absent for non-Business-Activity indicators.

Authorizations:
TokenCookie
path Parameters
id
required
string

BusinessActivityTree identifier

Responses

Response samples

Content type
application/json
{
  • "@context": "/centreon/api/latest/contexts/BusinessActivityTree",
  • "@id": "/centreon/api/latest/configuration/business-activities/1/tree",
  • "@type": "BusinessActivityTree",
  • "id": 1,
  • "name": "Netflix - Frontend",
  • "description": "Frontend journey business activity",
  • "calculation_method": {
    },
  • "downtime_inheritance_mode": 1,
  • "indicators": [
    ]
}

Update a Business Activity tree

Partially updates a Business Activity tree. All sections (business_activities, indicators_added, indicators_updated, indicators_removed) are optional. Mutations targeting Business Activities outside the user's ACL scope are silently ignored (no info leak on the existence of unauthorised resources). The companion GET acl_restricted: true flag tells the front which BA nodes to filter out of the payload client-side; the back-side silent-drop remains as defense-in-depth.

Indicator references — kpi_id or uuid: entries in indicators_removed and the id field of indicators_updated accept either the kpi_id (positive integer) or the uuid string from GET /tree (<shortType><resourceId>, optionally prefixed with h<host>- for host-scoped types). The uuid form is stable across the legacy centreon_business_activity PUT that drops and re-inserts kpi rows on every save — clients that may interleave that PUT with this PATCH should reference indicators by uuid to avoid stale kpi_id lookups. A single uuid resolves to every kpi_id matching it (duplicate-link case), so the action applies to every matching row.

Silent-drop on unknown indicator references: by design, an id in indicators_updated or indicators_removed that does not resolve to anything in the loaded tree — truly unknown, stale kpi_id, unknown uuid, or belonging to a tree the user cannot access — is dropped without error. The endpoint still returns 204. This extends the ACL anti-probing policy to indicator identity: response codes must not reveal whether an unknown id corresponds to a real resource. Clients relying on feedback about their own mistakes (typoed field names, stale ids) must validate client-side.

Validation errors — 400 vs 422: the two codes cohabit by design. 400 covers payload-level validation (Symfony constraints on the input DTOs, raised as ValidationException and mapped to 400 by the legacy global configuration). 422 covers business-rule violations that require database context (BA existence, tree membership, name uniqueness, resource references). The split is transitional: both classes will converge on 422 once the legacy 400 mapping is dropped platform-wide.

Authorizations:
TokenCookie
path Parameters
id
required
string

BusinessActivityTree identifier

Request Body schema: application/merge-patch+json
required

The updated BusinessActivityTree resource

business_activities
Array of strings or null or null
indicators_added
Array of strings or null or null
indicators_updated
Array of strings or null or null
indicators_removed
Array of strings or null or null

Responses

Request samples

Content type
application/merge-patch+json
{
  • "business_activities": [
    ],
  • "indicators_added": [
    ],
  • "indicators_updated": [
    ],
  • "indicators_removed": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "[indicators_added[0].parent_resource_id] parent_resource_id is required for service and anomaly-detection indicators.\n"
}

BusinessActivity

Resource 'BusinessActivity' operations.

List the Business Activities

Returns the paginated list of Business Activities the user is allowed to see. Admins and users with the all_business_views grant see every BA; other users only see the BAs reachable through their business views. Searchable / sortable fields: id, name, description, is_enabled.

Authorizations:
TokenCookie
query Parameters
search
object

Filter by field and operator, e.g. ?name[lk]=foo, ?id[eq]=1, ?is_enabled[eq]=true. Allowed operators: eq, neq, lk, nlk, in, nin.

sort
object

Sort by field and direction, e.g. ?sort[name]=ASC.

show_only_top_level
boolean

When true, only top-level Business Activities (roots and orphans) are returned; BAs referenced as a child of another (accessible) BA are hidden. Absent or false keeps every accessible BA.

page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 30 ]
Default: 30

The number of items per page

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Business Views

List the business views

Available since : 20.10.0

Returns all business views.

The available parameters to search / sort_by are:

  • id
  • name
  • description
  • is_enabled
Authorizations:
TokenCookie
query Parameters
limit
integer >= 1
Default: 10
Example: limit=20

Number of items per page

page
integer >= 1
Default: 1
Example: page=4

Number of the requested page

search
string

Retrieve only data matching the defined search value. A simple search can be done like in the following example search={"host.name":"Central"} A complex search can be done with aggregators and operators. Available search aggregators are:

  • $or
  • $and

Available search operators are:

  • $eq → equal
  • $neq → not equal
  • $lt → less than
  • $le → less or equal than
  • $gt → greater than
  • $ge → greater or equal than
  • $lk → like
  • $nk → not like
  • $in → in
  • $ni → not in
  • $rg → regex

Examples without nested aggregators:

search={
  "$or":[
    {"host.name":{"$eq":"name_1"}},
    {"host.name":{"$eq":"name_2"}}
  ]
}
search={
  "$and":[
    {"host.address":{"$rg":"^10\.0\.0\.\d+$"}},
    {"host.name":{"$lk":"fr%"}}
  ]
}

Example with nested aggregators:

search={
  "$or":[
    {
      "$and":[
        {"host.address":{"$rg":"^10\.0\.0\.\d+$"}},
        {"host.name":{"$lk":"fr%"}}
      ]
    },
    {
      "$and":[
        {"host.address":{"$rg":"^192\.168\.0\.\d+$"}},
        {"host.name":{"$lk":"us%"}}
      ]
    }
  ]
}
sort_by
string
Example: sort_by={"host.name":"ASC"}

Sort the resulting data by its properties

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "meta": {
    }
}

List Business Views from the real time

Available since : 24.10.0

Returns the list of business views from real time context

The available parameters to search / sort_by are:

  • id
  • name
Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "meta": {
    }
}

Business Activities

Delete a business activity

Delete a business activity

Authorizations:
TokenCookie
path Parameters
id
required
integer >= 1
Example: 1

Business activity ID

Responses

Response samples

Content type
application/json
{
  • "code": 403,
  • "message": "You are not authorized to access this resource"
}

Find a business activity

Find a business activity

Authorizations:
TokenCookie
path Parameters
id
required
integer >= 1
Example: 1

Business activity ID

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "BA1",
  • "is_activated": true,
  • "description": "ba 1",
  • "icon": {
    },
  • "business_views": [
    ],
  • "monitoring_servers": [
    ],
  • "geo_coordinates": "48.10,12.5",
  • "map_view": "map-view-name",
  • "notification": {
    },
  • "reporting": {
    },
  • "event_handler": {
    },
  • "indicator": {
    }
}

List a business activity KPI's tree

Available since : 24.04.0

Returns A Business Activity with its KPIs.

Authorizations:
TokenCookie
path Parameters
id
required
integer >= 1
Example: 1

Business activity ID

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": 0,
  • "type": "Business Activity",
  • "calculation_method": {
    },
  • "indicators": [
    ]
}

List Business Activities from the real time

Available since : 24.10.0

Returns the list of Business Activities from the real time context

The available parameters to search / sort_by are:

  • id
  • name
  • status
  • business_view.name
Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "meta": {
    }
}

List Business Activities statuses from the real time

Available since : 24.10.0

Returns the list of Business Activities statuses from the real time context

The available parameters to search / sort_by are:

  • id
  • name
  • status
  • business_view.name
Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "critical": {
    },
  • "unknown": {
    },
  • "ok": {
    },
  • "down": {
    },
  • "pending": {
    },
  • "total": 0
}

Get Business Activity detail from real time context

Available since : 24.10.0

Returns the detail of a Business Activity from the real time context with associated indicators

Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "string",
  • "status": {
    },
  • "infrastructure_view": "Geoview1",
  • "calculation_method": {
    },
  • "current_level": 0,
  • "inherit_kpi_downtimes": 1,
  • "indicators": [
    ]
}

Get impacting indicators of a Business Activity from real time context

Available since : 24.10.0

Returns the impacting indicators of a Business Activity from the real time context

Authorizations:
TokenCookie
query Parameters
start
required
string <date-time>
Example: start=2024-09-10T12:45:00.000Z

Start date of indicator timeline

end
required
string <date-time>
Example: end=2024-09-10T13:45:00.000Z

End date of indicator timeline

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "meta": {
    }
}

Get Business Activity's timeline

Available since : 24.10.0

Returns the timeline of a Business Activity status

Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Marketing Web App",
  • "timeline": [
    ]
}

Indicators

List all available indicators

Available since : 23.04.0

Returns all available indicators.

The available parameters to search / sort_by are:

  • name
Authorizations:
TokenCookie
query Parameters
limit
integer >= 1
Default: 10
Example: limit=20

Number of items per page

page
integer >= 1
Default: 1
Example: page=4

Number of the requested page

search
string

Retrieve only data matching the defined search value. A simple search can be done like in the following example search={"host.name":"Central"} A complex search can be done with aggregators and operators. Available search aggregators are:

  • $or
  • $and

Available search operators are:

  • $eq → equal
  • $neq → not equal
  • $lt → less than
  • $le → less or equal than
  • $gt → greater than
  • $ge → greater or equal than
  • $lk → like
  • $nk → not like
  • $in → in
  • $ni → not in
  • $rg → regex

Examples without nested aggregators:

search={
  "$or":[
    {"host.name":{"$eq":"name_1"}},
    {"host.name":{"$eq":"name_2"}}
  ]
}
search={
  "$and":[
    {"host.address":{"$rg":"^10\.0\.0\.\d+$"}},
    {"host.name":{"$lk":"fr%"}}
  ]
}

Example with nested aggregators:

search={
  "$or":[
    {
      "$and":[
        {"host.address":{"$rg":"^10\.0\.0\.\d+$"}},
        {"host.name":{"$lk":"fr%"}}
      ]
    },
    {
      "$and":[
        {"host.address":{"$rg":"^192\.168\.0\.\d+$"}},
        {"host.name":{"$lk":"us%"}}
      ]
    }
  ]
}
sort_by
string
Example: sort_by={"host.name":"ASC"}

Sort the resulting data by its properties

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "meta": {
    }
}

List indicators from the real time

Available since : 24.10.0

Returns the list of indicators linked to Business Activities from the real time context

The available parameters to search / sort_by are:

  • name
  • status
  • business_activity.name
  • business_view.name
Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "meta": {
    }
}

List indicator statuses from the real time

Available since : 24.10.0

Returns the list of indicator statuses linked to Business Activities from the real time context

The available parameters to search / sort_by are:

  • name
  • status
  • business_activity.name
Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "ok": {
    },
  • "warning": {
    },
  • "critical": {
    },
  • "unknown": {
    },
  • "pending": {
    },
  • "total": 0
}

Get boolean rule detailed information from real time context

Available since : 24.10.0

Returns the detailed information of boolean rule from the real time context

Authorizations:
TokenCookie

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "boolean-rule-1",
  • "status": {
    },
  • "is_impacting_when_expression_true": true,
  • "expression_status": true
}

Impacts

List all impacts

Returns all impacts configurations.

Authorizations:
TokenCookie
query Parameters
page
integer >= 1
Default: 1
Example: page=4

Number of the requested page

limit
integer >= 1
Default: 10
Example: limit=20

Number of items per page

Responses

Response samples

Content type
application/json
{
  • "status": true,
  • "result": {
    },
  • "pagination": {
    }
}