lemlist · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Lemlist Contacts API

9 actions 9 updates phrasing extends openapi/lemlist-contacts-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for lemlist's API. It is a proposal applied on top of the contract, not a document lemlist publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/contacts/{idOrEmail}'].get
$.paths['/contacts/{idOrEmail}'].delete
$.paths['/contacts'].get
$.paths['/contacts'].post
$.paths['/contacts/lists'].get
$.paths['/contacts/lists'].post
$.paths['/contacts/lists/{listId}/entities'].post
$.paths['/contacts/export'].get

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 Lemlist Contacts API
  version: 1.0.0
extends: openapi/lemlist-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: 8
- target: $.paths['/contacts/{idOrEmail}'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up one contact by id or email
      effect: read
      questions:
      - Can I pull up a single contact using just their email address?
      - Where do I see everything stored on one person in my CRM contacts?
      instructions:
      - text: Show me the contact {idOrEmail}.
        slots:
          idOrEmail: path.idOrEmail
      - text: Look up the contact record for {idOrEmail}.
        slots:
          idOrEmail: path.idOrEmail
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{idOrEmail}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a contact and everything tied to it
      effect: destructive
      questions:
      - What else gets removed when I delete a contact, like their leads and conversations?
      - Does deleting a contact in lemlist also delete it in my CRM?
      instructions:
      - text: Delete contact {idOrEmail}.
        slots:
          idOrEmail: path.idOrEmail
      - text: Permanently remove {idOrEmail} along with their leads and activities.
        slots:
          idOrEmail: path.idOrEmail
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts'].get
  update:
    x-apievangelist-phrasing:
      intent: List all my contacts
      effect: read
      questions:
      - Which contacts are in my lemlist CRM?
      - How can I browse every person I've stored as a contact?
      instructions:
      - text: List all my contacts.
      - text: Pull my full contact list.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or update a contact
      effect: write
      questions:
      - How do I add a person, or update them if their email already exists?
      - Can I link a contact to a company by its domain when saving it?
      - Are blank fields ignored when I upsert an existing contact?
      instructions:
      - text: Add contact {email} named {firstName} {lastName}.
        slots:
          email: requestBody.email
          firstName: requestBody.firstName
          lastName: requestBody.lastName
      - text: Upsert the contact at {linkedinUrl} with job title {jobTitle}.
        slots:
          linkedinUrl: requestBody.linkedinUrl
          jobTitle: requestBody.jobTitle
      - text: Link contact {contactId} to the company at {companyDomain}.
        slots:
          contactId: requestBody.contactId
          companyDomain: requestBody.companyDomain
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/lists'].get
  update:
    x-apievangelist-phrasing:
      intent: List my contact lists
      effect: read
      questions:
      - Which static and dynamic contact lists does my team have?
      - Can I find a contact list by part of its name?
      instructions:
      - text: Show all my contact lists.
      - text: Find contact lists whose name contains {search}.
        slots:
          search: query.search
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/lists'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a static contact list
      effect: write
      questions:
      - How do I make a new static list to group contacts?
      - What's the maximum length of a contact list name?
      instructions:
      - text: Create a contact list named {name}.
        slots:
          name: requestBody.name
      - text: Make a new static list called {name} for my contacts.
        slots:
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/lists/{listId}/entities'].post
  update:
    x-apievangelist-phrasing:
      intent: Add or remove contacts in a static list
      effect: write
      questions:
      - How do I put existing contacts into a static list?
      - Can I take contacts back out of a list without deleting them?
      instructions:
      - text: Add contacts {contactIds} to list {listId}.
        slots:
          contactIds: requestBody.contactIds
          listId: path.listId
      - text: Run action {action} on list {listId} for contacts {contactIds}.
        slots:
          action: query.action
          listId: path.listId
          contactIds: requestBody.contactIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/export'].get
  update:
    x-apievangelist-phrasing:
      intent: Export a contact list as CSV
      effect: read
      questions:
      - How do I download a CRM list of contacts as a CSV file?
      - Can I export the companies in a list instead of the people?
      instructions:
      - text: Export list {listId} to CSV.
        slots:
          listId: query.listId
      - text: Export the {entity} records from list {listId} as a spreadsheet.
        slots:
          entity: query.entity
          listId: query.listId
      method: generated
      generated: '2026-10-01'