Antavo · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Antavo Clubs API
23 actions
23 updates
phrasing
extends
openapi/antavo-clubs-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Antavo's API. It is a proposal applied on top of the contract, not a document Antavo publishes.
What the actions change
x-apievangelist-phrasing
Targets 23 · first 16 shown; the file carries all of them
$.info
$.paths['/v1/clubs/{club_id}/history'].get
$.paths['/v1/clubs/{club_id}/members/{customer_id}'].get
$.paths['/v1/clubs/{club_id}/members'].get
$.paths['/v1/clubs/{club_id}/point-expiry'].get
$.paths['/v1/clubs/{club_id}'].get
$.paths['/v1/clubs/templates'].get
$.paths['/v1/clubs'].get
$.paths['/v1/clubs'].post
$.paths['/v1/clubs/{club_id}/applicants/{customer_id}/accept'].post
$.paths['/v1/clubs/{club_id}/applicants/{customer_id}/ban'].post
$.paths['/v1/clubs/{club_id}/applicants/{customer_id}/refuse'].post
$.paths['/v1/clubs/{club_id}/disband'].post
$.paths['/v1/clubs/{club_id}/invitations'].post
$.paths['/v1/clubs/{club_id}/members/{customer_id}/ban'].post
$.paths['/v1/clubs/{club_id}/members/{customer_id}/club-update'].post
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 Antavo Clubs API
version: 1.0.0
extends: openapi/antavo-clubs-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: 22
- target: $.paths['/v1/clubs/{club_id}/history'].get
update:
x-apievangelist-phrasing:
intent: Show a club's action history
effect: read
questions:
- What actions have happened in a club over time?
- Can I filter a club's history by event type or member?
instructions:
- text: Show the history of club {club_id}.
slots:
club_id: path.club_id
- text: List {type} actions in club {club_id} by customer {customer_id}.
slots:
type: query.type
club_id: path.club_id
customer_id: query.customer_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}'].get
update:
x-apievangelist-phrasing:
intent: Get one club member's details
effect: read
questions:
- What role, balance and spending limit does a specific club member have?
- Can I check one person's status inside a club?
instructions:
- text: Get member {customer_id}'s details in club {club_id}.
slots:
customer_id: path.customer_id
club_id: path.club_id
- text: Show the role and balance of customer {customer_id} within club {club_id}.
slots:
customer_id: path.customer_id
club_id: path.club_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members'].get
update:
x-apievangelist-phrasing:
intent: List a club's members
effect: read
questions:
- Who belongs to a given club?
- Can I list only club members with a certain role or status?
instructions:
- text: List the members of club {club_id}.
slots:
club_id: path.club_id
- text: Show {status} members with role {role} in club {club_id}.
slots:
status: query.status
role: query.role
club_id: path.club_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/point-expiry'].get
update:
x-apievangelist-phrasing:
intent: List a club's expiring points by date
effect: read
questions:
- Which club points will expire within a date range?
- Can I see when a club's points are due to lapse?
instructions:
- text: List points expiring in club {club_id} between {from} and {to}.
slots:
club_id: path.club_id
from: query.from
to: query.to
- text: Find the dates club {club_id}'s points lapse from {from} through {to}.
slots:
club_id: path.club_id
from: query.from
to: query.to
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a club's details
effect: read
questions:
- What are the details of one particular club?
- Can I look up a club by its ID?
instructions:
- text: Get the details of club {club_id}.
slots:
club_id: path.club_id
- text: Look up club {club_id}.
slots:
club_id: path.club_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/templates'].get
update:
x-apievangelist-phrasing:
intent: List club templates
effect: read
questions:
- Which club templates are configured?
- Can I filter club templates by contribution or expiration type?
instructions:
- text: List all club templates.
- text: Show club templates with status {status} and contribution type {contribution_type}.
slots:
status: query.status
contribution_type: query.contribution_type
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs'].get
update:
x-apievangelist-phrasing:
intent: List clubs
effect: read
questions:
- Which clubs exist in my loyalty program?
- Can I find clubs created from a specific template?
instructions:
- text: List all clubs.
- text: Find clubs named {name} built on template {template_id}.
slots:
name: query.name
template_id: query.template_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs'].post
update:
x-apievangelist-phrasing:
intent: Create a club
effect: write
questions:
- Can I create a new club for members to join?
- Who becomes the owner when a new club is created?
instructions:
- text: Create a club named {name} from template {template_id} owned by {owner_id}.
slots:
name: requestBody.name
template_id: requestBody.template_id
owner_id: requestBody.owner_id
- text: Start a new club {name} with template {template_id}.
slots:
name: requestBody.name
template_id: requestBody.template_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/applicants/{customer_id}/accept'].post
update:
x-apievangelist-phrasing:
intent: Accept a club applicant
effect: write
questions:
- How does a club owner accept someone's request to join?
- Is an event recorded when a club applicant is accepted?
instructions:
- text: Accept applicant {customer_id} into club {club_id}.
slots:
customer_id: path.customer_id
club_id: path.club_id
- text: Approve customer {customer_id}'s membership request for club {club_id} with reason {reason}.
slots:
customer_id: path.customer_id
club_id: path.club_id
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/applicants/{customer_id}/ban'].post
update:
x-apievangelist-phrasing:
intent: Ban a club applicant
effect: destructive
questions:
- Can I stop an applicant from ever applying to a club again?
- What does banning a pending club applicant do?
instructions:
- text: Ban applicant {customer_id} from club {club_id}.
slots:
customer_id: path.customer_id
club_id: path.club_id
- text: Block customer {customer_id}'s application to club {club_id} for good, reason {reason}.
slots:
customer_id: path.customer_id
club_id: path.club_id
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/applicants/{customer_id}/refuse'].post
update:
x-apievangelist-phrasing:
intent: Refuse a club applicant
effect: write
questions:
- Can I turn down a club application but let them reapply later?
- What happens to an applicant whose club request is declined?
instructions:
- text: Refuse applicant {customer_id} for club {club_id}.
slots:
customer_id: path.customer_id
club_id: path.club_id
- text: Decline customer {customer_id}'s request to join club {club_id}, leaving them free to reapply.
slots:
customer_id: path.customer_id
club_id: path.club_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/disband'].post
update:
x-apievangelist-phrasing:
intent: Disband a club
effect: destructive
questions:
- Can a club owner shut down a club entirely?
- What events are recorded when a club is disbanded?
instructions:
- text: Disband club {club_id} as actor {actor}.
slots:
club_id: path.club_id
actor: requestBody.actor
- text: Dissolve club {club_id} on behalf of {actor} with reason {reason}.
slots:
club_id: path.club_id
actor: requestBody.actor
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/invitations'].post
update:
x-apievangelist-phrasing:
intent: Invite a member to a club
effect: write
questions:
- Can one club member invite another customer to join?
- Who has to be named when sending a club invitation?
instructions:
- text: Invite customer {invitee_customer_id} to club {club_id} on behalf of {inviter_customer_id}.
slots:
invitee_customer_id: requestBody.invitee_customer_id
club_id: path.club_id
inviter_customer_id: requestBody.inviter_customer_id
- text: Create a club {club_id} invitation from {inviter_customer_id} to {invitee_customer_id}.
slots:
club_id: path.club_id
inviter_customer_id: requestBody.inviter_customer_id
invitee_customer_id: requestBody.invitee_customer_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/ban'].post
update:
x-apievangelist-phrasing:
intent: Ban a club member
effect: destructive
questions:
- Can I remove a current club member and prevent them from rejoining?
- What is recorded when an existing member is banned from a club?
instructions:
- text: Ban member {customer_id} from club {club_id} as {actor}.
slots:
customer_id: path.customer_id
club_id: path.club_id
actor: requestBody.actor
- text: Kick customer {customer_id} out of club {club_id} permanently, actor {actor}.
slots:
customer_id: path.customer_id
club_id: path.club_id
actor: requestBody.actor
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/club-update'].post
update:
x-apievangelist-phrasing:
intent: Rename a club
effect: write
questions:
- Can a club member change the club's name?
- Is a reason stored when a club's details are edited?
instructions:
- text: Rename club {club_id} to {name} as member {customer_id}.
slots:
club_id: path.club_id
name: requestBody.name
customer_id: path.customer_id
- text: Change club {club_id}'s name to {name} on behalf of {customer_id}, reason {reason}.
slots:
club_id: path.club_id
name: requestBody.name
customer_id: path.customer_id
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/ownership'].post
update:
x-apievangelist-phrasing:
intent: Transfer club ownership
effect: write
questions:
- Can I hand club ownership over to another member?
- What happens to the previous owner when a new club owner is assigned?
instructions:
- text: Make member {customer_id} the owner of club {club_id}, actor {actor}.
slots:
customer_id: path.customer_id
club_id: path.club_id
actor: requestBody.actor
- text: Transfer ownership of club {club_id} to customer {customer_id} as {actor}.
slots:
club_id: path.club_id
customer_id: path.customer_id
actor: requestBody.actor
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/point-adjustment'].post
update:
x-apievangelist-phrasing:
intent: Adjust a club member's points
effect: write
questions:
- Can I correct a club member's point contribution up or down?
- Can club point adjustments be negative?
instructions:
- text: Adjust member {customer_id}'s points in club {club_id} by {points}.
slots:
customer_id: path.customer_id
club_id: path.club_id
points: requestBody.points
- text: Change customer {customer_id}'s point contribution to club {club_id} by {points}, reason {reason}.
slots:
customer_id: path.customer_id
club_id: path.club_id
points: requestBody.points
reason: requestBody.reason
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/point-donation'].post
update:
x-apievangelist-phrasing:
intent: Donate account points to a club
effect: write
questions:
- Can a member donate their own loyalty points to a club?
- Do club cycle limits apply to point donations?
instructions:
- text: Donate {donated_account_points} account points from member {customer_id} to club {club_id}.
slots:
donated_account_points: requestBody.donated_account_points
customer_id: path.customer_id
club_id: path.club_id
- text: Have customer {customer_id} give {donated_account_points} points from account {account} to club {club_id}.
slots:
customer_id: path.customer_id
donated_account_points: requestBody.donated_account_points
account: requestBody.account
club_id: path.club_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/remove'].post
update:
x-apievangelist-phrasing:
intent: Remove a member from a club
effect: destructive
questions:
- Can I remove someone from a club but still let them rejoin later?
- Which event is logged when a member is removed without a ban?
instructions:
- text: Remove member {customer_id} from club {club_id} as {actor}.
slots:
customer_id: path.customer_id
club_id: path.club_id
actor: requestBody.actor
- text: Take customer {customer_id} out of club {club_id} without banning them, actor {actor}.
slots:
customer_id: path.customer_id
club_id: path.club_id
actor: requestBody.actor
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/{customer_id}/unban'].post
update:
x-apievangelist-phrasing:
intent: Unban a club member
effect: write
questions:
- Can a banned club member be allowed back in?
- Is lifting a club ban recorded in the member's history?
instructions:
- text: Unban customer {customer_id} from club {club_id} as {actor}.
slots:
customer_id: path.customer_id
club_id: path.club_id
actor: requestBody.actor
- text: Lift the ban on member {customer_id} in club {club_id}, reason {reason}, actor {actor}.
slots:
customer_id: path.customer_id
club_id: path.club_id
reason: requestBody.reason
actor: requestBody.actor
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/{club_id}/members/join-public'].post
update:
x-apievangelist-phrasing:
intent: Join a customer to a public club
effect: write
questions:
- Can a loyalty member join a public club directly without an invitation?
- Can I record which channel a member used to join an open club?
instructions:
- text: Add customer {customer_id} to public club {club_id}.
slots:
customer_id: requestBody.customer_id
club_id: path.club_id
- text: Join customer {customer_id} to open club {club_id} via channel {channel}.
slots:
customer_id: requestBody.customer_id
club_id: path.club_id
channel: requestBody.channel
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/clubs/invitations/{invitation_id}'].post
update:
x-apievangelist-phrasing:
intent: Join a private club with an invitation
effect: write
questions:
- How does a member join a private club they were invited to?
- What do I need to accept a private club invitation?
instructions:
- text: Accept invitation {invitation_id} to join the private club.
slots:
invitation_id: path.invitation_id
- text: Join the private club using invitation {invitation_id} via channel {channel}.
slots:
invitation_id: path.invitation_id
channel: requestBody.channel
method: generated
generated: '2026-10-01'