Read API & Webhooks
Your data, readable by you. Not locked behind a dashboard.
Agencies manage many tenants and need programmatic access: conversion status feeds, campaign aggregates, delivery receipts. Scoped tokens return aggregates per tenant, webhooks push status changes as they happen, and every payload replays by delivery id.
Pages marked Planned are complete specifications written before the connector ships. They validate demand. Connectors with real delivery logs are marked Production or Beta.
Reporting by screenshot does not scale
Without read access, every client report means logging into another dashboard. Data you paid to generate should not require manual exports to be useful.
One deterministic contract for every tenant you run
Read aggregates grouped by campaign or window, receive webhook calls when outcomes confirm or retract, and feed your own BI or client reports from the same source of truth the ad platforms see.
- 01Agency connects one workspace covering all its tenants
- 02Scoped read token returns aggregates, never raw patient data
- 03Webhooks push conversion status changes as they happen
- 04Dashboards and reports read from one deterministic contract
- 05Every payload is idempotent and replayable by delivery id
Create a workspace-scoped read token (aggregates only, no raw records).
Subscribe webhooks for conversion.delivered, conversion.failed, outcome.confirmed, and outcome.retracted.
Poll or listen; every event carries a replayable delivery id.
Point your dashboards at the same numbers the ad platforms receive.
| From | Apointo |
|---|---|
| GET /v1/conversions?tenant=&window= | conversion_status_feed |
| GET /v1/aggregates?groupBy=campaign | campaign_aggregates |
| Webhook: conversion.delivered / conversion.failed | delivery_receipts |
| Webhook: outcome.confirmed / outcome.retracted | tenant_event_stream |
Can tenants read raw patient data through it?
No. The read surface serves aggregates and status by design. Clinical records stay in the tenant dashboard under their existing access controls.
How is this different from the intake API?
The intake API writes outcomes into Apointo. This surface reads them back out. They ship as one effort so data never flows only one way.
When does this ship?
Together with the Conversions API. Early-access signups decide the build order.