VUZDevelopers

Get all clients with filtering and pagination

GET
/clients

Retrieves a paginated list of clients with optional filtering by business, client type, and search query.

Filtering Options:

  • businessId: Filter clients by business (required for multi-tenant scoping)
  • type: Filter by client type (private, osek_morshe, company_ltd)
  • search: Partial text search across name, phone, email, VAT number
  • isActive: Filter by active status
  • Pagination: page, limit parameters

Multi-Tenant Scoping: Returns only clients belonging to businesses owned by the authenticated user.

Use Cases:

  • Client directory/listing page
  • Client selector for creating invoices
  • Search for specific clients
  • Filter business clients vs private clients

Example Query: GET /api/v1/clients?businessId=xxx&type=company_ltd&search=טכנולוגיה&page=1&limit=20

X-Api-Key<token>

Business API key, e.g. vuz_ab12cdef... Created via Settings → Integrations → API Keys. Unlike partner keys, a public API key's STRING does not encode its environment — isolation instead comes from a completely separate sandbox database: a key minted on the Sandbox server (above) only ever reads/writes sandbox data and can never see or affect production, regardless of what the key looks like.

In: header

Query Parameters

search?string

Search by client name, phone, or email (partial match, case-insensitive). Supports Hebrew and English.

type?string

Filter by client type (private, osek_morshe, company_ltd)

Value in

  • "private"
  • "osek_morshe"
  • "osek_patur"
  • "company_ltd"
  • "company_public"
  • "non_profit"
  • "government"
  • "foreign"
city?string

Filter to clients with an active address in this city (e.g. "all clients from Jerusalem"). Matches the structured address city.

isActive?boolean

Filter by active status. Inactive clients cannot be used in new documents.

brandId?string

Brand (שם מסחרי) filter. Master users may pass a brandId to view one brand's roster; omit to see all. Restricted users are forced to their own brand server-side (this value is ignored / rejected if it differs).

Formatuuid
page?number

Page number (starting from 1)

Range1 <= value
Default1
limit?number

Number of items per page (max 100)

Range1 <= value <= 100
Default10

Response Body

application/json

application/json

curl -X GET "https://example.com/clients"
{  "items": [    {      "id": "770e8400-e29b-41d4-a716-446655440000",      "name": "דוד כהן",      "type": "private",      "phone": "+972-50-7654321",      "email": "david.cohen@example.com",      "address": "רחוב דיזנגוף 50, תל אביב, 6433109",      "vatNumber": "512345678",      "contactPerson": "שרה לוי",      "notes": "לקוח VIP - תנאי תשלום מיוחדים",      "isActive": true,      "origin": "web",      "businessId": "660e8400-e29b-41d4-a716-446655440000",      "userId": "550e8400-e29b-41d4-a716-446655440000",      "createdAt": "2025-01-10T08:00:00.000Z",      "updatedAt": "2025-11-06T14:30:00.000Z",      "portalEnabled": false,      "portalSlug": "my-business",      "portalUrl": "https://app.vuz.co.il/portal/my-business",      "portalLastLoginAt": "2019-08-24T14:15:22Z",      "portalInviteSentAt": "2019-08-24T14:15:22Z"    }  ],  "total": 100,  "page": 1,  "limit": 20}