Skip to content

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.
PresetActionDescription
OUTBOUNDWEBHOOKSOUTBOUND-WEBHOOKS:READCONFIG
OUTBOUND-WEBHOOKS:UPDATECONFIG
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

Visit the Coralogix Endpoints page to find the correct Webhooks API base URL for your region.

Select your Coralogix domain from the region selector in the top-right corner of the page.

Endpoint details

HTTP MethodGET / POST
Content-Typeapplication/json
HeaderAuthorization: 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.<span class="domain-value"></span>/api/v1/external/integrations/
curl -X GET -H 'Authorization: bearer <cx_api_key>' -H 'Content-Type: application/json' https://api.<span class="domain-value"></span>/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.<span class="domain-value"></span>/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

ParameterDescriptionTypeNotes
aliaswebhook namestring
integration_typewebhook typeobjectdescribed below, must be a complete block from values as shown in Table A
integration_type.labelwebhook type namestring
integration_type.iconwebhook iconstring
integration_type.idwebhook type idnumber
integration_type_idwebhook type idnumbermust be from values shown in Table A
integration_type_fieldswebhook additional fieldsstringescaped json, an array of objects in the form of name + value. must comply with the structure shown in Table B
urlwebhook urlstring

Table A: integration_type object
TypeJSON 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
TypeFieldvalue_typeNotes
pager_dutyserviceKeystring
jiraapiTokenstring
jiraemailstring
jiraprojectKeystring
email_grouppayloadarray of strings
webhook,demisto,sendloguuidstringin UUID format
webhook,demisto,sendlogmethodstringmust be one of ["get","post","put"]
webhook,demisto,sendlogheadersobjecta json object of headers
webhook,demisto,sendlogpayloadobjecta 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://ingress.<span class="domain-value"></span>>"
}

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://ingress.<span class="domain-value"></span>>",
    "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 two webhooks in the same request

Request: POST https://api./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://ingress.<span class="domain-value"></span>>"
 }
]

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://ingress.<span class="domain-value"></span>>",
    "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 support@coralogix.com.