Returns the analytics engagement data for the specified environment.
GET
/
environments
/
{environmentId}
/
analytics
/
engagement
Get analytics engagement data
curl --request GET \
--url https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"activeWeeklyDays": [
{
"nDays": 123,
"nUserWeeks": 123,
"pctUserWeeks": 123
}
],
"retention": {
"allUsers": [
{
"cohortWeek": "2023-12-25",
"returningWeek": "2023-12-25",
"retentionPct": 123
}
],
"newUsers": [
{
"cohortWeek": "2023-12-25",
"returningWeek": "2023-12-25",
"retentionPct": 123
}
]
},
"sessionsHeatmap": [
{
"hourBucket": 11,
"weekday": 3,
"nSessionsVisits": 123
}
]
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden"
}{
"error": "Internal Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the environment
Required string length:
36Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Example:
"95b11417-f18f-457f-8804-68e361f9164f"
Query Parameters
Start date in ISO format (YYYY-MM-DD)
End date in ISO format (YYYY-MM-DD)
Response
Analytics engagement data
Distribution of how many days per week users are active
Show child attributes
Show child attributes
Weekly cohort retention data for all users and new users
Show child attributes
Show child attributes
Session activity heatmap grouped by hour of day and day of week
Show child attributes
Show child attributes
Last modified on January 21, 2026
Was this page helpful?
⌘I
Get analytics engagement data
curl --request GET \
--url https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/environments/{environmentId}/analytics/engagement")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"activeWeeklyDays": [
{
"nDays": 123,
"nUserWeeks": 123,
"pctUserWeeks": 123
}
],
"retention": {
"allUsers": [
{
"cohortWeek": "2023-12-25",
"returningWeek": "2023-12-25",
"retentionPct": 123
}
],
"newUsers": [
{
"cohortWeek": "2023-12-25",
"returningWeek": "2023-12-25",
"retentionPct": 123
}
]
},
"sessionsHeatmap": [
{
"hourBucket": 11,
"weekday": 3,
"nSessionsVisits": 123
}
]
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden"
}{
"error": "Internal Server Error"
}