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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'