Search contacts
sprucehealth_search_contactsRead-onlyIdempotent
Find contacts by free text and/or filters (category, tags, name, phone, email, invite state, created time). Filters combine with AND; values inside one filter match ANY (tags can use all/none). Paged; totalCount with totalCountRelation (eq = exact, gte = lower bound). A read: POST /contacts/search changes nothing.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Contact tag text values (the `value` of a tag from sprucehealth_list_contact_tags). | |
| free_text | No | Free-text query (name, phone, email…). | |
| page_size | No | Results per page (1-500). Keep it small (e.g. 25-50) for long records: an oversized page is cut, but the Paging part with the cursor always stays whole. | |
| categories | No | Contact categories to include. | |
| created_to | No | Only contacts added at or before this time (RFC 3339 with zone). | |
| given_name | No | Given (first) name. | |
| tags_match | No | How the tags combine: any (default), all, or none (exclude). | |
| family_name | No | Family (last) name. | |
| created_from | No | Only contacts added at or after this time (RFC 3339 with zone). | |
| invite_states | No | Spruce account/invite state. | |
| phone_numbers | No | Phone numbers, e.g. 2065551234 or +12065551234. | |
| email_addresses | No | Email addresses. | |
| pagination_token | No | The paginationToken from the previous page's reply (when hasMore is true). |