Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Live Objects REST API Guide Triggers and Actions API
description: API description for Live Objects service
contact:
name: Live Objects Support
url: https://liveobjects.orange-business.com/#/cms/support
version: 2026.7.0
servers:
- url: https://liveobjects.orange-business.com
security:
- X-API-KEY: []
OAuth2.0: []
tags:
- name: Triggers and Actions
description: Action policies on event and messages
paths:
/api/v1/event2action/diagnostics/actionPolicies/{policyId}/actions/{actionId}/suspended:
put:
tags:
- Triggers and Actions
summary: Resume a suspended action
description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.<p>When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.<p>Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.<br/><br/>Usage of this API will be reported in your access log under ''routing'' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: updateActionSuspension
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
- name: actionId
in: path
required: true
schema:
type: string
minLength: 1
requestBody:
content:
application/json:
schema:
type: boolean
examples:
Request body:
description: Use 'false' in the request body to resume a suspended action.
value: false
required: true
responses:
'204':
description: Action diagnostic successfully updated
'404':
description: 'Unknown Action diagnostic '
/api/v1/event2action/actionPolicies/{policyId}:
get:
tags:
- Triggers and Actions
summary: Retrieve an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>
Please see the dedicated sections in our developer guide for more details.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getActionPolicyV1
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to retrieve
required: true
schema:
type: string
- name: showSensitiveInformation
in: query
description: whether or not to show sensitive information, such as HttpPush headers, Azure secrets
required: false
schema:
type: boolean
responses:
'200':
description: ActionPolicy Successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
'404':
description: Unknown ActionPolicy
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
put:
tags:
- Triggers and Actions
summary: Create or update an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>
Please see the dedicated sections in our developer guide for more details.<br/><br/>Usage of this API will be reported in your access log under ''routing'' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: updateActionPolicyV1
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to save. Max length is 100.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
examples:
PUT with no actionIds:
description: This example will update an action policy with new actions (action ids not provided)
value:
id: 000000-0000-0000-0000-00000000
name: name-aea80c1d-5777-4e20-822c-5e6871f428e5
enabled: true
triggers:
deviceStatus:
version: 1
filter:
connectors:
- mqtt
groupPaths:
- path: /lyon
includeSubPath: true
actions:
emails:
- to:
- notification@orange.com
cc:
- cc@orange.com
cci:
- cci@orange.com
subjectTemplate: State change for {{stateKey}}
contentTemplate: '{{stateKey}} change from state {{previousState}} to state {{newState}} at {{timestamp}}'
sms:
- destinationPhoneNumbers:
- '+33601234567'
contentTemplate: '{{stateKey}} new state {{newState}} at {{timestamp}}'
required: true
responses:
'200':
description: ActionPolicy created or updated
'404':
description: Unknown ActionPolicy
delete:
tags:
- Triggers and Actions
summary: Delete an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>
Please see the dedicated sections in our developer guide for more details.<br/><br/>Usage of this API will be reported in your access log under ''routing'' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: deleteActionPolicyV1
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to delete
required: true
schema:
type: string
responses:
'204':
description: ActionPolicy Successfully deleted
'404':
description: Unknown ActionPolicy
/api/v1/event2action/actionPolicies/{policyId}/enabled:
put:
tags:
- Triggers and Actions
summary: Enable or Disable an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>
Please see the dedicated sections in our developer guide for more details.You can use this API to re-enabled a suspended policy.<br/><br/>Usage of this API will be reported in your access log under ''routing'' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: setEnabledField
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to update
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: boolean
description: Use 'true' to enable and 'false' to disable.
required: true
responses:
'200':
description: ActionPolicy 'enabled' field updated
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
'404':
description: Unknown ActionPolicy
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
/api/v1/event2action/actionPolicies:
get:
tags:
- Triggers and Actions
summary: List ActionPolicies
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>
Please see the dedicated sections in our developer guide for more details.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: listActionPoliciesV1
parameters:
- name: triggerType
in: query
description: Filter on action policy trigger type.
required: false
schema:
type: string
enum:
- dataMessage
- stateChange
- deviceActivity
- matchingFired
- deviceStatus
- commandStatus
- deviceCreated
- deviceDeleted
- loraNetwork
- loraGatewayStatus
- connectivityManagementPlatformEvent
- alarmEvent
responses:
'200':
description: ActionPolicies Successfully retrieved
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActionPolicy'
post:
tags:
- Triggers and Actions
summary: Create an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>
Please see the dedicated sections in our developer guide for more details.<br/><br/>Usage of this API will be reported in your access log under ''routing'' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: createActionPolicyV1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
examples:
POST ActionPolicy:
description: This example will create a new action policy (action ids not provided)
value:
name: name-aea80c1d-5777-4e20-822c-5e6871f428e5
enabled: true
triggers:
deviceStatus:
version: 1
filter:
connectors:
- mqtt
groupPaths:
- path: /lyon
includeSubPath: true
actions:
emails:
- to:
- notification@orange.com
cc:
- cc@orange.com
cci:
- cci@orange.com
subjectTemplate: State change for {{stateKey}}
contentTemplate: '{{stateKey}} change from state {{previousState}} to state {{newState}} at {{timestamp}}'
sms:
- destinationPhoneNumbers:
- '+33601234567'
contentTemplate: '{{stateKey}} new state {{newState}} at {{timestamp}}'
required: true
responses:
'200':
description: ActionPolicy created
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
/api/v1/event2action/metrics/actionPolicies/{policyId}/actions/{actionId}:
get:
tags:
- Triggers and Actions
summary: Retrieve the metrics of an action. BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.
description: 'Metrics of an ActionPolicy (success, failures, supervision, response time...), hourly or daily based.<p>Not all types of action have metrics. Metrics are not in real time, updated several times a day, and are estimated.<p>All days and hours are UTC. A maximum period of 31 days is allowed. When ''hourly'' parameter is true, then the maximum period allowed is 7 days.<p>You can retrieve additional information on errors in your Activity logs.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getMetricsByActionId
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
- name: actionId
in: path
required: true
schema:
type: string
minLength: 1
- name: hourly
in: query
description: when true, also retrieve detailed hour by hour metrics. hourly metrics are limited to 7 days, else the limit is 1 month of metrics. Default value is false.
required: false
schema:
type: boolean
default: false
- name: fromDay
in: query
description: Day from which retrieve the metrics. yyyy-MM-dd format (e.g. '2024-01-01'). If not set, maximum of 1 month will be retrieved.
required: false
schema:
type: string
- name: toDay
in: query
description: Day until which retrieve the metrics. yyyy-MM-dd format (e.g. '2024-01-12'). If not set, today is used.
required: false
schema:
type: string
- name: timeZoneOffset
in: query
description: 'Time zone offset to apply, ISO-8601 format restricted to hours : ''±[hh]'' (e.g. ''+02'', ''-01''). Must be between [-18, +18]. Offset minutes, if any, will be ignored.Depending on your HTTP client, ''+'' character may have to be url encoded into ''%2B''.'
required: false
schema:
type: string
responses:
'200':
description: Action metrics successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionMetrics'
'404':
description: Unknown Action metrics
content:
application/json:
schema:
$ref: '#/components/schemas/ActionMetrics'
/api/v1/event2action/fifos:
get:
tags:
- Triggers and Actions
summary: Listing FIFO with their linked actions.
description: 'Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: listFifosWithActions
parameters:
- name: withStatus
in: query
description: when true, also retrieve fifo status
required: false
schema:
type: boolean
default: false
responses:
'200':
description: The FIFO status list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FifoWithActions'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'403':
description: Request forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'429':
description: Too Many Request
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
/api/v1/event2action/fifos/{fifoName}:
get:
tags:
- Triggers and Actions
summary: Getting a FIFO with linked actions
description: 'Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getFifoWithActions
parameters:
- name: fifoName
in: path
description: name of the fifo. Fifo name must respect the following regular expression <code>[A-Za-z\d\-_~]+</code> (max 255 characters)
required: true
schema:
type: string
- name: withStatus
in: query
description: when true, also retrieve fifo status
required: false
schema:
type: boolean
default: false
responses:
'200':
description: A FIFO
content:
application/json:
schema:
$ref: '#/components/schemas/FifoWithActions'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'403':
description: Request forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'404':
description: FIFO not found
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
/api/v1/event2action/diagnostics/actionPolicies:
get:
tags:
- Triggers and Actions
summary: Retrieve action diagnostics
description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.<p>When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.<p>Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getAllDiagnosticsForTenant
responses:
'200':
description: Action diagnostics successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicyDiagnosticsList'
/api/v1/event2action/diagnostics/actionPolicies/{policyId}:
get:
tags:
- Triggers and Actions
summary: Retrieve all action diagnostics of an action policy
description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.<p>When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.<p>Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getDiagnosticsByPolicyId
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: Action diagnostics successfully retrieved
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActionDiagnostic'
/api/v1/event2action/diagnostics/actionPolicies/{policyId}/actions/{actionId}:
get:
tags:
- Triggers and Actions
summary: Retrieve an action diagnostic
description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.<p>When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.<p>Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getDiagnosticByActionId
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
- name: actionId
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: Action diagnostic successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionDiagnostic'
'404':
description: 'Unknown Action diagnostic '
content:
application/json:
schema:
$ref: '#/components/schemas/ActionDiagnostic'
components:
schemas:
FifoMessageCounters:
type: object
properties:
daily:
type: array
items:
$ref: '#/components/schemas/DailyFifoMessageDeliveryCounters'
hourly:
type: array
items:
$ref: '#/components/schemas/HourlyFifoMessageDeliveryCounters'
DeviceStatusTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/DeviceStatusFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
ActionReference:
type: object
properties:
actionPolicy:
$ref: '#/components/schemas/ActionPolicyReference'
description: Information about the action policy that contains this action
actionId:
type: string
description: Identifier of the action
HttpDeliveryCounters:
type: object
properties:
daily:
type: array
items:
$ref: '#/components/schemas/DailyHttpDeliveryCounters'
hourly:
type: array
items:
$ref: '#/components/schemas/HourlyHttpDeliveryCounters'
MatchingFiredTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/MatchingFiredFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
HourlyHttpDeliveryCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
processed:
type: integer
format: int32
description: total number of messages that have been processed
delivered:
type: integer
format: int32
description: number of messages that have been successfully delivered on first try
deliveredWithRetry:
type: integer
format: int32
description: number of messages that have been successfully delivered but needed at least a retry
expired:
type: integer
format: int32
description: number of messages that have not been delivered because retry is disabled or max retry count has been reached (after 5xx, timeout...)
failed:
type: integer
format: int32
description: number of messages that have not been delivered due to a 4xx or 3xx
overflow:
type: integer
format: int32
description: number of messages that have been dropped due to queue overflow (maximum number of waiting messages reached)
canceled:
type: integer
format: int32
description: number of messages that have been canceled (e.g. action policy deleted)
meanDeliveryTimeMs:
type: integer
format: int64
description: mean delivery time of successfully delivered messages. Start time is set when the original message has been handled in LO.
hour:
type: integer
format: int32
description: hour of the counters (0-23)
example: 23
HourlyHttpRequestCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
requests:
type: integer
format: int32
description: number of Http requests sent
success:
type: integer
format: int32
description: number of 2xx responses for the Http requests
clientErrors:
type: integer
format: int32
description: number of 4xx responses for the Http requests
serverErrors:
type: integer
format: int32
description: number of 5xx responses for the Http requests
networkErrors:
type: integer
format: int32
description: number of network errors (timeout, SSL...) for the Http requests
otherErrors:
type: integer
format: int32
description: number of other errors (3xx...) for the Http requests
meanSuccessResponseTimeMs:
type: integer
format: int64
description: mean response time of 2xx requests
hour:
type: integer
format: int32
description: hour of the metrics (0-23)
example: 5
ActionMetrics:
type: object
properties:
updated:
type: string
format: date-time
description: timestamp of the last update of these metrics
httpPush:
$ref: '#/components/schemas/HttpPushMetrics'
azureEventHub:
$ref: '#/components/schemas/HttpPushMetrics'
fifo:
$ref: '#/components/schemas/FifoMetrics'
HourlyFifoSupervision:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
hour:
type: integer
format: int32
description: hour of the metrics (0-23)
example: 5
fillRatioPercent:
type: number
format: float
description: fillRatio percent sampled at this hour
subscribed:
type: boolean
description: true if the FIFO has been connected through MQTT SUB at least once during this hour
incoming:
type: integer
format: int32
description: number of messages pushed to FIFO during this hour
subMessageCount:
type: integer
format: int32
description: number of messages published to remote application through a MQTT SUB connection during this hour
DataMessageFilter:
type: object
properties:
connectors:
type: array
description: List of filtered connectors ('mqtt', 'lora', 'lwm2m', 'sms', 'x-connector', 'http'). Null or empty to accept all connectors.
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
deviceIds:
type: array
description: List of filtered deviceIds. Null or empty to accept all devices
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
groupPaths:
type: array
description: List of filtered group paths. Null or empty to accept all group paths
items:
$ref: '#/components/schemas/GroupPath'
maxItems: 20
minItems: 0
uniqueItems: true
tags:
type: array
description: List of groups of tags that should be contained in message tags. There is a match if at least one group of tags is a match. A group of tags is a match if the tags of the message contains all elements of this group. <br>e.g. [["ALERT"]] will match all messages containing tag 'ALERT'.<br>e.g. [["HIGH", "ALERT"],["PROD"]] will match messages with either tag 'PROD' or both tags 'ALERT' and 'HIGH'.
example:
- - ALERT
items:
type: array
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
maxItems: 20
minItems: 0
uniqueItems: true
DeviceActivityFilter:
type: object
properties:
deviceIds:
type: array
description: List of filtered deviceIds. Null or empty to accept all devices
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
ruleIds:
type: array
description: List of filtered rule Ids. Null or empty to accept all rule Ids
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
HttpPushAction:
type: object
description: Action that will push the message to a Web Server
properties:
id:
type: string
description: An action id. Set by Live Objects.
readOnly: true
type:
type: string
description: 'Action type: httpPush, set by Live Objects'
readOnly: true
webhookUrl:
type: string
description: The url of the target service webhook (only ports 80, 443, 8080, 8443 and 9243 are allowed).
headers:
type: object
additionalProperties:
type: array
items:
type: string
description: A map of headers to be passed in the http POST headers
signingSecret:
type: string
description: The secret used to compute the HMAC signature of the HTTP push request. The signature is then added as a header to the request, allowing the receiving server to verify its authenticity and integrity.
maxLength: 128
minLength: 20
signingSecretUpdated:
type: string
format: date-time
description: Secret update timestamp, automaticaly set by LiveObjects
readOnly: true
jsonPath:
type: string
description: The json path to extract from the considered message (or event), it will be taken as the root datacontext object when combined with a mustache template in content. e.g. 'value', 'data.metadata'.
content:
type: string
description: A raw string or a mustache (https://mustache.github.io/mustache.5.html) template describing the webhook body. If empty, the raw event will be used.
retryOnFailure:
type: boolean
description: Indicate if a retry policy should be set up in case of a http push delivery failure. Default is false.
required:
- webhookUrl
DeviceStatusFilter:
type: object
properties:
# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/orange-business/refs/heads/main/openapi/orange-business-triggers-and-actions-api-openapi.yml