---
title: "Agent Bookings"
method: GET
path: "/campaigns/agents/{agent_module_id}/bookings"
tags: ["authenticated", "campaigns"]
---

# Agent Bookings

`GET /campaigns/agents/{agent_module_id}/bookings`

## Request

- Base URL: `https://api-docs.upsmith.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.upsmith.com/campaigns/agents/{agent_module_id}/bookings`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Booking breakdown for an agent, by region → job type group.

Sources ``dbt.fct_upsmith_bookings`` scoped by its direct agent attribution
via the shared ``_BOOKING_ROW_TYPE_FILTER`` so "Booked" can't disagree
across surfaces.
Filters (region / job type group / business unit / status) and the range
preset narrow the set; ``available_filters`` lists every value present for
the agent regardless of the current filter so the dropdowns stay populated.
Passing no ``status`` counts every non-canceled booking that reached a
ServiceTitan job — the same default the homepage card applies, so the two
surfaces agree.
``format=csv`` streams the matching bookings as a per-job CSV for portal
reconciliation.

``month`` (``YYYY-MM``) overrides ``range`` for the day view: the headline
total and CSV cover that calendar month, while ``by_day`` covers the
Sunday-aligned calendar grid the month renders in (so boundary-week totals
can include adjacent-month days).

## Path parameters

- `agent_module_id` string, required

## Query parameters

- `range` string
- `group_by` string
- `month` string, nullable
- `region` string[], nullable
- `job_type_group` string[], nullable
- `business_unit` string[], nullable
- `status` string[], nullable
- `format` string

## Headers

- `organization-id` string, nullable
- `x-user-id` string, nullable
- `timezone` string
- `x-actor-email` string, nullable
- `x-request-source` string, nullable
- `x-operation-id` string, nullable
- `x-commit-message` string, nullable
- `x-confirmation-id` string, nullable
- `x-chat-id` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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