UpGuard webhooks API

The webhooks API from UpGuard — 3 operation(s) for webhooks.

Operations 5

GET /webhooks List webhooks #
POST /webhooks Create a new webhook #
DELETE /webhooks Delete a webhook #
GET /webhooks/notification_types Webhook notification types #
GET /webhooks/sample Webhook example data #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/upguard-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

upguard-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Access information from the CyberRisk platform programmatically using this API.


    You can find or generate an API key to access this API in your CyberRisk Account Settings.

    Please authorize all requests by setting the "Authorization" header to your api key.


    The base url for all public endpoints is https://cyber-risk.upguard.com/api/public'
  title: UpGuard CyberRisk breaches Webhooks API
  version: 1.13.2
servers:
- url: https://cyber-risk.upguard.com/api/public
security:
- API key in header: []
tags:
- name: webhooks
paths:
  /webhooks:
    get:
      description: 'List all registered webhooks.


        Required API key permissions: `Admin` (select when creating API key in Account Settings)'
      tags:
      - webhooks
      summary: List webhooks
      operationId: list_webhooks
      responses:
        '200':
          description: List of registered webhooks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWebhookResponsePayload'
        '403':
          description: Your API key does not have permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '500':
          description: An internal system error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
    post:
      description: 'Create a new webhook subscribing to the provided list of notifications.


        Required API key permissions: `Admin` (select when creating API key in Account Settings)'
      tags:
      - webhooks
      summary: Create a new webhook
      operationId: create_webhook
      parameters:
      - description: The name given to the webhook
        name: name
        in: query
        required: true
        schema:
          type: string
      - description: The URL used for sending notifications
        name: hook_url
        in: query
        required: true
        schema:
          type: string
      - description: 'The list of notifications to subscribe to. For a list of supported notification

          types and their IDs use the /api/public/webhooks/notification_types endpoint.'
        name: notification_type_ids
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
      - description: The type of webhook to create
        name: webhook_type
        in: query
        schema:
          type: string
          enum:
          - webhook
          - workflow_webhook
          default: webhook
      responses:
        '201':
          description: Information about the created webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWebhookResponsePayload'
        '403':
          description: Your API key does not have permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '422':
          description: An invalid parameter was supplied or a mandatory parameter was missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '500':
          description: An internal system error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
    delete:
      description: 'Delete a webhook by ID.


        Required API key permissions: `Admin` (select when creating API key in Account Settings)'
      tags:
      - webhooks
      summary: Delete a webhook
      operationId: delete_webhook
      parameters:
      - description: The id of the webhook to delete
        name: id
        in: query
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Empty response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteWebhookResponsePayload'
        '403':
          description: Your API key does not have permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '404':
          description: The vendor was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '500':
          description: An internal system error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
  /webhooks/notification_types:
    get:
      description: 'Get a list of available webhook notification types and their descriptions for your organisation.


        Required API key permissions: `Admin` (select when creating API key in Account Settings)'
      tags:
      - webhooks
      summary: Webhook notification types
      operationId: webhooks_notification_types
      responses:
        '200':
          description: List of supported notification types for your organisation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhookNotificationTypesResponsePayload'
        '403':
          description: Your API key does not have permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '500':
          description: An internal system error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
  /webhooks/sample:
    get:
      description: 'Get the example data for one or more notification types.


        Required API key permissions: `Admin` (select when creating API key in Account Settings)'
      tags:
      - webhooks
      summary: Webhook example data
      operationId: sample_webhook
      parameters:
      - description: 'The ID of a webhook. If specified sample data for all the

          notification types registered for that webhook will be returned.'
        name: id
        in: query
        schema:
          type: string
      - description: 'A list of notification type IDs you need sample data for.

          If a webhook ID is provided this parameter is ignored.'
        name: notification_type_ids
        in: query
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: List of example data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExampleDataWebhookResponsePayload'
        '403':
          description: Your API key does not have permission to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '429':
          description: Too many requests have been made to this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
        '500':
          description: An internal system error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointError'
components:
  schemas:
    DeleteWebhookResponsePayload:
      type: object
    ExampleDataWebhookResponsePayload:
      type: array
      items:
        $ref: '#/components/schemas/WebhookSampleData'
    ListWebhookResponsePayload:
      type: object
      properties:
        webhooks:
          description: The list of registered webhooks
          type: array
          items:
            $ref: '#/components/schemas/Webhook'
    GetWebhookNotificationTypesResponsePayload:
      type: object
      properties:
        notification_types:
          type: array
          items:
            $ref: '#/components/schemas/NotificationType'
    WebhookSampleData:
      type: object
      properties:
        context:
          description: Extra metadata available for the notifications
          type: object
          additionalProperties: {}
        description:
          description: Description of the notifications
          type: string
          example: Jane Doe replied to a message by John Smith on questionnaire 'SOC2'
        occurredAt:
          description: Timestamp for the event occurrence
          type: string
          format: date-time
          example: '2021-08-17T23:04:02Z'
        type:
          description: Human readable type of notification
          type: string
          example: QuestionnaireCorrespondence
    endpointError:
      description: Error details coming from an endpoint
      type: object
      properties:
        error:
          description: A description of the error
          type: string
    NotificationType:
      type: object
      properties:
        description:
          description: Description for this notification type
          type: string
          example: When a new data leak is published
        id:
          description: ID of this notification type
          type: string
          example: 10-0000-0000-0000000000000000
        is_zapier:
          description: Flag indicating whether the notification type is a zapier notification type
          type: boolean
          example: true
    CreateWebhookResponsePayload:
      type: object
      properties:
        id:
          description: The ID of the created webhook
          type: string
          example: ABCD1234
        signing_secret:
          description: 'The HMAC signing secret for webhook authentication (hex-encoded, 64 characters).

            This is only returned once on creation. Webhooks will include an X-UpGuard-Signature header

            using this secret for authentication.'
          type: string
          example: a1b2c3d4e5f67890123456789012345678901234567890123456789012345678
    Webhook:
      type: object
      properties:
        enabled:
          description: Flag indicating whether the webhook is enabled or disabled
          type: boolean
          example: true
        id:
          description: The ID of the webhook
          type: string
          example: ABCD1234
        name:
          description: The name of the webhook
          type: string
          example: webhook
        notification_type_ids:
          description: The list of notifications IDs registered for this webhook
          type: array
          items:
            type: string
          example:
          - 10-0000-0000-0000000000000000
        url:
          description: The URL used by the webhook to send notifications to
          type: string
          example: https://example.com/
        webhook_type:
          description: The type of webhook
          type: string
          enum:
          - zapier
          - webhook
          - workflow_webhook
          example: zapier
  securitySchemes:
    API_key_in_header:
      type: apiKey
      in: header
      name: Authorization