Punchh · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Punchh Locations API

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

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/api2/mobile/locations/configuration'].get
$.paths['/api2/mobile/locations/{location_key}/diagnostic_logs'].post
$.paths['/api2/mobile/locations/search'].get
$.paths['/api2/dashboard/locations'].get
$.paths['/api2/dashboard/locations'].post
$.paths['/api2/dashboard/locations'].delete
$.paths['/api2/dashboard/locations'].patch
$.paths['/api2/dashboard/location_groups'].get
$.paths['/api2/dashboard/location_groups'].post
$.paths['/api2/dashboard/location_groups'].delete
$.paths['/api2/dashboard/location_groups'].patch
$.paths['/api2/dashboard/location_groups/add_location'].post
$.paths['/api2/dashboard/location_groups/remove_location'].delete
$.paths['/api2/dashboard/business_admins/authorizations'].delete
$.paths['/api2/dashboard/business_admins/authorizations'].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 Punchh Locations API
  version: 1.0.0
extends: openapi/punchh-locations-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: 16
- target: $.paths['/api2/mobile/locations/configuration'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a store location's configuration
      effect: read
      questions:
      - What configuration does a store location expose to the app or POS?
      - Can I read a location's settings using its location key?
      instructions:
      - text: Get the configuration for location key {location_key}.
        slots:
          location_key: requestBody.location_key
      - text: Show this store's location configuration.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/locations/{location_key}/diagnostic_logs'].post
  update:
    x-apievangelist-phrasing:
      intent: Send POS diagnostic logs for a location
      effect: write
      questions:
      - How do I report POS terminal diagnostics for a store to the loyalty platform?
      - Can I attach the POS type and MAC address when sending diagnostic logs?
      instructions:
      - text: Send diagnostic logs for location key {location_key}.
        slots:
          location_key: path.location_key
      - text: 'Log a {pos_type} terminal issue at location {location_key}: {description}.'
        slots:
          pos_type: requestBody.pos_type
          location_key: path.location_key
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/mobile/locations/search'].get
  update:
    x-apievangelist-phrasing:
      intent: Find nearby store locations
      effect: read
      questions:
      - Which restaurant locations are closest to a guest's GPS position?
      - Can I search store locations by part of their name?
      instructions:
      - text: Find stores near latitude {latitude} and longitude {longitude}.
        slots:
          latitude: requestBody.latitude
          longitude: requestBody.longitude
      - text: Search locations whose name contains {name_like}, up to {max} results.
        slots:
          name_like: requestBody.name_like
          max: requestBody.max
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/locations'].get
  update:
    x-apievangelist-phrasing:
      intent: List a business's locations
      effect: read
      questions:
      - How do I get all store locations and their details for a business?
      - Can I page through locations or filter them by store number?
      instructions:
      - text: List locations starting from location {location_id}.
        slots:
          location_id: query.location_id
      - text: Get the location with store number {store_number}.
        slots:
          store_number: query.store_number
      - text: Show page {page} of locations, {per} per page.
        slots:
          page: query.page
          per: query.per
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/locations'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a store location
      effect: write
      questions:
      - What admin permission do I need to add a new store location?
      - Can I add a new restaurant location to the loyalty program by API?
      instructions:
      - text: Create a new store location with {location}.
        slots:
          location: requestBody.location
      - text: Add a restaurant location to the business.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/locations'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a store location immediately
      effect: destructive
      questions:
      - How do I remove a closed store location from the business right away?
      - Can I delete a location using its store number instead of its ID?
      instructions:
      - text: Delete location {location_id} now.
        slots:
          location_id: requestBody.location_id
      - text: Remove the store with number {store_number} from the business.
        slots:
          store_number: requestBody.store_number
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/locations'].patch
  update:
    x-apievangelist-phrasing:
      intent: Edit a store location
      effect: write
      questions:
      - Can I change a store location's details after it was created?
      - Is there a way to turn on the weekly redemption report for one location?
      instructions:
      - text: Update location {location_id} with {location}.
        slots:
          location_id: requestBody.location_id
          location: requestBody.location
      - text: Turn the weekly redemption report to {enabled} for store {store_number}.
        slots:
          enabled: requestBody.enable_weekly_redemption_report
          store_number: requestBody.store_number
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/location_groups'].get
  update:
    x-apievangelist-phrasing:
      intent: List location groups and their stores
      effect: read
      questions:
      - Which location groups exist and which stores are in each?
      - Can one store belong to more than one location group?
      instructions:
      - text: List all location groups in the business.
      - text: Show the stores in location group {location_group_id}.
        slots:
          location_group_id: query.location_group_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/location_groups'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a location group
      effect: write
      questions:
      - How do I group stores together, for example by region?
      - Does a new location group need a first location when it's created?
      instructions:
      - text: Create location group {name} starting with location {location_id}.
        slots:
          name: requestBody.name
          location_id: requestBody.location_id
      - text: Make a new group named {name} with store {store_number}.
        slots:
          name: requestBody.name
          store_number: requestBody.store_number
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/location_groups'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a location group
      effect: destructive
      questions:
      - Does deleting a location group also delete its stores?
      - How do I remove a location group I no longer use?
      instructions:
      - text: Delete location group {location_group_id}.
        slots:
          location_group_id: requestBody.location_group_id
      - text: Remove the group {location_group_id} but keep its stores.
        slots:
          location_group_id: requestBody.location_group_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/location_groups'].patch
  update:
    x-apievangelist-phrasing:
      intent: Rename a location group
      effect: write
      questions:
      - Can I rename an existing location group?
      - What can be changed on a location group after it is created?
      instructions:
      - text: Rename location group {location_group_id} to {name}.
        slots:
          location_group_id: requestBody.location_group_id
          name: requestBody.name
      - text: Change the name of group {location_group_id} to {name}.
        slots:
          location_group_id: requestBody.location_group_id
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/location_groups/add_location'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a store to a location group
      effect: write
      questions:
      - How do I add another store to an existing location group?
      - Can I add a location to a group by its store number?
      instructions:
      - text: Add location {location_id} to group {location_group_id}.
        slots:
          location_id: requestBody.location_id
          location_group_id: requestBody.location_group_id
      - text: Put store {store_number} into location group {location_group_id}.
        slots:
          store_number: requestBody.store_number
          location_group_id: requestBody.location_group_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/location_groups/remove_location'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a store from a location group
      effect: destructive
      questions:
      - Can I take a store out of a location group without deleting the store?
      - What happens to a location after it's removed from a group?
      instructions:
      - text: Remove location {location_id} from group {location_group_id}.
        slots:
          location_id: requestBody.location_id
          location_group_id: requestBody.location_group_id
      - text: Take store {store_number} out of location group {location_group_id}.
        slots:
          store_number: requestBody.store_number
          location_group_id: requestBody.location_group_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/business_admins/authorizations'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke an admin's access to stores
      effect: destructive
      questions:
      - How do I stop a business admin from managing a particular store?
      - Can I remove an admin's access to a whole location group?
      instructions:
      - text: Revoke admin {admin_id}'s access to {business_admins}.
        slots:
          admin_id: requestBody.admin_id
          business_admins: requestBody.business_admins
      - text: Take away store access for admin {admin_id}.
        slots:
          admin_id: requestBody.admin_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/business_admins/authorizations'].patch
  update:
    x-apievangelist-phrasing:
      intent: Grant an admin access to stores
      effect: write
      questions:
      - How do I let a business admin manage a specific store or location group?
      - Can an admin be given access by store number?
      instructions:
      - text: Grant admin {admin_id} access to {business_admins}.
        slots:
          admin_id: requestBody.admin_id
          business_admins: requestBody.business_admins
      - text: Allow admin {admin_id} to manage additional locations.
        slots:
          admin_id: requestBody.admin_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api2/dashboard/locations/destroy_async'].delete
  update:
    x-apievangelist-phrasing:
      intent: Queue a store location for deletion
      effect: destructive
      questions:
      - Is there a background way to delete a location that has a lot of data?
      - Can location deletion be queued instead of done immediately?
      instructions:
      - text: Queue location {location_id} for asynchronous deletion.
        slots:
          location_id: requestBody.location_id
      - text: Schedule deletion of location {location_id}, store {store_number}, in the background.
        slots:
          location_id: requestBody.location_id
          store_number: requestBody.store_number
      method: generated
      generated: '2026-10-01'