Squarespace · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Commerce Contacts API
12 actions
12 updates
phrasing
extends
openapi/squarespace-contacts-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Squarespace's API. It is a proposal applied on top of the contract, not a document Squarespace publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/v1/contacts'].get
$.paths['/v1/contacts'].post
$.paths['/v1/contacts/query'].post
$.paths['/v1/contacts/{contactId}'].get
$.paths['/v1/contacts/{contactId}'].delete
$.paths['/v1/contacts/{contactId}'].patch
$.paths['/v1/contacts/{contactId}/address-book'].get
$.paths['/v1/contacts/{contactId}/address-book'].post
$.paths['/v1/contacts/{contactId}/address-book/{addressBookEntryId}'].get
$.paths['/v1/contacts/{contactId}/address-book/{addressBookEntryId}'].put
$.paths['/v1/contacts/{contactId}/address-book/{addressBookEntryId}'].delete
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 Commerce Contacts API
version: 1.0.0
extends: openapi/squarespace-contacts-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: 11
- target: $.paths['/v1/contacts'].get
update:
x-apievangelist-phrasing:
intent: List the contacts on my website
effect: read
questions:
- How do I list every contact stored for my Squarespace site?
- Can I control how many contacts come back per page when listing them all?
instructions:
- text: List my website's contacts, {pageSize} per page.
slots:
pageSize: query.pageSize
- text: Continue listing all contacts from cursor {cursor}.
slots:
cursor: query.cursor
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts'].post
update:
x-apievangelist-phrasing:
intent: Add a new contact
effect: write
questions:
- How do I add a new person to my site's contact list?
- What details are required when creating a contact, like locale and primary email?
instructions:
- text: Create a contact named {firstName} {lastName} with email {primaryEmail} and locale {locale}.
slots:
firstName: requestBody.firstName
lastName: requestBody.lastName
primaryEmail: requestBody.primaryEmail
locale: requestBody.locale
- text: Add {primaryEmail} as a new contact for {firstName} {lastName}, locale {locale}.
slots:
primaryEmail: requestBody.primaryEmail
firstName: requestBody.firstName
lastName: requestBody.lastName
locale: requestBody.locale
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/query'].post
update:
x-apievangelist-phrasing:
intent: Search and filter contacts
effect: read
questions:
- Which contacts have placed more than a certain number of orders?
- Can I search contacts by name or email and sort the results?
- How do I find donors whose last donation was before a given date?
instructions:
- text: Search contacts matching {searchString}, sorted by {sortField} {sortDirection}.
slots:
searchString: requestBody.searchString
sortField: requestBody.sortField
sortDirection: requestBody.sortDirection
- text: Find contacts whose order count falls within {orderCount}.
slots:
orderCount: requestBody.orderCount
- text: Filter contacts by last donation date range {lastDonationOn}.
slots:
lastDonationOn: requestBody.lastDonationOn
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}'].get
update:
x-apievangelist-phrasing:
intent: Get one contact's details
effect: read
questions:
- How can I pull up the full record for a single contact by ID?
- What information is stored on one specific contact?
instructions:
- text: Get contact {contactId}.
slots:
contactId: path.contactId
- text: Show me the details saved for contact {contactId}.
slots:
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a contact
effect: destructive
questions:
- How do I remove a contact from my site entirely?
- Can I permanently delete a single contact record by its ID?
instructions:
- text: Delete contact {contactId}.
slots:
contactId: path.contactId
- text: Remove contact {contactId} from my contact list.
slots:
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}'].patch
update:
x-apievangelist-phrasing:
intent: Update a contact's name, email or locale
effect: write
questions:
- How do I change the email address on an existing contact?
- Can I update just a contact's last name without resending everything else?
instructions:
- text: Change the primary email of contact {contactId} to {primaryEmail}.
slots:
contactId: path.contactId
primaryEmail: requestBody.primaryEmail
- text: Rename contact {contactId} to {firstName} {lastName}.
slots:
contactId: path.contactId
firstName: requestBody.firstName
lastName: requestBody.lastName
- text: Set the locale of contact {contactId} to {locale}.
slots:
contactId: path.contactId
locale: requestBody.locale
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}/address-book'].get
update:
x-apievangelist-phrasing:
intent: List a contact's saved addresses
effect: read
questions:
- Which addresses are saved in a contact's address book?
- How can I tell which saved address is a contact's default shipping address?
instructions:
- text: List the address book for contact {contactId}.
slots:
contactId: path.contactId
- text: Show contact {contactId}'s saved addresses, {pageSize} per page.
slots:
contactId: path.contactId
pageSize: query.pageSize
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}/address-book'].post
update:
x-apievangelist-phrasing:
intent: Add an address to a contact's address book
effect: write
questions:
- How do I save a new shipping address for a contact?
- Can I make a newly added address the contact's default for shipping?
instructions:
- text: Add address {address} to contact {contactId}'s address book.
slots:
address: requestBody.address
contactId: path.contactId
- text: 'Save {address} for contact {contactId} and make it default shipping: {defaultShipping}.'
slots:
address: requestBody.address
contactId: path.contactId
defaultShipping: requestBody.defaultShipping
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}/address-book/{addressBookEntryId}'].get
update:
x-apievangelist-phrasing:
intent: Get one saved address for a contact
effect: read
questions:
- How do I look up one specific saved address for a contact?
- Is a particular address book entry marked as the default shipping address?
instructions:
- text: Get address book entry {addressBookEntryId} for contact {contactId}.
slots:
addressBookEntryId: path.addressBookEntryId
contactId: path.contactId
- text: Show the saved address {addressBookEntryId} belonging to contact {contactId}.
slots:
addressBookEntryId: path.addressBookEntryId
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}/address-book/{addressBookEntryId}'].put
update:
x-apievangelist-phrasing:
intent: Replace a contact's saved address
effect: write
questions:
- How do I correct a typo in a contact's existing saved address?
- Why doesn't unsetting default shipping on the current default address take effect?
instructions:
- text: Replace address book entry {addressBookEntryId} of contact {contactId} with {address}.
slots:
addressBookEntryId: path.addressBookEntryId
contactId: path.contactId
address: requestBody.address
- text: Make saved address {addressBookEntryId} the default shipping address for contact {contactId}, keeping {address}.
slots:
addressBookEntryId: path.addressBookEntryId
contactId: path.contactId
address: requestBody.address
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/contacts/{contactId}/address-book/{addressBookEntryId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a saved address from a contact
effect: destructive
questions:
- How do I remove an old address from a contact's address book?
- What happens to the default shipping address if I delete it?
instructions:
- text: Delete address book entry {addressBookEntryId} from contact {contactId}.
slots:
addressBookEntryId: path.addressBookEntryId
contactId: path.contactId
- text: Remove saved address {addressBookEntryId} for contact {contactId}.
slots:
addressBookEntryId: path.addressBookEntryId
contactId: path.contactId
method: generated
generated: '2026-10-01'