SendPulse · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for SendPulse CRM Public ECommerce Product API

20 actions 20 updates phrasing extends openapi/sendpulse-ecommerce-product-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for SendPulse's API. It is a proposal applied on top of the contract, not a document SendPulse publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 20 · first 16 shown; the file carries all of them

$.info
$.paths['/products/all'].post
$.paths['/products/categories/{categoryId}/{productId}'].get
$.paths['/products/deals'].post
$.paths['/products/deals/{dealId}'].get
$.paths['/products/deals/{headId}'].put
$.paths['/products/contacts/{contactId}/deals'].get
$.paths['/products/categories/{categoryId}/{productId}/deals/{headId}'].delete
$.paths['/products/{productId}'].get
$.paths['/products/{productId}'].put
$.paths['/products/{productId}'].delete
$.paths['/products/categories/{categoryId}'].put
$.paths['/products/categories/{categoryId}'].delete
$.paths['/products/categories'].get
$.paths['/products/categories'].post
$.paths['/products/{productId}/prices'].put

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for SendPulse CRM Public ECommerce Product API
  version: 1.0.0
extends: openapi/sendpulse-ecommerce-product-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 19
- target: $.paths['/products/all'].post
  update:
    x-apievangelist-phrasing:
      intent: Search the product catalog with filters
      effect: read
      questions:
      - Can I find products in my catalog by category and price range?
      - Which of my products are hidden or out of stock?
      - Is there a way to search products by name and sort the results?
      instructions:
      - text: Search my products for {search}.
        slots:
          search: requestBody.search
      - text: Filter catalog products in category {categoryId}, {limit} at a time.
        slots:
          categoryId: requestBody.categoryId
          limit: requestBody.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/categories/{categoryId}/{productId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a product within a specific category
      effect: read
      questions:
      - Can I look up a product through the category it belongs to?
      - What details come back for a product when I fetch it by category and product ID?
      instructions:
      - text: Get product {productId} from category {categoryId}.
        slots:
          productId: path.productId
          categoryId: path.categoryId
      - text: Show me item {productId} as listed under category {categoryId}.
        slots:
          productId: path.productId
          categoryId: path.categoryId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/deals'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a product to a CRM deal
      effect: write
      questions:
      - How do I attach a product from my catalog to a sales deal?
      - Can I set the quantity and price when adding a product to a deal?
      - Is it possible to add a product to a deal even when it is out of stock?
      instructions:
      - text: Add product {productId} to deal {dealId}.
        slots:
          productId: requestBody.productId
          dealId: requestBody.dealId
      - text: Put {quantity} units of product {productId} on deal {dealId}.
        slots:
          quantity: requestBody.quantity
          productId: requestBody.productId
          dealId: requestBody.dealId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/deals/{dealId}'].get
  update:
    x-apievangelist-phrasing:
      intent: List the products on a deal
      effect: read
      questions:
      - Which products are attached to a particular deal?
      - Can I see everything a customer is buying in one deal?
      instructions:
      - text: List the products on deal {dealId}.
        slots:
          dealId: path.dealId
      - text: Show what was added to deal {dealId}.
        slots:
          dealId: path.dealId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/deals/{headId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Change quantity or amount of a deal product
      effect: write
      questions:
      - Can I change how many units of a product are in a deal?
      - What if I need to adjust the amount of a product line already on a deal?
      instructions:
      - text: Set the quantity of deal product line {headId} to {quantity}.
        slots:
          headId: path.headId
          quantity: requestBody.quantity
      - text: Change the amount on deal product line {headId} to {amount}.
        slots:
          headId: path.headId
          amount: requestBody.amount
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/contacts/{contactId}/deals'].get
  update:
    x-apievangelist-phrasing:
      intent: List products across a contact's deals
      effect: read
      questions:
      - What products has a given contact got across all of their deals?
      - Can I see every product tied to one contact's deals at once?
      instructions:
      - text: List the products in all deals for contact {contactId}.
        slots:
          contactId: path.contactId
      - text: Show what contact {contactId} has bought through deals.
        slots:
          contactId: path.contactId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/categories/{categoryId}/{productId}/deals/{headId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a product from a deal
      effect: destructive
      questions:
      - How do I take a product off a deal?
      - Can I detach one product line from a deal without deleting the product?
      instructions:
      - text: Detach product {productId} in category {categoryId} from deal line {headId}.
        slots:
          productId: path.productId
          categoryId: path.categoryId
          headId: path.headId
      - text: Remove deal product line {headId} for item {productId} of category {categoryId}.
        slots:
          headId: path.headId
          productId: path.productId
          categoryId: path.categoryId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/{productId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a product by its ID
      effect: read
      questions:
      - Can I fetch a single product just by its ID?
      - What information is stored for one product in my catalog?
      instructions:
      - text: Get product {productId}.
        slots:
          productId: path.productId
      - text: Show me the full details of product {productId}.
        slots:
          productId: path.productId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/{productId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a product's details
      effect: write
      questions:
      - How do I change a product's name, description or images?
      - Can I update the stock balance or visibility of an existing product?
      - Is it possible to edit a product's SEO settings?
      instructions:
      - text: Rename product {productId} to {name}.
        slots:
          productId: path.productId
          name: requestBody.name
      - text: Set the stock balance of product {productId} to {balance}.
        slots:
          productId: path.productId
          balance: requestBody.balance
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/{productId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a product from the catalog
      effect: destructive
      questions:
      - Can I permanently remove a product from my store catalog?
      - What happens when I delete a product by its ID?
      instructions:
      - text: Delete product {productId}.
        slots:
          productId: path.productId
      - text: Remove product {productId} from my catalog.
        slots:
          productId: path.productId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/categories/{categoryId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename or move a product category
      effect: write
      questions:
      - Can I rename a product category?
      - Is it possible to move a category under a different parent category?
      instructions:
      - text: Rename product category {categoryId} to {name}.
        slots:
          categoryId: path.categoryId
          name: requestBody.name
      - text: Move category {categoryId} under parent category {parentId}.
        slots:
          categoryId: path.categoryId
          parentId: requestBody.parentId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/categories/{categoryId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a product category
      effect: destructive
      questions:
      - How do I delete a product category I no longer use?
      - Can I remove a category from my catalog structure?
      instructions:
      - text: Delete product category {categoryId}.
        slots:
          categoryId: path.categoryId
      - text: Remove the catalog category {categoryId}.
        slots:
          categoryId: path.categoryId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/categories'].get
  update:
    x-apievangelist-phrasing:
      intent: List product categories
      effect: read
      questions:
      - What product categories have I set up?
      - Can I see the category tree of my catalog?
      instructions:
      - text: List all my product categories.
      - text: Show the categories in my product catalog.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/categories'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a product category
      effect: write
      questions:
      - Can I add a new category to organize my products?
      - Is it possible to create a subcategory under an existing category?
      instructions:
      - text: Create a product category called {name}.
        slots:
          name: requestBody.name
      - text: Add category {name} under parent category {parentId}.
        slots:
          name: requestBody.name
          parentId: requestBody.parentId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/{productId}/prices'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a product's prices
      effect: write
      questions:
      - How do I change the price of a product?
      - Can I set new prices on a product without editing its other details?
      instructions:
      - text: Update the prices of product {productId} to {prices}.
        slots:
          productId: path.productId
          prices: requestBody.prices
      - text: Change product {productId} pricing.
        slots:
          productId: path.productId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/{productId}/sections'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace sections on a product (PUT)
      effect: write
      questions:
      - Can I replace the sections assigned to a product using a PUT request?
      - Is there a PUT endpoint that overwrites a product's section list?
      instructions:
      - text: Replace the sections on product {productId} with {sections} via PUT.
        slots:
          productId: path.productId
          sections: requestBody.sections
      - text: Use the PUT sections endpoint to update product {productId}.
        slots:
          productId: path.productId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/{productId}/sections'].post
  update:
    x-apievangelist-phrasing:
      intent: Update sections on a product (POST)
      effect: write
      questions:
      - Can I update a product's sections with a POST request?
      - Which endpoint posts new section data to a product?
      instructions:
      - text: Post sections {sections} to product {productId}.
        slots:
          sections: requestBody.sections
          productId: path.productId
      - text: Use the POST sections endpoint for product {productId}.
        slots:
          productId: path.productId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products/{productId}/sections/{sectionId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a section from a product
      effect: destructive
      questions:
      - Can I remove one section from a product?
      - How do I delete a single product section by its ID?
      instructions:
      - text: Delete section {sectionId} from product {productId}.
        slots:
          sectionId: path.sectionId
          productId: path.productId
      - text: Remove section {sectionId} on product {productId}.
        slots:
          sectionId: path.sectionId
          productId: path.productId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/products'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new product
      effect: write
      questions:
      - How do I add a new product to my catalog?
      - Can I create a digital product with its prices and images in one call?
      - What fields can I set when creating a product, like vendor code or stock balance?
      instructions:
      - text: Create a product named {name}.
        slots:
          name: requestBody.name
      - text: Add product {name} with vendor code {vendorCode} in category {categoryId}.
        slots:
          name: requestBody.name
          vendorCode: requestBody.vendorCode
          categoryId: requestBody.categoryId
      method: generated
      generated: '2026-10-01'