Search Agency Graded Calls
POST /agency/reports/dialer/grading/search
Find graded calls across every client.
A POST because the filter is a body, NOT because it writes - it reads, and
it is tiered read for that reason rather than deriving write from the
method. The body is an open dict here because it is an open dict in the
app: the handler reads known keys off it with .get and ignores the rest,
so mirroring it as a closed model would REJECT filters the app accepts.
Authorizations
Parameters
Header Parameters
Request Body required
Search filter. Recognised keys: start_date, end_date, sdr_email, org_filter, min_score, max_score, sort_by (default date), page (default 1), page_size (default 20). Anything else is ignored.
object
Responses
200
Successful Response
object
An OPEN envelope around one report’s answer.
The app wraps every one of these reports in {success, data, meta}, where
meta carries the cache state, the window and - on the agency reports -
failed_org_ids, the orgs that contributed NOTHING to the totals above.
That field is the difference between “this client sent no email” and “we
could not query this client”, so it is forwarded rather than flattened
away.
Open on purpose: data is dict | list in the app and its contents grow
with the product. A closed model would turn every new metric into a
silently dropped one.
object
object
Whether there are more pages
Items per page
Current page number (1-indexed)
Total number of items
422
Validation Error