AfterShip · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Overview Products API

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

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/products'].get
$.paths['/products'].post
$.paths['/products/{id}'].get
$.paths['/products/{id}'].patch
$.paths['/products/{id}/variants'].post
$.paths['/products/{id}/variants/{variant_id}'].get
$.paths['/products/{id}/variants/{variant_id}'].delete
$.paths['/products/{id}/variants/{variant_id}'].patch

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 Overview Products API
  version: 1.0.0
extends: openapi/aftership-products-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 8
- target: $.paths['/products'].get
  update:
    x-apievangelist-phrasing:
      intent: List or search products in a store
      effect: read
      questions:
      - How do I list the products in my store?
      - Can I search products by keyword or show only published ones?
      instructions:
      - text: List products in store {store}.
        slots:
          store: header.as-store-id
      - text: Search products for {search}.
        slots:
          search: query.search
      - text: Get the products with slugs {slugs}.
        slots:
          slugs: query.slugs[]
      method: generated
      generated: '2026-09-26'
- target: $.paths['/products'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a product with variants
      effect: write
      questions:
      - How do I add a new product to my store catalog?
      - What's required to create a product, like images and variants?
      instructions:
      - text: Create product {title} with images {image_urls} and variants {variants}.
        slots:
          title: requestBody.title
          image_urls: requestBody.image_urls
          variants: requestBody.variants
      - text: Add a product to store {store} with variants {variants}.
        slots:
          store: header.as-store-id
          variants: requestBody.variants
      method: generated
      generated: '2026-09-26'
- target: $.paths['/products/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a product by ID
      effect: read
      questions:
      - What are the details of a specific product?
      - Can I look up one product and its variants by ID?
      instructions:
      - text: Show product {id}.
        slots:
          id: path.id
      - text: Get product {id} from store {store}.
        slots:
          id: path.id
          store: header.as-store-id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/products/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a product's details
      effect: write
      questions:
      - Can I change a product's title or description?
      - How do I unpublish a product?
      instructions:
      - text: Rename product {id} to {title}.
        slots:
          id: path.id
          title: requestBody.title
      - text: Set product {id} published to {published}.
        slots:
          id: path.id
          published: requestBody.published
      method: generated
      generated: '2026-09-26'
- target: $.paths['/products/{id}/variants'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a variant to a product
      effect: write
      questions:
      - How do I add a new size or color variant to a product?
      - Can a new variant allow backorders?
      instructions:
      - text: Add variant {variant_id} with SKU {sku} priced {price}.
        slots:
          variant_id: requestBody.id
          sku: requestBody.sku
          price: requestBody.price
      - text: Create a new product variant {title} with {available_quantity} in stock.
        slots:
          title: requestBody.title
          available_quantity: requestBody.available_quantity
      method: generated
      generated: '2026-09-26'
- target: $.paths['/products/{id}/variants/{variant_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a product variant
      effect: read
      questions:
      - What are the details of one variant of a product?
      - Can I retrieve a single product variant by its ID?
      instructions:
      - text: Get a specific product variant from store {store}.
        slots:
          store: header.as-store-id
      - text: Show the price and stock of one product variant.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/products/{id}/variants/{variant_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a product variant
      effect: destructive
      questions:
      - How do I remove a variant I no longer sell?
      - Can I delete one variant without deleting the product?
      instructions:
      - text: Delete a product variant in store {store}.
        slots:
          store: header.as-store-id
      - text: Remove a discontinued variant from its product.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/products/{id}/variants/{variant_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a product variant
      effect: write
      questions:
      - How do I change a variant's price or stock level?
      - Can I update a variant's compare-at price?
      instructions:
      - text: Set the variant price to {price}.
        slots:
          price: requestBody.price
      - text: Update the variant's available quantity to {available_quantity}.
        slots:
          available_quantity: requestBody.available_quantity
      method: generated
      generated: '2026-09-26'