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.