---
title: "Aggregate contact totals and breakdown by type"
method: GET
path: "/contacts/summary"
tags: ["Contacts"]
---

# Aggregate contact totals and breakdown by type

`GET /contacts/summary`

## Request

- Base URL: `https://app.buildworkpro.com/api/v1`
- URL: `https://app.buildworkpro.com/api/v1/contacts/summary`
- Auth: HTTP bearer

Returns the total contact count plus a breakdown by type (customer / vendor / subcontractor / ...). Date filter applies to createdAt and is inclusive on both bounds. Use this instead of contacts list + walk-and-count when you only need roll-ups.

## Query parameters

- `dateFrom` string, date-time
- `dateTo` string, date-time

## Response `200`

Contact summary

- object
  - `data` object, required
    - `totals` object, required
      - `count` integer, required
    - `by_type` object[], required
      - `type` string, required
      - `count` integer, required
  - `meta` ResponseMeta, required
    - `request_id` string: Server-generated request identifier
    - `pagination` PaginationMeta
      - `cursor` string, nullable, required: Opaque cursor for the next page; null when no more results
      - `has_more` boolean, required: Whether more pages are available after this one
      - `count` integer, required: Items in this page

## Other responses

- `403`: Scope insufficient
- `422`: Validation failed

---

[API](https://skmtc.dev/buildworkpro/apis/buildworkpro-api.md) · [All operations](https://skmtc.dev/buildworkpro/apis/buildworkpro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/buildworkpro/apis/buildworkpro-api/revisions/441cf40012f7?raw)
