Get Mango Revenue Analytics
Reports what the authenticated creator earned from Mango sales over a window you choose: the total, how it compares with the preceding window, how it splits between one-time purchases and subscriptions, and which Mangoes earned the most.
Use this to build a revenue dashboard or a periodic earnings report. It answers "how much did this creator earn?" — for "what does this creator sell?", use Get Mango Analytics Summary (GET /api/v1/external/analytics/mangoes/summary) instead. This operation returns aggregates only; it does not expose individual orders, customers, or payment references.
Choosing the window. startDate and endDate are both required and have no default — there is no implicit "last 7 days". The window is half-open: a payment made at exactly startDate is counted, one made at exactly endDate is not, so to cover whole days send the start of the following day as endDate. Both are absolute ISO 8601 instants, so convert your local day boundaries yourself. endDate must be on or after startDate and at most 90 days after it; for a longer report, call this operation once per 90-day slice. Equal timestamps are accepted and return an empty window, and a window entirely in the future returns 200 with zeros rather than an error. Any other query parameter you send is ignored.
What counts as revenue. Every amount is net — what the creator receives after TagMango’s commission, including the GST payable to the creator — in the creator’s own currency, reported back to you as currency, with no exchange-rate conversion at read time. Only orders that reached the completed state count: orders that failed, are still in progress, or are marked refunded are excluded, as is any order with a refund currently in progress.
Comparison window. growthPercentage compares your window against the window of identical duration ending exactly where yours begins — ask for the 7 days from 2026-08-18 to 2026-08-25 and the baseline is the 7 days from 2026-08-11 to 2026-08-18. The shift is by elapsed time, not by calendar unit, so a one-month window is compared against the same number of days rather than against the previous calendar month. You never choose the baseline directly; move or resize your own window instead.
Ranking and reconciliation. topMangoes holds at most three Mangoes, ordered by net revenue descending with no defined tie-break, and only the creator’s current Mangoes are eligible. Revenue from deleted Mangoes still counts towards totalRevenue and surfaces inside others.amount, never as a named row — so topMangoes plus others reconciles to the total, while others.mangoCount counts a deliberately narrower set.
Freshness. Analytics are served from TagMango’s reporting store rather than the live transactional one, so a payment taken moments ago may not be reflected yet, and no staleness bound is guaranteed. Two identical requests can therefore return slightly different figures as that store catches up.
Rejected date pairs. A missing, unparseable, out-of-order, or over-90-day pair is rejected before any data is read, and every failing rule is reported at once rather than one at a time. The body carries the failures as a list of messages such as "Start date is required" or "endDate must be on or after startDate and within 90 days".
Authorization
bearer In: header
Query Parameters
Inclusive start of the reporting window, as an ISO 8601 date-time. Payments taken at exactly this instant are counted. The window is absolute UTC-based time, not calendar days in your local timezone, so convert your day boundaries before sending them. Must be paired with endDate, and the two must be at most 90 days apart.
date-timeExclusive end of the reporting window, as an ISO 8601 date-time. Payments taken at exactly this instant are not counted, so to cover whole days send the start of the following day. Must be on or after startDate and at most 90 days after it; sending the two timestamps equal is accepted and returns an empty window.
date-timeHeader Parameters
Host name of the dashboard, ex: mydomain.tagmango.com
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://api-prod-new.tagmango.com/api/v1/external/analytics/mangoes/revenue?startDate=2026-07-01T00%3A00%3A00.000Z&endDate=2026-08-01T00%3A00%3A00.000Z" \ -H "x-whitelabel-host: string"{
"totalRevenue": 486350.75,
"growthPercentage": 12.4,
"currency": "INR",
"oneTime": {
"amount": 312400.5,
"percentage": 64.2
},
"subscriptions": {
"amount": 173950.25,
"percentage": 35.8
},
"topMangoes": [
{
"amount": 184200,
"percentage": 37.9,
"_id": "64a1f0c2e4b0a1b2c3d4e5f6",
"title": "Creator Growth Masterclass"
}
],
"others": {
"amount": 143900.25,
"percentage": 29.6,
"mangoCount": 7
},
"bestSeller": {
"_id": "64a1f0c2e4b0a1b2c3d4e5f6",
"title": "Creator Growth Masterclass",
"revenue": 184200
}
}{
"code": 400,
"type": "Bad Request",
"statusMessage": "BAD_REQUEST",
"success": false,
"message": "Invalid request",
"result": "Invalid request"
}{
"code": 401,
"type": "Unauthorized",
"statusMessage": "UNAUTHORIZED",
"message": "Invalid token",
"result": "Invalid token",
"success": false
}{
"code": 403,
"type": "Forbidden",
"statusMessage": "FORBIDDEN",
"errorCode": "WORKSHOP_MANGO_FORBIDDEN",
"message": "You can not access this api with a TagMango account, only available for whitelabel hosts",
"result": "You can not access this api with a TagMango account, only available for whitelabel hosts",
"success": false
}{
"code": 429,
"type": "Too Many Requests",
"statusMessage": "TOO_MANY_REQUESTS",
"message": "Request limit exceeded. try after 10 seconds",
"result": "Request limit exceeded. try after 10 seconds",
"success": false
}