API
The API Initiator allows Integration Flows to be triggered from outside of Fenergo via API Endpoint.
External Endpoints
There are two options when triggering a Flow via external API call, one secured using Fenergo security token and our new Custom Authentication allows Clients to configure different configuration schemes where OAuth is not supported by the external service.
Fenergo Token
Endpoint: https://api.fenergox.com/integrationcore/api/execution/flow/{FlowId or FlowKey}
The API Initiator requires incoming requests to include a Fenergo-issued OAuth token and the subject must have IntegrationFlows:Flow API Trigger application permissions.
The Fenergo Token Authentication endpoint includes MTLS authentication
Custom Authentication
Endpoint: https://api.fenergox.com/startIntegrationFlow/tenant/{tenantId}/flow/{FlowId or FlowKey}/
Integration Flows supports the following custom authentication schemes. Schemes are configured per Flow and can be combined (e.g. authentication by IP Whitelisting AND Shared Secret).
- IP WhiteListing - Specify a single or comma-separated list of IPs / CIDR Range
- HMAC - Hash-based Message Authentication Code provided in header
- Shared Secret - A shared secret (e.g. API Key) can be passed in either the HTTP Header or Query Parameter
Custom Authentication Schemes are configured within the Flow Designer using the Custom Auth tab.

Runtime Details
Once the Flow execution is started by either API Endpoint above, the Execution.Request object provides access to the complete details of the HTTP Request received.
| Execution Variables | Description and Data Type |
|---|---|
| contentType | String. Request contentType. Supported values: - application/json - application/xml - application/x-www-form-urlencoded - multipart/form-data - text/plain - Null (none) |
| headers | Dictionary(Key, Value). Request Headers |
| path | String. Upstream APIs can provide additional Path in the URL following the Flow Id. e.g. https://api.fenergox.com/integrationcore/api/execution/flow/{FlowId}/custom/path/123, Path = /custom/path/123 |
| queryParams | Dictionary(Key, Value). Request Query Parameters |
| body | Json Request Body, formatted as Json Object |
| bodyRaw | String. Request Body, unprocessed |
| bodyFormData | Dictionary(Key, Value). Request Form Data |