---
title: "find_contacts"
method: POST
path: "/find_contacts"
tags: ["contacts"]
---

# find_contacts

`POST /find_contacts`

## Request

- Base URL: `https://app.podmule.com/api/v1`
- URL: `https://app.podmule.com/api/v1/find_contacts`
- Auth: HTTP bearer

Composite query: find contacts in a group that match optional booking criteria, with per-status booking counts attached. One server-side JOIN replaces the "list_group_members → list_interviews(contact_ids: [...])" stitch. Use this for questions like "how many contacts in New Applications have a booking past + future" — the answer comes back as a single count plus per-contact summary rows. Pass has_booking: {} to mean "any booking at all". Omit has_booking to get every group member with their (possibly empty) booking summary. Returns aggregate booking counts only — for full booking detail, follow up with list_interviews on the contacts of interest.

## Request body

- unknown

## Response `200`

Capability output wrapped in `{ data }`.

- object
  - `data` unknown, required

## Other responses

- `400`: Invalid input — Zod validation failed.
- `401`: Missing, malformed, or audience-mismatched bearer token.
- `403`: Token is valid but lacks the required scope.
- `404`: Capability not registered, or referenced resource not found.
- `429`: Rate limit exceeded. Retry after the period in `Retry-After`.
- `500`: Internal error.

---

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