Vendr Webhooks API

Subscribe to and manage event notifications

OpenAPI Specification

vendr-webhooks-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Vendr OpenPrice Catalog Webhooks API
  description: 'The Vendr OpenPrice API provides access to real SaaS pricing intelligence derived from 200,000+ verified software contracts across 20,000+ products. Embed fair price estimates, negotiation insights, product catalog data, and purchase scope management into your applications. Rate limits: 250 requests per minute, 150,000 requests per day.'
  version: 1.0.0
  contact:
    name: Vendr Developer Support
    email: developers@vendr.com
    url: https://developers.vendr.com/docs/introduction
  termsOfService: https://www.vendr.com/terms-of-service
  x-logo:
    url: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
servers:
- url: https://api.vendr.com
  description: Vendr Production API
security:
- ApiKeyAuth: []
tags:
- name: Webhooks
  description: Subscribe to and manage event notifications
paths:
  /v1/webhooks:
    post:
      operationId: createWebhook
      summary: Create Webhook
      description: Subscribe to Vendr data processing events by registering a webhook endpoint. Receive real-time notifications for workflow updates, document uploads, comments, and other events.
      tags:
      - Webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRequest'
      responses:
        '201':
          description: Webhook created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
    get:
      operationId: listWebhooks
      summary: List Webhooks
      description: List all registered webhook subscriptions for the current account.
      tags:
      - Webhooks
      responses:
        '200':
          description: List of registered webhooks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/webhooks/{webhookId}:
    delete:
      operationId: deleteWebhook
      summary: Delete Webhook
      description: Remove a webhook subscription by ID.
      tags:
      - Webhooks
      parameters:
      - name: webhookId
        in: path
        required: true
        description: Unique identifier for the webhook subscription
        schema:
          type: string
      responses:
        '204':
          description: Webhook deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    WebhookListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/WebhookResponse'
        total:
          type: integer
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        code:
          type: integer
    WebhookResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique webhook subscription ID
        url:
          type: string
        events:
          type: array
          items:
            type: string
        createdAt:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - active
          - inactive
    WebhookRequest:
      type: object
      required:
      - url
      - events
      properties:
        url:
          type: string
          format: uri
          description: HTTPS URL to receive webhook payloads
        events:
          type: array
          items:
            type: string
            enum:
            - workflow.updated
            - document.uploaded
            - comment.added
            - deal.closed
            - pricing.updated
          description: Event types to subscribe to
        secret:
          type: string
          description: Optional secret for verifying webhook signature
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimitExceeded:
      description: Rate limit exceeded (250/min or 150,000/day)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authenticating requests. Contact developers@vendr.com to obtain a key.