Five practical Pendo Aggregation API examples.
The Aggregation API answers questions Pendo's dashboards can't. These five pipelines cover the reports I get asked to build most often, from daily feature usage to guide funnels.
This is the follow-up to my article on Pendo click data, which covers how the Aggregation API works and when to reach for it. Here I want to be purely practical: five pipelines you can adapt, each answering a question I get asked by real product teams. All of them POST to the same endpoint with your integration key.
Pendo agent captures clicks, page loads, guide events
Events stored against features, visitors and accounts
Pipeline queries: filter, group, join, time series
Live charts and reports, no manual exports
Daily active visitors per feature
The basic shape of feature analytics: who used what, day by day. Group feature events by both feature and day, counting unique visitors rather than raw clicks.
{ "response": { "mimeType": "application/json" },
"request": {
"pipeline": [
{ "source": {
"featureEvents": null,
"timeSeries": {
"period": "dayRange",
"first": "date_add(now(), -30, \"days\")",
"count": 30}}},
{ "group": { "group": ["featureId", "day"],
"fields": { "visitors": { "count": "visitorId" } }}},
{ "sort": ["day", "-visitors"] }]}}Accounts that adopted a feature this month
Adoption questions are account questions in B2B. Swap the grouping key to accountId and filter to one feature, and the result is the list of customers actually using what you shipped.
{ "response": { "mimeType": "application/json" },
"request": {
"pipeline": [
{ "source": {
"featureEvents": { "featureId": "<your-feature-id>" },
"timeSeries": {
"period": "dayRange",
"first": "startOfPeriod(now(), \"month\")",
"count": 31}}},
{ "group": {
"group": ["accountId"],
"fields": {
"events": { "sum": "numEvents" },
"visitors": { "count": "visitorId" }}}},
{ "sort": ["-events"] }]}}Guide completion funnel
Guide analytics in the UI show totals; the API lets you build a proper step funnel. Source guide events for one guide, group by step and event type, and the drop-off between steps falls out of the numbers.
Dashboards answer the questions Pendo thought of. The Aggregation API answers yours.
{ "response": { "mimeType": "application/json" },
"request": {
"pipeline": [
{ "source": {
"guideEvents": { "guideId": "<your-guide-id>" },
"timeSeries": {
"period": "dayRange",
"first": "date_add(now(), -90, \"days\")",
"count": 90}}},
{ "group": {
"group": ["guideStepId", "type"],
"fields": { "visitors": { "count": "visitorId" } }}}]}}Two more worth knowing
Stickiness per feature: run the daily-visitors pipeline twice, once over a day and once over thirty, and divide. DAU over MAU per feature separates habit-forming features from occasional ones, and it is not a number any standard dashboard gives you.
Page time by account: swap the source to pageEvents and sum numMinutes grouped by accountId. Where accounts actually spend time is often embarrassingly different from where the roadmap assumes they do.
What these pipelines leave out
Every example here is the query, not the system around it. In a real deployment the integration key has to be secured and rotated (it can read your whole subscription), responses from large accounts have to be paginated, and raw IDs have to be joined to the visitor and account metadata that makes them readable. Then the whole thing needs scheduling, hosting, a chart layer, and an alert for when a pipeline starts returning zero because a tag broke upstream.
That gap, between a query that runs once and a report a team checks every Monday, is most of the actual work.
The query is the easy part. The system around it is the job.
Putting it together
Each of these returns plain JSON, which means each can feed a chart, a scheduled report, or a wallboard without anyone exporting a CSV again. The live dashboard on my click data article is built from exactly these building blocks. If you want pipelines like these wired to your own Pendo subscription, that is a service I offer.