Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.1",
"info": {
"title": "Event Notifications Webhooks",
"description": "An API to manage event notifications webhooks.\n\nWebhooks allow you to build or setup integrations which subscribe to certain events from Fen-X. When one of those events is triggered, we'll send an HTTP POST payload to the webhook's configured URL. \n\nUsing this API you can Add, Update, Delete and List your tenant's webhooks. You can add app to 10 webhooks per tenant.",
"version": "1.0"
},
"servers": [
{
"url": "/webhooks"
}
],
"paths": {
"/v1/webhooks": {
"get": {
"tags": [
"Webhooks"
],
"summary": "List all webhook configurations.",
"description": "\nThis method will list all webhook configurations for specific tenant<br /><br /><b>Required permissions:</b><br />Following permissions are required: WebhookAccess",
"operationId": "ListWebhooks",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.ListWebhooksResponse class containing webhook configuration results",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ListWebhooksResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListWebhooksResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ListWebhooksResponse"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
},
"post": {
"tags": [
"Webhooks"
],
"summary": "Add a webhook configuration.",
"description": "\nThis method will add new webhook configuration for specific tenant\n\nThe maximum number of configurations allowed is 10.<br /><br /><b>Required permissions:</b><br />Following permissions are required: WebhookManagement",
"operationId": "AddWebhook",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.AddWebhookRequest class represents add request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AddWebhookRequest"
}
],
"description": "Add a webhook."
}
}
}
},
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.AddWebhookResponse class represents new webhook configuration",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/AddWebhookResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddWebhookResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/AddWebhookResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
},
"/v1/webhooks/{webhookId}": {
"delete": {
"tags": [
"Webhooks"
],
"summary": "Delete webhook configuration.",
"description": "\nThis method will delete specific webhook configuration<br /><br /><b>Required permissions:</b><br />Following permissions are required: WebhookManagement",
"operationId": "DeleteWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "The webhook identifier.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Webhook configuration was successfully deleted."
},
"404": {
"description": "There is no webhook configuration for this tenant"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
},
"put": {
"tags": [
"Webhooks"
],
"summary": "Update a webhook configuration.",
"description": "\nThis method will update specific webhook configuration<br /><br /><b>Required permissions:</b><br />Following permissions are required: WebhookManagement",
"operationId": "UpdateWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "The webhook identifier.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.UpdateWebhookRequest class represents update request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateWebhookRequest"
}
],
"description": "Represents a request to update a webhook."
}
}
}
},
"responses": {
"200": {
"description": "Webhook configuration was successfully updated."
},
"400": {
"description": "Bad request. The request has missing/invalid values"
},
"404": {
"description": "There is no webhook configuration for this tenant"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
},
"get": {
"tags": [
"Webhooks"
],
"summary": "Get webhook configuration.",
"description": "\nThis method will return specific webhook configuration<br /><br /><b>Required permissions:</b><br />Following permissions are required: WebhookAccess",
"operationId": "GetWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.GetWebhookResponse class represents webhook configuration",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/GetWebhookResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetWebhookResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GetWebhookResponse"
}
}
}
},
"404": {
"description": "There is no webhook configuration for this tenant"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
},
"/v1/webhooks/event-notification-types": {
"get": {
"tags": [
"Webhooks"
],
"summary": "List all available event notification types.",
"description": "\nThis method will list all available event notification types.<br /><br /><b>Required permissions:</b><br />Following permissions are required: WebhookAccess",
"operationId": "ListEventNotificationTypes",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Utils.Dto.ListEventNotificationTypesResponse class containing event notification types\n results.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ListEventNotificationTypesResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListEventNotificationTypesResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ListEventNotificationTypesResponse"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
},
"/v1/webhooks/{webhookId}/test": {
"get": {
"tags": [
"Webhooks"
],
"summary": "Test webhook availability.",
"description": "\nThis method allows to check if webhook is available and prepared to receive events.<br /><br /><b>Required permissions:</b><br />Following permissions are required: WebhookManagement",
"operationId": "TestWebhook",
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "The webhook identifier.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Fenergo.Nebula.EventNotifications.Webhooks.PublicApi.V1.TestWebhookResponse class representing test response",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/TestWebhookResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestWebhookResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/TestWebhookResponse"
}
}
}
},
"404": {
"description": "There is no webhook configuration for this tenant and webhook id"
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AddWebhookRequest": {
"required": [
"enabled",
"eventTypes",
"secret",
"url"
],
"type": "object",
"properties": {
"name": {
"maxLength": 128,
"type": "string",
"description": "The name of the webhook.",
"nullable": true,
"example": "Example webhook name"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The URL webhook messages will be posted to. The content type posted\nis `application/json`.",
"example": "https://www.example.com"
},
"secret": {
"maxLength": 128,
"minLength": 1,
"type": "string",
"description": "The webhook secret.",
"example": "secret"
},
"enabled": {
"type": "boolean",
"description": "Indicates if the webhook is enabled or not.",
"example": true
},
"eventTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The collection of event types that will be delivered e.g. [\"document:created\",\"document:updated\"].\n\"*\" represents all event types and overrides other types specified.",
"example": [
"entitydata:draftcreated_enriched"
]
},
"emailAddresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Collection of email addresses which will be notified when the system disables the webhook (maximum 5 email addresses)",
"nullable": true,
"example": [
"someone@example.com"
]
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookType"
}
],
"description": "Webhook Type. Default value: Single",
"nullable": true,
"example": "Single"
},
"batchSize": {
"maximum": 100,
"minimum": 10,
"type": "integer",
"description": "Max batch size for single request",
"format": "int32",
"nullable": true,
"example": 50
}
},
"additionalProperties": false,
"description": "Add a webhook."
},
"AddWebhookResponse": {
"type": "object",
"properties": {
"webhookId": {
"type": "string",
"description": "The identifier of the added webhook.",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
}
},
"additionalProperties": false,
"description": "The reponse when adding a webhook."
},
"BasicWebhook": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The webhook name.",
"nullable": true,
"example": "Example webhook name"
},
"url": {
"type": "string",
"description": "The URL webhook messages will be posted to. The content type posted\nis `application/json`.",
"nullable": true,
"example": "https://www.example.com"
},
"id": {
"type": "string",
"description": "The webhook identifier",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
},
"enabled": {
"type": "boolean",
"description": "Indicates if the webhook is enabled or not.",
"example": true
},
"eventTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The collection of event types that will be delivered e.g. [\"document:created\",\"document:updated\"].\n\"*\" represents all event types and overrides other types specified.",
"nullable": true,
"example": [
"entitydata:draftcreated_enriched"
]
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookStatus"
}
],
"description": "The webhook status",
"nullable": true
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/WebhookType"
}
],
"description": "Webhook Type",
"nullable": true,
"example": "Single"
},
"batchSize": {
"type": "integer",
"description": "Max batch size for single request",
"format": "int32",
"nullable": true,
"example": 50
}
},
"additionalProperties": false
},
"DeliveryAttempt": {
"type": "object",
"properties": {
"when": {
"type": "string",
"description": "Timestamp of the delivery",
"format": "date-time"
},
"notificationId": {
"type": "string",
"description": "Id of notification used in delivery attempt",
"nullable": true,
"example": "e23494fc-1095-48eb-8c10-eb46228883f6"
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryItemStatus"
}
],
"description": "Status of the delivery",
"example": "Succeeded"
},
"httpStatusCode": {
"type": "integer",
"description": "Http status code of delivery request",
"format": "int32",
"nullable": true,
"example": 200
}
},
"additionalProperties": false
},
"DeliveryDetail": {
"type": "object",
"properties": {
"when": {
"type": "string",
"description": "Timestamp of the delivery attempt.",
"format": "date-time"
},
"notificationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Identifiers of the notifications included in this delivery attempt.\nContains a single entry for `Single` deliveries and multiple entries for `Batch` deliveries.",
"nullable": true
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryItemType"
}
],
"description": "Delivery mode — `Single` or `Batch`."
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/DeliveryItemStatus"
}
],
"description": "Outcome of the delivery attempt."
},
"httpStatusCode": {
"type": "integer",
"description": "HTTP status code returned by the webhook endpoint, if a response was received.",
"format": "int32",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents a single delivery attempt in the webhook delivery history."
},
"DeliveryItemStatus": {
"enum": [
"Successful",
"Failed",
"TimedOut"
],
"type": "string"
},
"DeliveryItemType": {
"enum": [
"Single",
"Batch"
],
"type": "string"
},
"DeliverySummaryResponse": {
"type": "object",
"properties": {
"totalDeliveryAttempts": {
"type": "integer",
"description": "Raw count of delivery records in the date range.",
"format": "int32"
},
"successfulDeliveries": {
"type": "integer",
"description": "Count of delivery attempts with a Successful status.",
"format": "int32"
},
"failedDeliveries": {
"type": "integer",
"description": "Count of delivery attempts with a Failed status.",
"format": "int32"
},
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-webhooks-v1-0-openapi.json