Revenue

Estimate All Stage Doc Backfills

What backfilling EVERY stage and both entities would cost. Spends nothing.

The totals plus a per-stage, per-entity breakdown. Published although the matching "start them all" route is NOT (see the module docstring): seeing the whole bill in one call is exactly what a caller needs before deciding which stages to backfill, and this one cannot spend anything.

Declared BEFORE /backfills/{job_id} so the literal wins. The two do not actually collide - one is a POST and the other a GET - but the ordering is the habit, and the test checks the job route still resolves.

post/revenue/backfills/estimate

Request

  • Base URL: https://be.graph8.com/api/v1
  • URL: https://be.graph8.com/api/v1/revenue/backfills/estimate
  • Auth: HTTP bearer

Headers

Authorizationstring nullable
X-Target-Org-Idstring nullable

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 2 revisions of this API.