v1

latestOpenAPI 3.1.0Proprietary2026-08-06177398877.4 KB
Customers

Search customers

Search customers using OpenSearch-powered full-text and field-specific search.

This endpoint provides fast, indexed search across customer data with support for:

  • Full-text search across multiple fields
  • Field-specific filtering with various operators
  • Sorting and pagination
  • Saved search preferences

Note: Only active (non-deleted) customers are searchable. Soft-deleted records are automatically excluded from all search results.

Response Formats:

  • flat (default): Returns indexed fields only for faster performance
  • full: Returns complete customer objects with all relationships
post/customers/search

Request body

format'flat' | 'full'

Response format:

  • flat: Returns only indexed fields (default, faster)
  • full: Returns complete customer objects

Example request

{
  "criteria": {
    "id": {
      "operator": "EQUALS",
      "values": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    },
    "friendlyId": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "name": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "dbaName": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "status": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "city": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "state": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "location": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "zip": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "country": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "teamId": {
      "operator": "EQUALS",
      "values": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    },
    "teamName": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "userIds": {
      "operator": "EQUALS",
      "values": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    },
    "userNames": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "accountOwnerId": {
      "operator": "EQUALS",
      "values": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    },
    "accountOwnerName": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "operatedById": {
      "operator": "EQUALS",
      "values": [
        "550e8400-e29b-41d4-a716-446655440000"
      ]
    },
    "operatedByName": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "primaryContactName": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "primaryContactEmail": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "primaryContactPhone": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "serviceTier": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "yearsInBusiness": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "numberOfEmployees": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "industry": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "sic": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "naics": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "paymentTermName": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "creditLimit": {
      "operator": "GREATER_THAN",
      "value": 1000.5
    },
    "outstandingBalance": {
      "operator": "GREATER_THAN",
      "value": 1000.5
    },
    "totalRevenue": {
      "operator": "GREATER_THAN",
      "value": 1000.5
    },
    "totalTransportationCost": {
      "operator": "GREATER_THAN",
      "value": 1000.5
    },
    "totalGrossProfit": {
      "operator": "GREATER_THAN",
      "value": 1000.5
    },
    "ordersCount": {
      "operator": "BETWEEN",
      "min": 10,
      "max": 100
    },
    "quotesCount": {
      "operator": "BETWEEN",
      "min": 10,
      "max": 100
    },
    "quotesWon": {
      "operator": "BETWEEN",
      "min": 10,
      "max": 100
    },
    "quoteWinRate": {
      "operator": "GREATER_THAN",
      "value": 1000.5
    },
    "mostRecentOrderCreationAt": {
      "operator": "AFTER",
      "value": "2025-01-01T00:00:00Z"
    },
    "nextFollowUp": {
      "operator": "BETWEEN",
      "min": "2025-01-01",
      "max": "2025-01-31"
    },
    "lastOutreach": {
      "operator": "AFTER",
      "value": "2025-01-01T00:00:00Z"
    },
    "quickbooksCustomerId": {
      "operator": "ONE_OF",
      "values": [
        "ACTIVE",
        "PENDING"
      ]
    },
    "tags": {
      "operator": "INCLUDES",
      "values": [
        "search term"
      ]
    },
    "createdAt": {
      "operator": "AFTER",
      "value": "2025-01-01T00:00:00Z"
    },
    "updatedAt": {
      "operator": "AFTER",
      "value": "2025-01-01T00:00:00Z"
    }
  },
  "pagination": {
    "pageNumber": 1,
    "pageSize": 50
  },
  "sort": [
    {
      "field": "createdAt",
      "order": "desc"
    }
  ],
  "savedSearch": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Response

Successful search results

totalResultsinteger required

Total number of matching results (excluding soft-deleted records)

Example response

{
  "data": [
    {
      "friendlyId": "CUST-0001"
    }
  ],
  "pagination": {
    "pageNumber": 1,
    "pageSize": 50,
    "totalPages": 25
  }
}