Agency

Search Agency Graded Calls

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.

post/agency/reports/dialer/grading/search

Request

  • Base URL: https://be.graph8.com/api/v1
  • URL: https://be.graph8.com/api/v1/agency/reports/dialer/grading/search
  • Auth: HTTP bearer

Headers

X-Target-Org-Idstring nullable
Authorizationstring nullable

Request body

object 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.

Response

Successful Response

dataReportPayload required

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.

Changes

No recorded changes to this operation across all 3 revisions of this API.