Webhooks API
Leverage our Webhooks API to seamlessly define, query, and manage your outbound webhooks with ease.
API Key
To use this API you need to create a personal or team API key. It’s recommended to use permission presets, as they are automatically updated with all relevant permissions. Alternatively, you can manually add individual permissions.
Preset | Action | Description |
---|---|---|
OutboundWebhooks | OUTBOUND-WEBHOOKS:READCONFIG OUTBOUND-WEBHOOKS:UPDATECONFIG OUTBOUND-WEBHOOKS:READSUMMARY OUTBOUND-WEBHOOKS:READSUMMARY |
View Outbound Webhooks Configuration Manage Outbound Webhooks View Outbound Webhooks list |
API Reference
The Webhooks API follows an HTTP-style method.
Base URL
Region | URL |
---|---|
US1 EU1 EU2 AP2 (SG) |
https://api./api/v1/external/integrations/ |
AP1 (IN) | https://api.app./api/v1/external/integrations/ |
<cx_domain>
: Input the Coralogix domain associated with your region.
Endpoint Details
HTTP Method | GET / POST |
---|---|
Content-Type | application/json |
Header | Authorization: bearer <cx_api_key> |
curl
Command Example
Use this curl
command with a placeholder for the token.
For regions US1, EU1, EU2, AP2 (SG):
curl -X GET -H 'Authorization: bearer <cx_api_key>' -H 'Content-Type: application/json' [https://api.<cx_domain>/api/v1/external/integrations/](<https://api.eu2.coralogix.com/api/v1/external/integrations/>)
For region API (IN):
curl -X GET -H 'Authorization: bearer <cx_api_key>' -H 'Content-Type: application/json' [https://api.app.<cx_domain>/api/v1/external/integrations/](<https://api.eu2.coralogix.com/api/v1/external/integrations/>)
GET Request: Get Webhooks
Get all webhooks or a single webhook using a Webhook ID.
Get All Webhooks
Request: GET https://api./api/v1/external/integrations/
Result:
[
{
"alias": "string",
"company_id": number,
"created_at": "string - ISO format",
"id": number,
"url": "string",
"integration_type_fields": "escaped json" or null,
"integration_type_id": number,
"integrationTypeId": number,
"integration_type": {
"label": "string",
"icon": "string",
"id": number
},
"updated_at": "string - ISO format"
}
]
Get a Specific Webhook
Request: GET https://api./api/v1/external/integrations/<webhook-id>
Result:
{
"alias": "string",
"company_id": number,
"created_at": "string - ISO format",
"id": number,
"url": "string",
"integration_type_fields": "escaped json" or null,
"integration_type_id": number,
"integrationTypeId": number,
"integration_type": {
"label": "string",
"icon": "string",
"id": number
},
"updated_at": "string - ISO format"
}
POST Request: Create a New Webhook
Create or update a single webhook.
Body Parameters
Parameter | Description | Type | Notes |
---|---|---|---|
alias | webhook name | string | |
integration_type | webhook type | object | described below, must be a complete block from values as shown in Table A |
integration_type.label | webhook type name | string | |
integration_type.icon | webhook icon | string | |
integration_type.id | webhook type id | number | |
integration_type_id | webhook type id | number | must be from values shown in Table A |
integration_type_fields | webhook additional fields | string | escaped json, an array of objects in the form of name + value. must comply with the structure shown in Table B |
url | webhook url | string |
Table A: integration_type
Object
Type | JSON Object |
---|---|
slack | {"id": 0, "name": "Slack", "icon": "/assets/settings/slack-48.png"} |
webhook | {"id": 1, "name": "WebHook", "icon": "/assets/webhook.png"} |
pager_duty | {"id": 2, "name": "PagerDuty", "icon": "/assets/settings/pagerDuty.png"} |
sendlog | {"id": 3, "name": "SendLog", "icon": "/assets/invite.png"} |
email_group | {"id": 4, "name": "Email Group", "icon": "/assets/email-group.png"} |
microsoft_teams | {"id": 5, "name": "Microsoft Teams", "icon": "/assets/settings/teams.png"} |
jira | {"id": 6, "name": "Jira", "icon": "/assets/settings/jira.png"} |
opsgenie | {"id": 7, "name": "Opsgenie", "icon": "/assets/settings/opsgenie.png"} |
demisto | {"id": 8, "name": "Demisto", "icon": "/assets/settings/demisto.png"} |
Table B: Integration_type_fields
String
Type | Field | value_type | Notes |
---|---|---|---|
pager_duty | serviceKey | string | |
jira | apiToken | string | |
jira | string | ||
jira | projectKey | string | |
email_group | payload | array of strings | |
webhook,demisto,sendlog | uuid | string | in UUID format |
webhook,demisto,sendlog | method | string | must be one of ["get","post","put"] |
webhook,demisto,sendlog | headers | object | a json object of headers |
webhook,demisto,sendlog | payload | object | a json object of the webhook body |
Create a Slack Webhook
Request: POST https://api./api/v1/external/integrations/
Result:
{
"alias": "slack-webhook",
"url": "<slack-webhook-url>",
"integration_type_fields": "[]",
"integration_type_id": 0,
"integration_type": {
"label": "Slack",
"icon": "/assets/settings/slack-48.png",
"id": 0
}
}
Create a ‘sendlog’ Webhook
Request: POST https://api./api/v1/external/integrations/
{
"alias": "sendlog-webhook",
"integration_type": {
"icon": "/assets/invite.png",
"id": 3,
"name": "Send Log"
},
"integration_type_id": 3,
"integration_type_fields": "[{\\"name\\":\\"uuid\\",\\"value\\":\\"<uuid>\\"},{\\"name\\":\\"method\\",\\"value\\":\\"post\\"},{\\"name\\":\\"headers\\",\\"value\\":{\\"Content-Type\\":\\"application/json\\"}},{\\"name\\":\\"payload\\",\\"value\\":{\\"privateKey\\":\\"<send-your-data-api-key>\\",\\"applicationName\\":\\"$APPLICATION_NAME\\",\\"subsystemName\\":\\"$SUBSYSTEM_NAME\\",\\"computerName\\":\\"$COMPUTER_NAME\\",\\"logEntries\\":[{\\"severity\\":3,\\"timestamp\\":\\"$EVENT_TIMESTAMP_MS\\",\\"text\\":{\\"integration_text\\":\\"<Insert your desired integration description>\\",\\"alert_severity\\":\\"$EVENT_SEVERITY\\",\\"alert_id\\":\\"$ALERT_ID\\",\\"alert_name\\":\\"$ALERT_NAME\\",\\"alert_url\\":\\"$ALERT_URL\\",\\"hit_count\\":\\"$HIT_COUNT\\"}}],\\"uuid\\":\\"<same-uuid>\\"}}]",
"url": "<https://api.coralogix.us/api/v1/logs>"
}
Inside integration_type_fields
modify the following:
-
<uuid>
and<same-uuid>
– with a newly generated uuid -
<send-your-data-api-key>
– with your Send-Your-Data API key -
<Insert your desired integration description>
Result:
{
"id": 1051,
"alias": "sendlog-webhook",
"url": "<https://api.coralogix.us/api/v1/logs>",
"integration_type_fields": "[{\\"name\\":\\"uuid\\",\\"value\\":\\"17a3b9e3-b0bc-4bc0-9e06-98d2a4c54ecb\\"},{\\"name\\":\\"method\\",\\"value\\":\\"post\\"},{\\"name\\":\\"headers\\",\\"value\\":{\\"Content-Type\\":\\"application/json\\"}},{\\"name\\":\\"payload\\",\\"value\\":{\\"privateKey\\":\\"5ef4a0d1-7e1f-47b2-ac0a-1282002aa2a1\\",\\"applicationName\\":\\"$APPLICATION_NAME\\",\\"subsystemName\\":\\"$SUBSYSTEM_NAME\\",\\"computerName\\":\\"$COMPUTER_NAME\\",\\"logEntries\\":[{\\"severity\\":3,\\"timestamp\\":\\"$EVENT_TIMESTAMP_MS\\",\\"text\\":{\\"integration_text\\":\\"Insert your desired integration description\\",\\"alert_severity\\":\\"$EVENT_SEVERITY\\",\\"alert_id\\":\\"$ALERT_ID\\",\\"alert_name\\":\\"$ALERT_NAME\\",\\"alert_url\\":\\"$ALERT_URL\\",\\"hit_count\\":\\"$HIT_COUNT\\"}}],\\"uuid\\":\\"17a3b9e3-b0bc-4bc0-9e06-98d2a4c54ecb\\"}}]",
"integration_type_id": 3,
"integrationTypeId": 3,
"company_id": 12345,
"updated_at": "2022-08-22T07:32:09.348Z",
"created_at": "2022-08-22T07:32:09.348Z",
"companyId": 12345
}
POST Request: Create New bulk Webhooks
Create webhooks in bulk.
To create several webhooks in one request, please send an array of objects, where each object is a different webhook.
Create 2 Webhooks in the Same Request
Request: POST https://api.coralogix.com/api/v1/external/integrations-bulk
[
{
"alias": "slack-webhook",
"url": "<slack-webhook-url>",
"integration_type_fields": "[]",
"integration_type_id": 0,
"integration_type": {
"label": "Slack",
"icon": "/assets/settings/slack-48.png",
"id": 0
}
},
{
"alias": "sendlog-webhook",
"integration_type": {
"icon": "/assets/invite.png",
"id": 3,
"name": "Send Log"
},
"integration_type_id": 3,
"integration_type_fields": "[{\\"name\\":\\"uuid\\",\\"value\\":\\"<uuid>\\"},{\\"name\\":\\"method\\",\\"value\\":\\"post\\"},{\\"name\\":\\"headers\\",\\"value\\":{\\"Content-Type\\":\\"application/json\\"}},{\\"name\\":\\"payload\\",\\"value\\":{\\"privateKey\\":\\"<send-your-data-api-key>\\",\\"applicationName\\":\\"$APPLICATION_NAME\\",\\"subsystemName\\":\\"$SUBSYSTEM_NAME\\",\\"computerName\\":\\"$COMPUTER_NAME\\",\\"logEntries\\":[{\\"severity\\":3,\\"timestamp\\":\\"$EVENT_TIMESTAMP_MS\\",\\"text\\":{\\"integration_text\\":\\"<Insert your desired integration description>\\",\\"alert_severity\\":\\"$EVENT_SEVERITY\\",\\"alert_id\\":\\"$ALERT_ID\\",\\"alert_name\\":\\"$ALERT_NAME\\",\\"alert_url\\":\\"$ALERT_URL\\",\\"hit_count\\":\\"$HIT_COUNT\\"}}],\\"uuid\\":\\"<same-uuid>\\"}}]",
"url": "<https://api.coralogix.us/api/v1/logs>"
}
]
Result:
[
{
"id": 1050,
"alias": "slack-webhook",
"url": "<slack-webhook-url>",
"integration_type_fields": "[]",
"integration_type_id": 0,
"integrationTypeId": 0,
"company_id": 12345,
"updated_at": "2022-08-22T07:32:09.348Z",
"created_at": "2022-08-22T07:32:09.348Z",
"companyId": 12345
},
{
"id": 1051,
"alias": "sendlog-webhook",
"url": "<https://api.coralogix.us/api/v1/logs>",
"integration_type_fields": "[{\\"name\\":\\"uuid\\",\\"value\\":\\"17a3b9e3-b0bc-4bc0-9e06-98d2a4c54ecb\\"},{\\"name\\":\\"method\\",\\"value\\":\\"post\\"},{\\"name\\":\\"headers\\",\\"value\\":{\\"Content-Type\\":\\"application/json\\"}},{\\"name\\":\\"payload\\",\\"value\\":{\\"privateKey\\":\\"5ef4a0d1-7e1f-47b2-ac0a-1282002aa2a1\\",\\"applicationName\\":\\"$APPLICATION_NAME\\",\\"subsystemName\\":\\"$SUBSYSTEM_NAME\\",\\"computerName\\":\\"$COMPUTER_NAME\\",\\"logEntries\\":[{\\"severity\\":3,\\"timestamp\\":\\"$EVENT_TIMESTAMP_MS\\",\\"text\\":{\\"integration_text\\":\\"Insert your desired integration description\\",\\"alert_severity\\":\\"$EVENT_SEVERITY\\",\\"alert_id\\":\\"$ALERT_ID\\",\\"alert_name\\":\\"$ALERT_NAME\\",\\"alert_url\\":\\"$ALERT_URL\\",\\"hit_count\\":\\"$HIT_COUNT\\"}}],\\"uuid\\":\\"17a3b9e3-b0bc-4bc0-9e06-98d2a4c54ecb\\"}}]",
"integration_type_id": 3,
"integrationTypeId": 3,
"company_id": 12345,
"updated_at": "2022-08-22T07:32:09.348Z",
"created_at": "2022-08-22T07:32:09.348Z",
"companyId": 12345
}
]
POST Request: Update a Single Webhook or Bulk Webhooks
To update an existing webhook, send a POST request with all of the usual values. Add an ID field with the webhook ID as the value.
To update a group of webhooks, make sure your POST request consists of an array of objects and that your URL ends with /integrations-bulk
.
Copying Webhooks Between Accounts
To copy webhooks from one account to another:
-
Create a GET request with the API key of the origin account and GET all webhooks.
-
Copy the full response and remove the ID of the webhook. Do not remove the ID under
integration_type
. -
Copy the edited array to a new POST request:
-
Make sure to modify the API key to the API key of the destination account.
-
Make sure your URL ends with
/integrations-bulk
.
-
DELETE Request – Delete a Webhook
Delete a Webhook
Request: DELETE https://api./api/v1/external/integrations/<webhook-id>
Support
Need help?
Our world-class customer success team is available 24/7 to walk you through your setup and answer any questions that may come up.
Feel free to reach out to us via our in-app chat or by sending us an email at [email protected].