Skip to main content

/o

Endpoint

/o

Overview

Method-based analytics endpoint. The method parameter selects which analytics handler is executed.

Authentication

  • API Key (parameter): api_key=YOUR_API_KEY
  • Auth Token (parameter): auth_token=YOUR_AUTH_TOKEN
  • Auth Token (header): countly-token: YOUR_AUTH_TOKEN

Permissions

  • Most methods require core read access for the provided app.
  • method=all_apps requires global admin access.

Request Parameters

ParameterTypeRequiredDescription
api_keyStringYes (or use auth_token)Dashboard API authentication key.
auth_tokenStringYes (or use api_key)Dashboard auth token.
app_idStringYesApp ID (24-char hex).
methodStringYesHandler selector.
periodStringNoPeriod used by time-based methods.
metricStringNoMetric key used by methods like total_users.
eventStringNoSingle event key for method=events.
eventsJSON String (Array) or ArrayNoEvent list for method=events.
overviewBooleanNoIf truthy with method=events&events=..., returns overview-style event output.
_idStringNoEvent-group ID for method=get_event_group.
loadForStringNoUsed by method=geodata (for example cities).
queryStringNoQuery payload used by method=geodata.

Parameter Semantics

Supported core methods include:

  • total_users
  • get_period_obj
  • locations, sessions, users
  • app_versions, device_details
  • devices, carriers
  • countries, cities
  • geodata
  • get_event_groups, get_event_group
  • events, get_events
  • top_events
  • all_apps
  • notes

If method is not handled by core or a plugin extension, the endpoint returns Invalid method.

Configuration Impact

SettingDefaultAffectsUser-visible impact
api.country_datatruemethod=countriesWhen false, response is {} instead of country data.
api.city_datatruemethod=citiesWhen false, response is {} instead of city data.
api.event_limitConfiguredmethod=get_eventsLimits number of events returned in merged event list output.
api.event_segmentation_limitConfiguredmethod=get_eventsReturned in limits metadata.
api.event_segmentation_value_limitConfiguredmethod=get_eventsReturned in limits metadata.

Response

Success Response

method=total_users:

[
{"_id": "users", "u": 56, "pu": 57}
]

method=get_period_obj&period=7days:

{
"start": 1770674400000,
"end": 1771279199999,
"daysInPeriod": 7,
"periodContainsToday": true,
"currentPeriodArr": ["2026.2.10", "2026.2.11", "2026.2.12"]
}

method=events&events=["Playback Started","Playback Resumed"]&overview=true:

{
"Playback Started": {
"data": {
"count": {"total": 152, "change": "NA", "trend": "u", "sparkline": [0, 0, 0]},
"sum": {"total": 0, "change": "NA", "trend": "u", "sparkline": [0, 0, 0]},
"dur": {"total": 0, "change": "NA", "trend": "u", "sparkline": [0, 0, 0]}
}
},
"Playback Resumed": {
"data": {
"count": {"total": 155, "change": "NA", "trend": "u", "sparkline": [0, 0, 0]},
"sum": {"total": 0, "change": "NA", "trend": "u", "sparkline": [0, 0, 0]},
"dur": {"total": 0, "change": "NA", "trend": "u", "sparkline": [0, 0, 0]}
}
}
}

Response Fields

FieldTypeDescription
resultStringUsed in wrapped helper responses (for errors and some branches).
[]ArrayUsed by many method outputs (total_users, metric arrays, event arrays).
event_keyObjectUsed in events-overview mode; response object uses requested event names as keys.
startNumberPeriod start timestamp (get_period_obj).
endNumberPeriod end timestamp (get_period_obj).
daysInPeriodNumberPeriod length (get_period_obj).

Error Responses

Status Code: 400 Bad Request

{"result":"Missing parameter \"app_id\""}

Status Code: 400 Bad Request

{"result":"Invalid method"}

Status Code: 401 Unauthorized

{"result":"User does not have right"}

Behavior/Processing

Behavior Modes

ModeTriggerProcessing PathResponse Shape
Method dispatch modemethod is set to supported core handler (total_users, sessions, countries, get_events, etc.)Routes request to method-specific read handler after permission checks.Raw root payload shape depends on selected method.
Events overview modemethod=events with events array and truthy overviewAggregates count/sum/duration overview for each requested event/event group.Raw root object keyed by event names.
Events merged modemethod=events with events array and no overviewMerges requested events into standard event output.Raw root object keyed by event names.
Events prefetch modemethod=events with single event or no event filtersRuns single-event prefetch (or grouped-event flow) and returns subperiod/summary output.Raw root array/object depending on branch parameters.

Impact on Other Data

  • Read-only endpoint for core methods documented here.

Audit & System Logs

  • No /systemlogs action is emitted by these read methods.

Database Collections

CollectionUsed forData touched by this endpoint
countly.membersAuthentication and permission validationReads member record by api_key or auth_token for method authorization.
countly.appsApp context validation and app listingReads app record for app-scoped methods; method=all_apps reads app list output.
countly.users{appId}Session/user aggregate methodsRead in user/session/location methods.
countly.device_details{appId}Device/platform methodsRead in app version and device-detail methods.
countly.devices{appId}Device/manufacturer methodsRead in devices/manufacturers branches.
countly.carriers{appId}Carrier metricsRead in carriers methods.
countly.eventsEvent list metadata (get_events)Read for event list, segments, and limits output.
countly.events_dataEvent aggregate methodsRead in event analytics branches.
countly.event_groupsEvent group methodsRead in get_event_groups and get_event_group.
countly.top_eventsTop events methodRead in top_events.
countly_drill.drill_metaEvent metadata enrichment (get_events)Read to merge drill event names and segment definitions.

Examples

Example 1: Get period object

/o?
api_key=YOUR_API_KEY&
app_id=6991c75b024cb89cdc04efd2&
method=get_period_obj&
period=7days

Example 2: Get total users

/o?
api_key=YOUR_API_KEY&
app_id=6991c75b024cb89cdc04efd2&
method=total_users&
metric=users&
period=30days

Example 3: Get events overview for selected events

/o?
api_key=YOUR_API_KEY&
app_id=6991c75b024cb89cdc04efd2&
method=events&
events=["Playback Started","Playback Resumed"]&
overview=true&
period=30days

Operational Considerations

  • Method behavior and response shape vary significantly; always set explicit method and method-specific parameters.
  • Heavy event methods (events, get_events, top_events) can return large payloads on high-cardinality datasets.

Limitations

  • Unknown methods return Invalid method.
  • Some method outputs depend on feature/config toggles (country_data, city_data).

Last Updated

2026-02-17