# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Mobile Challenges API version: 1.0.0 extends: openapi/punchh-challenges-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: 5 - target: $.paths['/api2/mobile/challenges'].get update: x-apievangelist-phrasing: intent: List the business's challenges effect: read questions: - What challenges is the brand running for loyalty members right now? - Why would listing challenges return a 422 error? instructions: - text: List all challenges the business offers. - text: Show every challenge campaign for app client {client}. slots: client: requestBody.client method: generated generated: '2026-10-01' - target: $.paths['/api2/mobile/challenges/{id}'].get update: x-apievangelist-phrasing: intent: Get details of one challenge effect: read questions: - What are the rules and rewards of a specific challenge? - Can I look up a single challenge by its ID? instructions: - text: Show the details of challenge {id}. slots: id: path.id - text: What does challenge {id} require? Fetch it. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api2/mobile/users/challenges_listing'].get update: x-apievangelist-phrasing: intent: List a guest's available, active and past challenges effect: read questions: - Which challenges has this guest joined and how far along are they? - Can I show only a guest's past challenges, page by page? instructions: - text: List my challenges in the {filter} category. slots: filter: requestBody.filter - text: Show page {page} of the guest's challenge progress, {per_page} per page. slots: page: requestBody.page per_page: requestBody.per_page method: generated generated: '2026-10-01' - target: $.paths['/api2/mobile/challenge_opt_in'].put update: x-apievangelist-phrasing: intent: Opt a guest into a challenge effect: write questions: - How does a guest explicitly join a challenge campaign? - Is challenge opt-in turned on by default? instructions: - text: Opt me in to challenge {id}. slots: id: requestBody.id - text: Enroll the guest in challenge {id}. slots: id: requestBody.id method: generated generated: '2026-10-01' - target: $.paths['/api2/mobile/challenge_opt_out'].put update: x-apievangelist-phrasing: intent: Opt a guest out of a challenge effect: write questions: - Can a guest leave a challenge they already joined? - How does a guest withdraw from an enrolled challenge campaign? instructions: - text: Opt me out of challenge {id}. slots: id: requestBody.id - text: Withdraw the guest from challenge {id}. slots: id: requestBody.id method: generated generated: '2026-10-01'