lists scope. Enrichment and CRM pushes spend credits; the rest do not.
Enrich the contacts you have
POST /business/lists/{listId}/enrich fills in missing contact details for a list you already built. mode decides what to look for:
202 and works in the background — totalContacts is what it will attempt and estimatedMinutes roughly how long. Follow the list’s completionStatus, as in long-running work.
Enrichment bills per contact enriched, not per contact attempted: a contact whose email cannot be found does not cost. Check the balance with
GET /business/credits first for a large list.Copy rows into another list
POST /business/lists/save-to-list copies rows from one list into another, optionally enriching them on the way. sourceListId and limit are both required, so a copy is always bounded.
listId, or pass listName to create one. Add filters to copy only the rows that match — the same row filters GET /business/lists/{listId}/rows takes.
Turn contacts into companies
POST /business/lists/{listId}/derive-company-list builds a company list from the employers of a contact list.
sourceContacts is how many contacts were read, not how many companies came out — several contacts usually collapse into one company. Useful when a person-level search has found the right accounts and you now want to work them at company level.
Commit an import
An upload is a two-step: send the file, then commit it once the column mapping is right.202 with the destination listId. Its jobId is a UUID that GET /business/jobs/{jobId} cannot read — follow the destination list instead.
Push to your CRM
POST /business/lists/{listId}/crm-push sends a list’s contacts into a connected CRM.
422.
Organise with folders
Folders group lists of one kind.type is required everywhere, and the kinds do not mix: contactList, companyList, campaign, agent.
Deleting a folder never deletes lists. They move back to the root, so a folder is safe to remove once you have stopped using it.
Fix one contact
Two calls work on a single contact rather than a whole list:PATCH /business/contacts/{contactId} sets which address or number is the primary one, when a contact has several:
GET /business/contacts/{contactId}/activities returns that contact’s timeline — what was sent, opened, replied and called, newest activity paged with limit and cursor: