Get retro analytics
Activity, participation and action-item follow-through across every
retro the caller can see (the same set the board list shows), over a
range: headline totals, a time series, a breakdown by team, one row
per retro held in the range (at most 500; retros_truncated says
when there were more), the most agreed-with cards, and optionally the
same totals for a comparison period.
Without from and to the range is the last 30 UTC days, today
included. A range of 48 hours or less is answered in hourly buckets,
a longer one in daily buckets.
Requires the retro:board:read scope.
Authorization
Parameters
Query parameters
fromstringStart of the range: a date (YYYY-MM-DD, the start of that UTC day) or an RFC 3339 instant. Send it together withto.tostringEnd of the range: a date (YYYY-MM-DD, that UTC day included) or an RFC 3339 instant (exclusive). Must be afterfrom, at most 366 days later.comparestringAlso total a comparison period:previous(the same length immediately before) oryear(the same dates a year earlier).team_idstringNarrow to one team's boards plus the organization-wide ones, ornonefor only the organization-wide ones. It never widens what the caller can see.
Responses
200
The analytics.
successbooleandataRetroAnalyticsShow RetroAnalytics properties
rangeobjectfromstring (date-time)tostring (date-time)Exclusive.granularitystringtzstring
totalsRetroTotalsShow RetroTotals properties
retrosintegerclosed_retrosintegercardsintegervotesintegercommentsintegerparticipationParticipationShow Participation properties
participantsintegerDistinct people (members and share-link guests) who wrote a card, voted or commented.guest_participantsintegerparticipants_per_retroobjectOver every retro, empty ones included.avgnumber | nullp50number | null
cards_per_participantnumber | nullvotes_per_participantnumber | nullcomments_per_participantnumber | nullratenumber | nullNamed members who took part divided by named members, over the retros naming at least two people;nullwhen none does.rate_retrosintegerHow many retrosrateis over.named_membersintegernamed_participantsinteger
action_itemsActionStatsShow ActionStats properties
createdintegerAction items created in the range.completedintegerAction items completed in the range.done_of_createdintegerOf those created in the range, how many are done now.follow_through_ratenumber | nulldone_of_created/created.done_without_dateintegerCreated in the range and done, but with no completion time recorded.time_to_completeDurationStatsShow DurationStats properties
countintegerp50_secondsnumber | nullp90_secondsnumber | nullavg_secondsnumber | null
action_items_nowobjectThe visible retros' action items as they stand now.openintegeroverdueintegerwith_due_atintegeropen_ageDurationStatsShow DurationStats properties
countintegerp50_secondsnumber | nullp90_secondsnumber | nullavg_secondsnumber | null
oldest_open_sincestring (date-time) | null
seriesarray of objectbucketstring (date-time)retrosintegercardsintegervotesintegercommentsintegeractive_peopleintegeraction_items_createdintegeraction_items_completedinteger
by_teamarray of object & RetroTotalsThe totals per team;team_id""is the organization-wide retros.team_idstringretrosintegerclosed_retrosintegercardsintegervotesintegercommentsintegerparticipationParticipationShow Participation properties
participantsintegerDistinct people (members and share-link guests) who wrote a card, voted or commented.guest_participantsintegerparticipants_per_retroobjectOver every retro, empty ones included.avgnumber | nullp50number | null
cards_per_participantnumber | nullvotes_per_participantnumber | nullcomments_per_participantnumber | nullratenumber | nullNamed members who took part divided by named members, over the retros naming at least two people;nullwhen none does.rate_retrosintegerHow many retrosrateis over.named_membersintegernamed_participantsinteger
action_itemsActionStatsShow ActionStats properties
createdintegerAction items created in the range.completedintegerAction items completed in the range.done_of_createdintegerOf those created in the range, how many are done now.follow_through_ratenumber | nulldone_of_created/created.done_without_dateintegerCreated in the range and done, but with no completion time recorded.time_to_completeDurationStatsShow DurationStats properties
countintegerp50_secondsnumber | nullp90_secondsnumber | nullavg_secondsnumber | null
retrosarray of objectOne row per retro held in the range, at most 500.idstringnamestringteam_idstringstatusstringcreated_atstring (date-time)participantsintegerguest_participantsintegernamed_membersintegernamed_participantsintegerparticipation_ratenumber | nullcardsintegervotesintegercommentsintegeraction_itemsintegeraction_items_doneinteger
retros_truncatedbooleantruewhen more retros were held thanretroslists.top_cardsarray of objectThe most agreed-with cards of the range's retros.card_idstringboard_idstringcontentstringagreeintegerdisagreeinteger
comparenull | object & RetroTotalsThe comparison period's totals;nullwithoutcompare.- null
- object & RetroTotals
modestringfromstring (date-time)tostring (date-time)retrosintegerclosed_retrosintegercardsintegervotesintegercommentsintegerparticipationParticipationShow Participation properties
participantsintegerDistinct people (members and share-link guests) who wrote a card, voted or commented.guest_participantsintegerparticipants_per_retroobjectOver every retro, empty ones included.avgnumber | nullp50number | null
cards_per_participantnumber | nullvotes_per_participantnumber | nullcomments_per_participantnumber | nullratenumber | nullNamed members who took part divided by named members, over the retros naming at least two people;nullwhen none does.rate_retrosintegerHow many retrosrateis over.named_membersintegernamed_participantsinteger
action_itemsActionStatsShow ActionStats properties
createdintegerAction items created in the range.completedintegerAction items completed in the range.done_of_createdintegerOf those created in the range, how many are done now.follow_through_ratenumber | nulldone_of_created/created.done_without_dateintegerCreated in the range and done, but with no completion time recorded.time_to_completeDurationStatsShow DurationStats properties
countintegerp50_secondsnumber | nullp90_secondsnumber | nullavg_secondsnumber | null
400
A query parameter breaks a rule (VALIDATION_FAILED; details
names each one): only one of from and to, a value that is
neither a date nor RFC 3339, to not after from, a range over
366 days, or an unknown compare.
successbooleanerrorobject requiredcodestring requiredmessagestring requireddetailsarray of object requiredfieldstringmessagestring
request_idstring
401
No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
403
The key lacks the scope this endpoint needs (FORBIDDEN).
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
429
Too many requests (RATE_LIMITED). Wait for Retry-After seconds.
Retry-AfterintegerSeconds to wait before retrying.
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
500
Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.
successbooleanSent by Retro itself; refusals before the request reaches Retro (401, 429) carry onlyerror.errorobject requiredcodestring requiredmessagestring requiredrequest_idstring
Example request
curl -X GET 'https://evohub.io/api/v1/retro/analytics' \
-H 'Authorization: Bearer <TOKEN>'
