openapi: 3.0.1 info: title: ilert REST Alert Actions Call Flows API description: "# Introduction\nThe ilert API is a [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) API and provides programmatic access to entities in ilert and lets you easily integrate ilert with 3rd party tools. If you are looking to develop an inbound integration (e.g. for a monitoring tool), please use our [Events API](#tag/events). \n\nThe API supports the JSON content type for requests and responses. The response content type is requested via the HTTP Accept header (`application/json`). All resources are accessible via https and are located at `api.ilert.com/api`. \n\n You may download ilert's latest [OpenAPI.json {...} here](https://api.ilert.com/api-docs/openapi.json).\n\n If you are looking for a classic Swagger-UI view you may also open [this link](https://api.ilert.com/api-docs/swagger-ui). \n\n ## Authentication\nThe REST API accepts bearer API tokens. Each user may create API keys using the ilert web application. Note: Make sure to send the `Bearer ` prefix e.g. `Bearer APIKEY` when sending api key requests. By default, access to all resources (using any method) requires the client to be authenticated.\n\n ## Team Context\n When using API tokens, the currently selected team context of the user will not be taken into account, i.e. list results will always return all entities to which the user has a view permission. When using basic auth credentials the currently selected team context of the user will be used to filter resource results. The context may be overwritten for API key calls using the `team-context` HTTP header. Specifying `0` for ALL teams, `-1` for MY teams or a specific team id e.g. `team-context=901` to fetch results for a certain team. \n\n ## Errors\nilert uses HTTP response codes to indicate success or failure of an API request. Codes in the 2xx range indicate success, codes in the 4xx range indicate a client error (e.g. a missing required parameter) and codes in the 5xx range indicate an error with ilert's servers. In case of an error, the response body contains the following information:\n\n Attribute | Description \n ------------- | ------------- \n status | the corresponsing HTTP status code \n message | a human readable description of the error \n code | error code, used to identify error type \n\n ## API Versioning\nChanges to our API are always backwards-compatible. To get more information about our API versioning and historical changes, please take a look here." version: v2.2026.5-r.3 x-logo: url: ./ilert-logo-spaced.png backgroundColor: '#fafafa' altText: ilert documentation logo servers: - url: /api security: - apiKey: [] tags: - name: Call Flows paths: /call-flows: get: tags: - Call Flows summary: List existing call flows. description: Returns a shallow list of call flows without the full node tree. Use the single resource endpoint to retrieve the complete call flow including all nodes and branches. parameters: - name: start-index in: query description: an integer specifying the starting point (beginning with 0) when paging through a list of entities schema: type: integer format: int32 default: 0 - name: max-results in: query description: the maximum number of results when paging through a list of entities. schema: maximum: 100 type: integer format: int32 default: 50 responses: '200': description: The call flows content: application/json: schema: type: array items: $ref: '#/components/schemas/CallFlowListItem' post: tags: - Call Flows summary: Create a new call flow. requestBody: description: the call flow content: application/json: schema: $ref: '#/components/schemas/CallFlow' required: true responses: '201': description: The newly created call flow content: application/json: schema: $ref: '#/components/schemas/CallFlow' x-codegen-request-body-name: callFlow /call-flows/{id}: get: tags: - Call Flows summary: Get a specific call flow. parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '200': description: The requested call flow content: application/json: schema: $ref: '#/components/schemas/CallFlow' put: tags: - Call Flows summary: Update a specific call flow. parameters: - name: id in: path description: entity ID required: true schema: type: number requestBody: description: the call flow content: application/json: schema: $ref: '#/components/schemas/CallFlow' required: true responses: '200': description: The updated call flow content: application/json: schema: $ref: '#/components/schemas/CallFlow' x-codegen-request-body-name: callFlow delete: tags: - Call Flows summary: Delete a specific call flow. parameters: - name: id in: path description: entity ID required: true schema: type: number responses: '204': description: Empty body delete response content: {} components: schemas: CallFlowNodeMetadataSupportHours: type: object required: - supportHoursId properties: supportHoursId: type: integer format: int64 CallFlowListItem: type: object properties: id: type: integer format: int64 name: type: string assignedNumber: $ref: '#/components/schemas/CallFlowNumber' teams: type: array items: $ref: '#/components/schemas/TeamRel' CallFlowNodeMetadataBlockNumbers: type: object required: - blacklist properties: blacklist: type: array items: type: string CallFlowNodeMetadata: oneOf: - $ref: '#/components/schemas/CallFlowNodeMetadataAudioMessage' - $ref: '#/components/schemas/CallFlowNodeMetadataIvrMenu' - $ref: '#/components/schemas/CallFlowNodeMetadataVoicemail' - $ref: '#/components/schemas/CallFlowNodeMetadataPinCode' - $ref: '#/components/schemas/CallFlowNodeMetadataSupportHours' - $ref: '#/components/schemas/CallFlowNodeMetadataRouteCall' - $ref: '#/components/schemas/CallFlowNodeMetadataCreateAlert' - $ref: '#/components/schemas/CallFlowNodeMetadataBlockNumbers' - $ref: '#/components/schemas/CallFlowNodeMetadataAgentic' CallFlowNodeMetadataVoicemail: type: object properties: textMessage: type: string customAudioUrl: type: string language: type: string enum: - en - de - fr - es - nl - ru - it aiVoiceModel: type: string enum: - emma - liam - isabelle - gordon - ivy - ellen disableTranscription: type: boolean CallFlowNodeMetadataIvrMenu: type: object required: - enabledOptions properties: textMessage: type: string customAudioUrl: type: string enabledOptions: type: array items: type: string aiVoiceModel: type: string enum: - emma - liam - isabelle - gordon - ivy - ellen language: type: string enum: - en - de - fr - es - nl - ru - it retries: type: integer format: int64 CallFlow: type: object required: - name - language - root properties: id: type: integer format: int64 name: type: string language: type: string enum: - de - en assignedNumber: $ref: '#/components/schemas/CallFlowNumber' teams: type: array items: $ref: '#/components/schemas/TeamRel' root: $ref: '#/components/schemas/CallFlowNode' CallFlowNodeMetadataIntent: type: object properties: type: type: string enum: - INCIDENT - SYSTEM_OUTAGE - SECURITY_BREACH - TECHNICAL_SUPPORT - INQUIRY label: type: string description: type: string examples: type: array items: type: string CallFlowNodeMetadataEnrichmentSource: type: object required: - id - type properties: id: type: integer format: int64 type: type: string enum: - STATUS_PAGE - SERVICE CallFlowNodeMetadataPinCode: type: object required: - codes properties: textMessage: type: string customAudioUrl: type: string codes: type: array items: $ref: '#/components/schemas/CallFlowNodeMetadataCode' language: type: string enum: - en - de - fr - es - nl - ru - it retries: type: integer format: int64 aiVoiceModel: type: string enum: - emma - liam - isabelle - gordon - ivy - ellen CallFlowNodeMetadataAgentic: type: object required: - textMessage - intents properties: textMessage: type: string customAudioUrl: type: string language: type: string enum: - en - de - fr - es - nl - ru - it aiVoiceModel: type: string enum: - emma - liam - isabelle - gordon - ivy - ellen intents: type: array items: $ref: '#/components/schemas/CallFlowNodeMetadataIntent' gathers: type: array items: $ref: '#/components/schemas/CallFlowNodeMetadataGather' enrichment: $ref: '#/components/schemas/CallFlowNodeMetadataEnrichment' CallFlowBranch: type: object required: - branchType properties: id: type: integer format: int64 branchType: type: string enum: - BRANCH - CATCH_ALL - ANSWERED condition: type: string target: $ref: '#/components/schemas/CallFlowNode' CallFlowNodeMetadataRouteCall: type: object required: - targets properties: holdAudioUrl: type: string targets: type: array items: $ref: '#/components/schemas/CallFlowNodeMetadataCallTarget' callStyle: type: string enum: - ORDERED - RANDOM - PARALLEL retries: type: integer format: int64 callTimeoutSec: type: integer format: int64 CallFlowNodeMetadataAudioMessage: type: object properties: textMessage: type: string customAudioUrl: type: string language: type: string enum: - en - de - fr - es - nl - ru - it aiVoiceModel: type: string enum: - emma - liam - isabelle - gordon - ivy - ellen PhoneNumber: type: object properties: regionCode: type: string number: type: string CallFlowNumber: type: object properties: id: type: integer format: int64 name: type: string phoneNumber: $ref: '#/components/schemas/PhoneNumber' CallFlowNodeMetadataCode: type: object required: - label properties: code: type: integer format: int64 label: type: string CallFlowNode: type: object required: - nodeType properties: id: type: integer format: int64 name: type: string nodeType: type: string enum: - ROOT - IVR_MENU - AUDIO_MESSAGE - SUPPORT_HOURS - ROUTE_CALL - PARALLEL_ROUTE_CALL - VOICEMAIL - PIN_CODE - CREATE_ALERT - BLOCK_NUMBERS - AGENTIC metadata: $ref: '#/components/schemas/CallFlowNodeMetadata' branches: type: array items: $ref: '#/components/schemas/CallFlowBranch' CallFlowNodeMetadataCallTarget: type: object required: - target - type properties: target: type: string type: type: string enum: - USER - ON_CALL_SCHEDULE - NUMBER TeamRel: type: object properties: id: type: integer format: int64 name: type: string CallFlowNodeMetadataGather: type: object properties: type: type: string enum: - CALLER_NAME - CONTACT_NUMBER - EMAIL - INCIDENT - AFFECTED_SERVICES label: type: string varType: type: string enum: - NUMBER - DATE - BOOLEAN - STRING required: type: boolean question: type: string CallFlowNodeMetadataEnrichment: type: object properties: enabled: type: boolean informationTypes: type: array items: type: string enum: - INCIDENT - MAINTENANCE - SERVICE_STATUS sources: type: array items: $ref: '#/components/schemas/CallFlowNodeMetadataEnrichmentSource' CallFlowNodeMetadataCreateAlert: type: object required: - alertSourceId properties: alertSourceId: type: integer format: int64 acceptAlertOnAnswer: type: boolean securitySchemes: apiKey: type: apiKey description: The Bearer API key of your user more info. name: Authorization in: header x-original-swagger-version: '2.0'