Live Direct Marketing · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Live Direct Marketing Online Contacts API
25 actions
25 updates
phrasing
extends
openapi/live-direct-marketing-online-contacts-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Live Direct Marketing's API. It is a proposal applied on top of the contract, not a document Live Direct Marketing publishes.
What the actions change
x-apievangelist-phrasing
Targets 25 · first 16 shown; the file carries all of them
$.info
$.paths['/api/contacts/stats'].get
$.paths['/api/contacts/duplicates'].get
$.paths['/api/contacts'].get
$.paths['/api/contacts'].post
$.paths['/api/contacts/{id}'].get
$.paths['/api/contacts/{id}'].delete
$.paths['/api/contacts/{id}'].patch
$.paths['/api/contacts/{id}/timeline'].get
$.paths['/api/contacts/bulk'].post
$.paths['/api/contacts/bulk/{jobId}'].get
$.paths['/api/contacts/bulk/{jobId}'].delete
$.paths['/api/contacts/export'].post
$.paths['/api/contacts/import/preview'].post
$.paths['/api/contacts/import/start'].post
$.paths['/api/contacts/{id}/restore'].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 Live Direct Marketing Online Contacts API
version: 1.0.0
extends: openapi/live-direct-marketing-online-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: 24
- target: $.paths['/api/contacts/stats'].get
update:
x-apievangelist-phrasing:
intent: Get contact statistics
effect: read
questions:
- How many contacts do I have, and can I break the stats down for one list?
- What contact statistics does Live Direct Marketing report for my workspace?
instructions:
- text: Show contact statistics for list {listId}.
slots:
listId: query.listId
- text: Give me overall contact stats for my workspace.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/duplicates'].get
update:
x-apievangelist-phrasing:
intent: Find duplicate contacts across the workspace
effect: read
questions:
- Which contacts across my whole workspace look like duplicates?
- Can I look for duplicate contacts by a specific field rather than email only?
instructions:
- text: Find duplicate contacts across the workspace by {field}.
slots:
field: query.field
- text: Scan my workspace for duplicate contacts.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts'].get
update:
x-apievangelist-phrasing:
intent: List and search contacts
effect: read
questions:
- Can I search my contacts and filter them by list, company or email validation status?
- Which contacts have role-based or disposable email addresses?
- Can I see contacts that are in the trash?
instructions:
- text: Search contacts for {search}, page {page} with {pageSize} per page.
slots:
search: query.search
page: query.page
pageSize: query.pageSize
- text: List contacts in list {listId}.
slots:
listId: query.listId
- text: Show contacts at company {companyId} sorted by {sortBy}.
slots:
companyId: query.companyId
sortBy: query.sortBy
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts'].post
update:
x-apievangelist-phrasing:
intent: Create a new contact
effect: write
questions:
- How do I add a new person to my contacts?
- Can I set a contact's position, department and company when creating them?
instructions:
- text: Create a contact named {firstName} {lastName}.
slots:
firstName: requestBody.firstName
lastName: requestBody.lastName
- text: Add a new contact {firstName} working as {position} at company {companyId}.
slots:
firstName: requestBody.firstName
position: requestBody.position
companyId: requestBody.companyId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a contact's details
effect: read
questions:
- What details are stored for a particular contact?
- Can I look up one contact record by its id?
instructions:
- text: Get contact {id}.
slots:
id: path.id
- text: Show me the full record for contact {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Move a contact to the trash
effect: destructive
questions:
- Can I delete a contact but still be able to restore it later?
- What does soft-deleting a contact do?
instructions:
- text: Soft-delete contact {id}.
slots:
id: path.id
- text: Move contact {id} to the trash.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Update a contact's details
effect: write
questions:
- Can I change the name, job title or company on an existing contact?
- What fields of a contact can I edit after it is created?
instructions:
- text: Update contact {id} to job title {position}.
slots:
id: path.id
position: requestBody.position
- text: Change contact {id}'s company to {companyId}.
slots:
id: path.id
companyId: requestBody.companyId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}/timeline'].get
update:
x-apievangelist-phrasing:
intent: Get a contact's activity timeline
effect: read
questions:
- What has happened with a contact over time, event by event?
- Can I page through the history of interactions for one person?
instructions:
- text: Show the timeline for contact {id}.
slots:
id: path.id
- text: Get page {page} of contact {id}'s event history.
slots:
page: query.page
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/bulk'].post
update:
x-apievangelist-phrasing:
intent: Run a bulk action on many contacts
effect: write
questions:
- Can I add tags or move a whole filtered set of contacts to a list in one go?
- Is there a way to update one field on hundreds of contacts at once?
instructions:
- text: Run bulk action {action} on contacts {contactIds}.
slots:
action: requestBody.action
contactIds: requestBody.contactIds
- text: Add all contacts matching {search} to list {listId}.
slots:
search: requestBody.search
listId: requestBody.listId
- text: Set {fieldName} to {fieldValue} on contacts {contactIds}.
slots:
fieldName: requestBody.fieldName
fieldValue: requestBody.fieldValue
contactIds: requestBody.contactIds
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/bulk/{jobId}'].get
update:
x-apievangelist-phrasing:
intent: Check a bulk contact job's progress
effect: read
questions:
- Has my bulk contact action finished yet?
- What is the progress of a background bulk job on contacts?
instructions:
- text: Get the status of bulk contact job {jobId}.
slots:
jobId: path.jobId
- text: Check progress on contact bulk job {jobId}.
slots:
jobId: path.jobId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/bulk/{jobId}'].delete
update:
x-apievangelist-phrasing:
intent: Cancel a running bulk contact job
effect: destructive
questions:
- Can I stop a bulk contact action that is still in progress?
- What if I started a bulk delete on contacts by mistake; can I cancel it?
instructions:
- text: Cancel bulk contact job {jobId}.
slots:
jobId: path.jobId
- text: Stop the in-progress contact bulk job {jobId}.
slots:
jobId: path.jobId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/export'].post
update:
x-apievangelist-phrasing:
intent: Export contacts to a file
effect: write
questions:
- Can I export my contacts to CSV or Excel, including custom fields?
- Which contacts can I choose to export, a list or a search?
instructions:
- text: Export contacts in list {listId} as {format}.
slots:
listId: requestBody.listId
format: requestBody.format
- text: Export contacts with scope {scope} including custom fields {includeCustomFields}.
slots:
scope: requestBody.scope
includeCustomFields: requestBody.includeCustomFields
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/import/preview'].post
update:
x-apievangelist-phrasing:
intent: Preview a contacts import mapping
effect: read
questions:
- Before importing a spreadsheet of contacts, can I see how the columns will be mapped?
- Can I dry-run a contact import to check the field mapping?
instructions:
- text: Preview importing these contact rows {rows} with mapping {mapping}.
slots:
rows: requestBody.rows
mapping: requestBody.mapping
- text: Show how {rows} would map into contacts using {mapping}.
slots:
rows: requestBody.rows
mapping: requestBody.mapping
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/import/start'].post
update:
x-apievangelist-phrasing:
intent: Start a contacts import job
effect: write
questions:
- How do I actually start importing a batch of contacts once the mapping looks right?
- Can I pass import options when kicking off a contact import?
instructions:
- text: Start importing contact rows {rows} with mapping {mapping}.
slots:
rows: requestBody.rows
mapping: requestBody.mapping
- text: Import contacts {rows} using mapping {mapping} and options {options}.
slots:
rows: requestBody.rows
mapping: requestBody.mapping
options: requestBody.options
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}/restore'].post
update:
x-apievangelist-phrasing:
intent: Restore a contact from the trash
effect: write
questions:
- Can I bring back a contact I soft-deleted?
- Is there an undo for deleting a contact?
instructions:
- text: Restore contact {id} from the trash.
slots:
id: path.id
- text: Undelete contact {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}/purge'].delete
update:
x-apievangelist-phrasing:
intent: Permanently delete a trashed contact
effect: destructive
questions:
- Can I permanently erase a contact that is already in the trash?
- Is purging a contact reversible?
instructions:
- text: Permanently purge trashed contact {id}.
slots:
id: path.id
- text: Erase contact {id} for good from the trash.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/merge'].post
update:
x-apievangelist-phrasing:
intent: Merge duplicate contacts into one
effect: write
questions:
- Can I combine several duplicate contacts into a single record?
- Which record survives when I merge contacts?
instructions:
- text: Merge contacts {mergeIds} into contact {keepId}.
slots:
mergeIds: requestBody.mergeIds
keepId: requestBody.keepId
- text: Keep contact {keepId} and fold {mergeIds} into it.
slots:
keepId: requestBody.keepId
mergeIds: requestBody.mergeIds
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}/dig'].post
update:
x-apievangelist-phrasing:
intent: Run DIG email enrichment on a contact
effect: write
questions:
- Can I re-check a contact's email domain for MX, SPF and DMARC on demand?
- How do I trigger DIG enrichment manually for one person?
instructions:
- text: Run DIG email enrichment on contact {id}.
slots:
id: path.id
- text: Trigger a DIG check for contact {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}/duplicates'].get
update:
x-apievangelist-phrasing:
intent: Check one contact for duplicates
effect: read
questions:
- Does this specific contact have any duplicates in my workspace?
- Can I find records that look like copies of one particular contact?
instructions:
- text: Check contact {id} for duplicates.
slots:
id: path.id
- text: Find possible duplicates of contact {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{id}/channels'].post
update:
x-apievangelist-phrasing:
intent: Add an email or phone channel to a contact
effect: write
questions:
- How do I attach an email address or phone number to a contact?
- Can I mark a newly added channel as the contact's primary one?
instructions:
- text: Add a {type} channel {value} to contact {id}.
slots:
type: requestBody.type
value: requestBody.value
id: path.id
- text: Attach {value} as the primary {type} for contact {id}.
slots:
value: requestBody.value
type: requestBody.type
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{contactId}/channels/{channelId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a channel from a contact
effect: destructive
questions:
- Can I remove an old email address or phone number from a contact?
- What happens when I delete one of a contact's channels?
instructions:
- text: Delete channel {channelId} from contact {contactId}.
slots:
channelId: path.channelId
contactId: path.contactId
- text: Remove contact {contactId}'s channel {channelId}.
slots:
contactId: path.contactId
channelId: path.channelId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/{contactId}/channels/{channelId}'].patch
update:
x-apievangelist-phrasing:
intent: Update a contact's email or phone channel
effect: write
questions:
- Can I change the value or validation status of a contact's existing email channel?
- Is it possible to switch which channel is primary for a contact?
instructions:
- text: Update channel {channelId} on contact {contactId} to {value}.
slots:
channelId: path.channelId
contactId: path.contactId
value: requestBody.value
- text: Make channel {channelId} primary for contact {contactId}.
slots:
channelId: path.channelId
contactId: path.contactId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/import/rollback/{batchId}'].delete
update:
x-apievangelist-phrasing:
intent: Roll back a contact import batch
effect: destructive
questions:
- I imported the wrong file; can I undo that whole contact import?
- Can I remove every contact that came from one import batch?
instructions:
- text: Roll back contact import batch {batchId}.
slots:
batchId: path.batchId
- text: Undo the contacts imported in batch {batchId}.
slots:
batchId: path.batchId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/contacts/duplicates/by-email'].get
update:
x-apievangelist-phrasing:
intent: Find contacts sharing the same email
effect: read
questions:
- Which contacts share the exact same email address?
- Can I list duplicate contacts grouped by email?
instructions:
- text: Find contacts that share duplicate email addresses.
- text: List contacts with the same email address.
method: generated
generated: '2026-10-01'