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.
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
# 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'