Vendr Catalog API

Provides structured product catalog attributes derived from thousands of unstructured software quotes. Enables buyers to understand product breadth, available add-ons, pricing tiers, and feature comparisons across the Vendr software catalog.

OpenAPI Specification

blissfully-vendr-catalog-api-openapi.yaml Raw ↑
openapi: 3.0.3
info:
  title: Vendr Catalog API
  description: >-
    Provides structured product catalog attributes derived from thousands of unstructured
    software quotes. Enables buyers to understand product breadth, available add-ons,
    pricing tiers, and feature comparisons across the Vendr software catalog. Formerly
    Blissfully, now part of Vendr's SaaS buying and management platform.
  version: '1.0'
  contact:
    name: Vendr API Support
    url: https://developers.vendr.com
  x-generated-from: documentation
servers:
  - url: https://api.vendr.com/v1
    description: Production Server
tags:
  - name: Products
    description: Software product catalog entries
  - name: Vendors
    description: Software vendors and their product portfolios
  - name: Pricing
    description: Pricing intelligence and benchmarks
  - name: Webhooks
    description: Webhook management for event notifications
security:
  - apiKeyAuth: []
paths:
  /products:
    get:
      operationId: listProducts
      summary: Vendr List Software Products
      description: >-
        List software products in the Vendr catalog with structured attributes including
        features, add-ons, pricing tiers, and category information derived from Vendr's
        database of software purchases and quotes.
      tags:
        - Products
      parameters:
        - name: category
          in: query
          description: Filter by product category (e.g., CRM, Security, HR)
          schema:
            type: string
          example: CRM
        - name: vendor_id
          in: query
          description: Filter products by vendor identifier
          schema:
            type: string
          example: vendor-500123
        - name: limit
          in: query
          description: Maximum number of results to return
          schema:
            type: integer
            minimum: 1
            maximum: 100
          example: 20
        - name: offset
          in: query
          description: Number of results to skip for pagination
          schema:
            type: integer
            minimum: 0
          example: 0
      responses:
        '200':
          description: List of software products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductListResponse'
              examples:
                ListProducts200Example:
                  summary: Default listProducts 200 response
                  x-microcks-default: true
                  value:
                    products:
                      - id: product-500123
                        name: Salesforce Sales Cloud
                        vendor_id: vendor-salesforce
                        category: CRM
                        description: Customer relationship management platform
                    total: 1
                    limit: 20
                    offset: 0
        '401':
          description: Unauthorized - missing or invalid API key
        '429':
          description: Rate limit exceeded - 250 requests per minute
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /products/{product_id}:
    get:
      operationId: getProduct
      summary: Vendr Get Software Product
      description: >-
        Retrieve detailed information for a specific software product including all
        catalog attributes, available add-ons, pricing tiers, and feature list.
      tags:
        - Products
      parameters:
        - name: product_id
          in: path
          required: true
          description: Unique product identifier
          schema:
            type: string
          example: product-500123
      responses:
        '200':
          description: Software product details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
              examples:
                GetProduct200Example:
                  summary: Default getProduct 200 response
                  x-microcks-default: true
                  value:
                    id: product-500123
                    name: Salesforce Sales Cloud
                    vendor_id: vendor-salesforce
                    category: CRM
                    description: Customer relationship management platform for sales teams
                    features:
                      - Contact Management
                      - Pipeline Management
                      - Reporting and Analytics
        '401':
          description: Unauthorized
        '404':
          description: Product not found
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /vendors:
    get:
      operationId: listVendors
      summary: Vendr List Software Vendors
      description: >-
        List software vendors in the Vendr catalog with their product portfolios
        and vendor profile information.
      tags:
        - Vendors
      parameters:
        - name: category
          in: query
          description: Filter vendors by category
          schema:
            type: string
          example: CRM
        - name: limit
          in: query
          description: Maximum number of results
          schema:
            type: integer
          example: 20
        - name: offset
          in: query
          description: Offset for pagination
          schema:
            type: integer
          example: 0
      responses:
        '200':
          description: List of vendors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VendorListResponse'
              examples:
                ListVendors200Example:
                  summary: Default listVendors 200 response
                  x-microcks-default: true
                  value:
                    vendors:
                      - id: vendor-salesforce
                        name: Salesforce
                        website: https://www.salesforce.com
                        category: CRM
                    total: 1
        '401':
          description: Unauthorized
        '429':
          description: Rate limit exceeded
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /pricing:
    post:
      operationId: getPricingInsights
      summary: Vendr Get Pricing Insights
      description: >-
        Retrieve actionable pricing insights including fair price predictions and
        negotiation guidance tailored to the buyer's specific requirements, contract
        size, and company profile. Powered by Vendr's database of real software purchases.
      tags:
        - Pricing
      requestBody:
        required: true
        description: Pricing insight request with product and buyer context
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PricingRequest'
            examples:
              GetPricingInsightsRequestExample:
                summary: Default getPricingInsights request
                x-microcks-default: true
                value:
                  product_id: product-500123
                  seats: 100
                  contract_length_months: 12
                  company_size: mid-market
      responses:
        '200':
          description: Pricing insights and benchmarks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PricingResponse'
              examples:
                GetPricingInsights200Example:
                  summary: Default getPricingInsights 200 response
                  x-microcks-default: true
                  value:
                    product_id: product-500123
                    fair_price_per_seat: 150
                    currency: USD
                    confidence: high
                    negotiation_guidance: Consider asking for a 15-20% discount given your company size and multi-year commitment.
        '400':
          description: Bad request - invalid parameters
        '401':
          description: Unauthorized
        '429':
          description: Rate limit exceeded
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

  /webhooks:
    get:
      operationId: listWebhooks
      summary: Vendr List Webhooks
      description: List all configured webhooks for the authenticated account.
      tags:
        - Webhooks
      responses:
        '200':
          description: List of configured webhooks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookListResponse'
              examples:
                ListWebhooks200Example:
                  summary: Default listWebhooks 200 response
                  x-microcks-default: true
                  value:
                    webhooks:
                      - id: webhook-500123
                        url: https://example.com/webhook
                        events:
                          - pricing.updated
                        active: true
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

    post:
      operationId: createWebhook
      summary: Vendr Create Webhook
      description: Create a new webhook to receive event notifications from Vendr's data processing pipeline.
      tags:
        - Webhooks
      requestBody:
        required: true
        description: Webhook configuration
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRequest'
            examples:
              CreateWebhookRequestExample:
                summary: Default createWebhook request
                x-microcks-default: true
                value:
                  url: https://example.com/webhook
                  events:
                    - pricing.updated
                    - catalog.updated
                  secret: webhook-secret-abc123
      responses:
        '201':
          description: Webhook created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
              examples:
                CreateWebhook201Example:
                  summary: Default createWebhook 201 response
                  x-microcks-default: true
                  value:
                    id: webhook-500123
                    url: https://example.com/webhook
                    events:
                      - pricing.updated
                    active: true
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK

