curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties \
--header 'api_key: <api-key>'import requests
url = "https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties', 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.base44.com/api/apps/{app_id}/analytics/{event_name}/properties",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$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.base44.com/api/apps/{app_id}/analytics/{event_name}/properties"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
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.base44.com/api/apps/{app_id}/analytics/{event_name}/properties")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"event_name": "checkout_completed",
"property_keys": [
"plan",
"amount",
"currency"
]
}List analytics event properties
Returns the property keys the app has sent with a given event, so you know what you can filter, aggregate, and group by.
Properties are whatever the app passes to base44.analytics.track(), so they differ per event. Get the event names first with List analytics event names.
To use a key from the response, prefix it with properties.. For example, pass properties.plan as a filter field in Query analytics events, or as a metric field in Aggregate analytics events by field.
Keys come from the events retained over the last 60 days. The response returns at most 100 keys and does not say whether it truncated, so an event that carries more than 100 distinct keys reports only some of them.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties \
--header 'api_key: <api-key>'import requests
url = "https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties', 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.base44.com/api/apps/{app_id}/analytics/{event_name}/properties",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$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.base44.com/api/apps/{app_id}/analytics/{event_name}/properties"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
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.base44.com/api/apps/{app_id}/analytics/{event_name}/properties")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/analytics/{event_name}/properties")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"event_name": "checkout_completed",
"property_keys": [
"plan",
"amount",
"currency"
]
}Authorizations
Personal API key.
Path Parameters
Name of the event whose property keys to return, exactly as the app tracked it. An event the app never tracked returns an empty list.
ID of the app whose analytics to read.
Response
Successful Response
The property keys an app has sent with one analytics event.
Name of the event the property keys belong to.
"checkout_completed"
Property keys the app has sent with this event. Prefix a key with properties. to filter, aggregate, or group by it, which works for keys made up of letters, digits, and underscores.
["plan", "amount", "currency"]
Was this page helpful?