Filter Contacts

Advanced contact filtering allows you to search contacts by any combination of top-level fields and custom fields. Results are paginated.

POST/v2.0/contacts/filter

Request Body

JSON
{
  "filter": {
    "platform": "whatsapp",
    "lead_category": "Interested",
    "city": "Mumbai",
    "customFields": {
      "order_count": 3,
      "interests": ["cricket", "movies"]
    }
  },
  "page": 1,
  "limit": 50
}

Filterable Fields

FieldTypeMatch Behaviour
phonestringPartial match (case-insensitive)
countryCodestringExact match
contactNamestringPartial match (case-insensitive)
emailstringPartial match (case-insensitive)
platformstringExact match
businessNamestringPartial match (case-insensitive)
citystringPartial match (case-insensitive)
statestringPartial match (case-insensitive)
postalCodestringExact match
countrystringPartial match (case-insensitive)
sourcestringExact match
lead_categorystringExact match
optedOutbooleanExact match
auto_addedbooleanExact match

Filter Behaviour

  • String values: Partial match using case-insensitive regex
  • Array values: Matched using $in — contact must match any of the provided values
  • Number / Boolean: Exact match

Custom Fields Filtering

Custom fields use the same matching behaviour as top-level fields. Access them via filter.customFields.{key}.

Code Examples

curl -X POST https://api.sendiee.com/v2.0/contacts/filter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {
      "platform": "whatsapp",
      "lead_category": "Interested",
      "city": "Mumbai"
    },
    "page": 1,
    "limit": 50
  }'

Response

{
  "success": true,
  "data": [
    {
      "_id": "664...",
      "phone": "919876543210",
      "contactName": "Priya Sharma",
      "city": "Mumbai",
      "lead_category": "Interested",
      "platform": "whatsapp"
    }
  ],
  "pagination": {
    "total": 45,
    "page": 1,
    "limit": 50,
    "totalPages": 1
  }
}

Try It

Try it — API Playground