Menu

API reference · CRM

Search

crm · search · 1 operation

GET/v1/crm/search

Search deals, people, companies and prospects by text

crm.search

ReadIdempotentSince 2026-11-01

Finds CRM records by text, of any age: deals, people, companies and prospects (all four by default, or the kinds you pass). A record matches when the text appears in its title, name, email, phone or company, or when every word of the text starts a word of those fields (accents and word order do not matter: «perez juan» finds «Juan Pérez»); a phone matches by its digits («11 5555 1234» finds «+54 9 11 5555-1234»). Deals and prospects of the people and companies that match come too (the deal's main contact or company, the prospect's person or company). Returns up to 40 hits (limit) sorted by last update, each with its kind and id so you can read it with the right get operation; has_more is true when more records matched (narrow the text or raise limit). Archived records and closed deals are included (the screen's global search hides them by default): each hit's is_archived and status tell them apart. A seller with a scope only sees what the scope allows. Words of one letter are ignored; prefer crm.persons.lookup when you have an exact email or phone, and the list operations with filters when you know the kind and a field. With 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 are left out of the response (the permissions guide lists what each platform allows).

Scope
crm:read
Permission
View the module
MCP tool
crm_searchOn the full surface; on the compact one, mb_execute_operation with id: "crm.search".

Declared cost: up to 450 reads and 0 writes per call (they count against the daily quota).

Parameters

querystringqueryrequired

What to look for: a name, an email, a phone, a domain or a deal title (2 to 200 characters).

kindsarray<enum>queryoptional

Only these kinds of record; without it, all four.

Values: deal, person, company, prospect

limitintegerqueryoptional

How many hits at most (up to 40); has_more says when there were more.

Default: 10

Response

resultsarray<object>
has_moreboolean

true when more records matched than were returned.

Errors

Example

curl "https://api.mb-suite.com/v1/crm/search?query=QUERY" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/crm/search?query=QUERY" \
  -H "Authorization: Bearer $MB_TEST_KEY"