components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key for authentication. Contact Vendr support to obtain API access.
        Rate limited to 250 requests per minute and 150,000 per day.

  schemas:
    Product:
      type: object
      description: A software product in the Vendr catalog
      properties:
        id:
          type: string
          description: Unique product identifier
          example: product-500123
        name:
          type: string
          description: Product name
          example: Salesforce Sales Cloud
        vendor_id:
          type: string
          description: Associated vendor identifier
          example: vendor-salesforce
        category:
          type: string
          description: Product category
          example: CRM
        description:
          type: string
          description: Product description
          example: Customer relationship management platform
        features:
          type: array
          description: List of product features
          items:
            type: string
          example:
            - Contact Management
            - Pipeline Management
        add_ons:
          type: array
          description: Available product add-ons
          items:
            type: string

    ProductListResponse:
      type: object
      description: Paginated list of software products
      properties:
        products:
          type: array
          description: List of products
          items:
            $ref: '#/components/schemas/Product'
        total:
          type: integer
          description: Total number of matching products
          example: 250
        limit:
          type: integer
          description: Maximum results per page
          example: 20
        offset:
          type: integer
          description: Current page offset
          example: 0

    Vendor:
      type: object
      description: A software vendor in the Vendr catalog
      properties:
        id:
          type: string
          description: Unique vendor identifier
          example: vendor-salesforce
        name:
          type: string
          description: Vendor name
          example: Salesforce
        website:
          type: string
          format: uri
          description: Vendor website URL
          example: https://www.salesforce.com
        category:
          type: string
          description: Primary product category
          example: CRM

    VendorListResponse:
      type: object
      description: Paginated list of vendors
      properties:
        vendors:
          type: array
          description: List of vendors
          items:
            $ref: '#/components/schemas/Vendor'
        total:
          type: integer
          description: Total number of vendors
          example: 5000

    PricingRequest:
      type: object
      description: Request for pricing insights
      required:
        - product_id
      properties:
        product_id:
          type: string
          description: Product identifier to get pricing for
          example: product-500123
        seats:
          type: integer
          description: Number of seats or licenses
          example: 100
        contract_length_months:
          type: integer
          description: Contract length in months
          example: 12
        company_size:
          type: string
          description: Buyer company size segment
          enum:
            - startup
            - smb
            - mid-market
            - enterprise
          example: mid-market

    PricingResponse:
      type: object
      description: Pricing insights and negotiation guidance
      properties:
        product_id:
          type: string
          description: Product identifier
          example: product-500123
        fair_price_per_seat:
          type: number
          description: Fair market price per seat in USD
          example: 150
        currency:
          type: string
          description: Currency code
          example: USD
        confidence:
          type: string
          description: Confidence level of the pricing prediction
          enum:
            - high
            - medium
            - low
          example: high
        negotiation_guidance:
          type: string
          description: Specific negotiation tips and strategy
          example: Consider asking for a 15-20% discount given your company size.

    WebhookRequest:
      type: object
      description: Webhook creation request
      required:
        - url
        - events
      properties:
        url:
          type: string
          format: uri
          description: HTTPS endpoint to receive webhook events
          example: https://example.com/webhook
        events:
          type: array
          description: List of events to subscribe to
          items:
            type: string
          example:
            - pricing.updated
            - catalog.updated
        secret:
          type: string
          description: Optional signing secret for webhook payload verification
          example: webhook-secret-abc123

    Webhook:
      type: object
      description: A configured webhook
      properties:
        id:
          type: string
          description: Unique webhook identifier
          example: webhook-500123
        url:
          type: string
          format: uri
          description: Webhook endpoint URL
          example: https://example.com/webhook
        events:
          type: array
          description: Subscribed event types
          items:
            type: string
        active:
          type: boolean
          description: Whether the webhook is currently active
          example: true

    WebhookListResponse:
      type: object
      description: List of configured webhooks
      properties:
        webhooks:
          type: array
          description: List of webhooks
          items:
            $ref: '#/components/schemas/Webhook'