Skip to main content

For some reason I’m not able to add the Elastic Alerts integration via the API, it keeps tellng me “Vendor not found”. Here’s my original post request:


curl --request POST \\
--url https://api.pagerduty.com/services/<my service id>/integrations \\
--header 'Accept: application/vnd.pagerduty+json;version=2' \\
--header 'Authorization: Token token=<my api token>' \\
--header 'Content-Type: application/json' \\
--data '{
"integration": {
"type": "events_api",
"name": "Elastic Alerts",
"service": {
"id": "<my service id>",
"type": "service_reference"
},
"vendor": {
"type": "vendor_reference",
"id": "NT0MJYN"
}
}
}'

This gave me the vendor not found error and I actually used ChatGPT to get that vendor ID for Elastic Alerts.


The reason why I resorted to ChatGPT (Which still didn’t work) is because running this command to get the vendor ID also returned “vendor nout found”


curl --request GET \\
--url https://api.pagerduty.com/vendors/Elastic \\
--header 'Accept: application/vnd.pagerduty+json;version=2' \\
--header 'Authorization: Token token=<my api token>' \\
--header 'Content-Type: application/json'

I tried using Elastic and Elastic Alerts for the vendor name and both game me that error. Not sure what else to try to get the appropriate vendor ID for Elastic Alerts

Hi Mitchell!


I got PULN1LU as the vendor ID for Elastic Alerts. You can get a paginated list of integration vendors from the /vendors endpoint, and then start upping the offset to get through the list. It’s a little clunky but they’re all in there.


Here’s what it tells me about Elastic Alerts:


{
"vendor": {
"id": "PULN1LU",
"type": "vendor",
"summary": "Elastic Alerts",
"self": "https://api.pagerduty.com/vendors/PULN1LU",
"html_url": null,
"name": "Elastic Alerts",
"website_url": "https://www.elastic.co/what-is/pagerduty",
"long_name": null,
"logo_url": "https://apps.pdusercontent.com/app-P7KAOJU/logo-1586530911",
"thumbnail_url": "https://apps.pdusercontent.com/app-P7KAOJU/logo-1586530911",
"description": "",
"integration_guide_url": "https://www.elastic.co/guide/en/kibana/current/pagerduty-action-type.html",
"connectable": false,
"generic_service_type": "api",
"alert_creation_default": "create_alerts_and_incidents",
"alert_creation_editable": true,
"is_pd_cef": true,
"is_pd_change_event": false,
"developer_name": "Elastic",
"support_portal": "https://discuss.elastic.co/",
"support_email": "info@elastic.co",
"documentation_url": "https://www.elastic.co/guide/en/kibana/current/pagerduty-action-type.html",
"emits_change_events": false
}
}

You can only use the ID string to query for a single vendor, rather than the vendor name, which can be a little confusing but is the same as other objects. Since the integrations are being added to and updated all the time, there’s not a canonical list of them outside the API. No idea where ChatGPT pulled that ID from. It might be an old one. 🙂


HTH!

–mandi


Thanks for the help! That fixed that issue, but for my first curl request I’m getting a new error: Not Found",“code”:2100


For integration in my curl request, I’m not too sure what to put for type. I tried events_api, generic_events_api_inbound_integration, and events_api_v2_inbound_integration and I’m still getting that same error. Not sure if this is the culprit, but it’s the only value that I’m not sure what to set it to. I’ve been referencing the apui documentation where it shows the different options you can use https://developer.pagerduty.com/api-reference/43e0864d370fb-create-a-new-integration


🤔 i definitely would expect the type to one of the events api ones. … I’ll work on this today and see what I can find. Right now, i’m getting a different error, “Arguments Caused Error”, which is also not illuminating…


Got it. Bunch of these vendor ones are transforms under the hood:


{
"integration": {
"type": "app_event_transform_inbound_integration",
"name": "Alerts from Elastic",
"service": {
"id": "$SERVICE_ID",
"type": "service_reference"
},
"vendor": {
"type": "vendor_reference",
"id": "PULN1LU"
}
}
}

That should get you going!


Reply