Lists the org's CRM lists (named groups of persons: static, dynamic or imported from a CSV), most recently updated first, paginated by cursor (limit up to 200). Filter by type. Each list carries its cached member_count and, if dynamic, its saved filter; member ids are not included: page through them with crm.lists.members.list.
Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_lists_listEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.list".
Costo declarado: hasta 202 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
limitintegerqueryopcional
How many items this page brings at most (see the maximum and the default in the schema).
Por defecto: 50
cursorstringqueryopcional
The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.
Returns a CRM list: name, description, type (static, dynamic or csv), color, icon, the cached member_count and when it was last counted, the saved filter of a dynamic list, the CSV import summary, owner (with owner_name) and dates. Member ids are not included by default; page through the members with crm.lists.members.list. With include_member_ids=true a static or csv list also returns person_ids: the saved ids exactly as stored, in order, including persons deleted or merged away since (useful to clean a list: crm.lists.members.list only returns the ones that still exist). Never for a dynamic list (it saves no ids) nor for a seller restricted to their own records (they page through crm.lists.members.list, which applies their scope): then person_ids does not come. The list is already read; resolving the owner's name may read their profile.
Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_lists_getEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.get".
Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
list_idstringrutarequerido
The list, by id (crm.lists.list).
include_member_idsbooleanqueryopcional
Static and csv lists: also return personIds, the stored ids as they are (with persons deleted since).
Respuesta
idstring
org_idstring
namestring
typeenum
Valores: static, dynamic, csv
member_countnumber
created_atnumber
updated_atnumber
descriptionstring | null
colorstring | null
iconstring | null
last_resolved_atnumber | null
filterobject
csv_importobject
owner_idstring | null
owner_namestring | null
The name of the owner, resolved when the list is read.
shared_with_orgboolean
created_by_idstring | null
created_by_namestring | null
The name of who created it, resolved when the list is read.
Returns the persons in a list ordered by person id, paginated by cursor (limit up to 200). Static and CSV lists return their saved persons that still exist; a dynamic list applies its saved filter to the org's persons, scanning at most 2,000 persons per call (with labels or owners in the filter, only the persons that have them are scanned). Archived persons are left out unless include_archived is true, and merged-away duplicates never appear. Deleted or archived persons, persons outside a restricted seller's scope and that scan limit can leave a page with fewer members than limit (even none) while has_more is true: keep following next_cursor until has_more is false. With Google Ads, LinkedIn or TikTok, their terms limit it through the API and the MCP: what they do not allow answers 403 platform_terms_restricted, and their records or fields are left out of the response (the permissions guide lists what each platform allows).
Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_lists_members_listEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.members.list".
Costo declarado: hasta 2001 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
list_idstringrutarequerido
The list, by id (crm.lists.list).
limitintegerqueryopcional
How many items this page brings at most (default 20, up to 200).
Por defecto: 20
cursorstringqueryopcional
The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.
Creates a list of persons, owned by the caller: static (person_ids, up to 5,000; a repeated id is saved and counted once, and an id that is not a person of the organization is not saved: it comes back in not_found), dynamic (a saved filter over persons: search text, company_ids, label_ids with label_mode any/all, owner_ids, countries, do_not_contact included/excluded, created_after) or csv (behaves like static; importing a CSV file is not part of this operation). The member count is computed on creation: for a static or csv list, the distinct ids that are persons of the organization; for a dynamic list, every person that matches the filter, archived persons and merged-away duplicates included (crm.lists.members.list leaves those out). Optional dry run: with dry_run=true nothing is written; it counts exactly as the creation and its preview says how many persons the list would start with (counts lists, member_count and, for a static or csv list, requested, the distinct ids sent, and not_found, the ones that are not persons of the organization), with up to 50 of the counted persons as items (id and name; a person outside a restricted seller's scope comes without their name; none for a dynamic list without criteria, which is every person and is counted without reading them) and a warning when ids came repeated or the count reached its limit of 30,000. Running the creation needs no confirm_token. The declared cost is the worst case (a dynamic list scans up to 30,000 persons); a call is charged what it really reads: a static list of N persons, N reads; an empty one, none. Requires create_list.
Alcance
crm:write
Permiso
Editar en el módulo · Acción del CRM: create_list
Tool del MCP
crm_lists_createEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.create".
Costo declarado: hasta 30001 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
Parámetros
namestringcuerporequerido
The list's name (up to 100 characters).
typeenumcuerporequerido
static: the persons given in person_ids; dynamic: the persons that match filter; csv: the persons of an import.
Valores: static, dynamic, csv
descriptionstringcuerpoopcional
What the list is for (up to 500 characters).
colorstringcuerpoopcional
A hex color for the list (#3b82f6).
iconstringcuerpoopcional
The icon the app shows next to the name.
person_idsarray<string>cuerpoopcional
Static and csv lists: the persons (crm.persons.list). Ids that are not persons of the organization are not stored and come back in notFound.
filterobjectcuerpoopcional
Dynamic lists: the persons that match today, recomputed when read (search, company_ids, label_ids with label_mode any or all, owner_ids, countries, do_not_contact included or excluded, created_after in epoch ms).
shared_with_orgbooleancuerpoopcional
true: every member of the organization sees it; false: only its owner.
Respuesta
list_idstring
not_foundarray<string>
Static and csv lists: the ids sent that are not persons of the organization (not saved).
Updates the name, description, color, icon or sharing flag of a list (null clears description, color or icon) and, for a dynamic list only, its saved filter, which recomputes the member count. Send the fields at the top level or inside updates (not both: updates_conflict). Members of a static list change with crm.lists.members.add and crm.lists.members.remove. Returns the list as saved and changed: false when it already was that way (nothing written). Requires edit_list (a seller edits their own lists and the ones without owner).
Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_lists_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.update".
Costo declarado: hasta 30001 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
Parámetros
list_idstringrutarequerido
The list, by id (crm.lists.list).
namestringcuerpoopcional
The list's name (up to 100 characters).
descriptionstring | nullcuerpoopcional
colorstring | nullcuerpoopcional
iconstring | nullcuerpoopcional
filterobjectcuerpoopcional
Dynamic lists: the persons that match today, recomputed when read (search, company_ids, label_ids with label_mode any or all, owner_ids, countries, do_not_contact included or excluded, created_after in epoch ms).
shared_with_orgbooleancuerpoopcional
true: every member of the organization sees it; false: only its owner.
updatesobjectcuerpoopcional
The same fields, grouped as in the other CRM edits (crm.deals.update…): send them here or at the top level, not both.
Respuesta
listobject
changedboolean
false when the list already was that way: nothing was written.
Creates a copy of a list named after it with the suffix in the caller's language: '(copia)', '(copy)' or '(cópia)', owned by the caller, with the same type, description, color, icon, members or filter, CSV summary and cached member count. The original is not touched. Requires create_list.
Alcance
crm:write
Permiso
Editar en el módulo · Acción del CRM: create_list
Tool del MCP
crm_lists_duplicateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.duplicate".
Costo declarado: hasta 1 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
curl-X POST "https://api.mb-suite.com/v1/crm/lists/{list_id}/duplicate" \
-H"Authorization: Bearer $MB_API_KEY"
Probar con tu API key de prueba
Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.
curl-X POST "https://api.mb-suite.com/v1/crm/lists/{list_id}/duplicate" \
-H"Authorization: Bearer $MB_TEST_KEY"
DELETE/v1/crm/lists/{list_id}
Delete a CRM list
crm.lists.delete
IrreversibleDesde 2026-11-01
Deletes a list; the persons in it are not touched. The sequences that auto-enrolled from it lose that link (the result says how many). The list goes to the 30-day trash: restoring it brings the list back, not its links to sequences. Requires delete_list (a seller deletes their own lists and the ones without owner).
Con una API key, este DELETE se ejecuta directo: el registro queda 30 días en la papelera y la respuesta trae su trash_item_id. Con un token OAuth, y por el MCP, pide dry_run → confirm_token.
Alcance
crm:writey «Permitir eliminar» (crm:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
crm_lists_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.delete".
Costo declarado: hasta 1001 lecturas y 1001 escrituras por llamada (cuentan en el cupo diario).
Parámetros
list_idstringrutarequerido
The list, by id (crm.lists.list).
Respuesta
unlinked_sequencesnumber
trash_item_idstring
The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.
trash_item_idsarray<string>
Only when the deletion left more than one copy: all of them, the first being trash_item_id.
trash_expires_atnumber
When the copy leaves the trash for good (epoch ms): 30 days after the deletion.
Adds up to 2,000 persons (ids from crm.persons.list or crm.persons.lookup) to a static or CSV list; ids already in the list are ignored, ids that are not persons of the organization are not added (not_found), and the result says how many were added and the new member count. Sequences triggered by 'added to a list' start for the persons actually added. Not for dynamic lists, whose members come from their filter. Requires edit_list.
Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_lists_members_addEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.members.add".
Costo declarado: hasta 2001 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
Parámetros
list_idstringrutarequerido
The list, by id (crm.lists.list).
person_idsarray<string>cuerporequerido
The persons to add or remove (up to 2,000).
Respuesta
addednumber
member_countnumber
not_foundarray<string>
The ids that are not persons of the organization: not added.
Removes up to 2,000 persons from a static or CSV list; ids that are not in the list are ignored and the result says how many were removed and the new member count (an old stored id that is not a person is removed without changing the count). The persons themselves are not deleted. Not for dynamic lists. Requires edit_list.
Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_lists_members_removeEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.members.remove".
Costo declarado: hasta 2001 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
Recomputes and saves the cached member_count of a list: the saved persons that still exist, each once (static, csv), or the persons that match its filter now, archived persons and merged-away duplicates included (dynamic). Changes nothing else and leaves no audit entry (it is equivalent to a read). Idempotent. Optional dry run: with dry_run=true it counts the same way without saving, and its preview says the number (counts lists, member_count, the count now, and previous_member_count, the cached one) with up to 50 of the counted persons as items; running needs no confirm_token. The declared cost is the worst case (a dynamic list scans up to 30,000 persons); a call is charged what it really reads: the list plus its N saved persons for a static list. Any member with access to the CRM can run it.
Alcance
crm:write
Permiso
Ver el módulo
Tool del MCP
crm_lists_refresh_countEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.lists.refresh_count".
Costo declarado: hasta 30001 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).