Funnel Analysis
Analyze event funnel performance
curl -X POST "https://api.nexus.usehardal.com/analytics/funnel/events?timeframe=today&startDate=example_string&endDate=example_string&timezone=example_string&targetSignalId=example_string&isCompareEnabled=false&compareStartDate=example_string&compareEndDate=example_string" \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_API_KEY" \
-d '{
"funnelEvents": [
"example_string"
],
"category": "browser",
"secondaryCategory": "browser",
"hostname": "John Doe",
"browser": "example_string",
"os": "example_string",
"device": "example_string",
"country": "USA",
"city": "New York",
"url": "example_string",
"source": "example_string",
"medium": "example_string",
"campaign": "example_string"
}'
import requests
import json
url = "https://api.nexus.usehardal.com/analytics/funnel/events?timeframe=today&startDate=example_string&endDate=example_string&timezone=example_string&targetSignalId=example_string&isCompareEnabled=false&compareStartDate=example_string&compareEndDate=example_string"
headers = {
"Content-Type": "application/json",
"Authorization": "YOUR_API_KEY"
}
data = {
"funnelEvents": [
"example_string"
],
"category": "browser",
"secondaryCategory": "browser",
"hostname": "John Doe",
"browser": "example_string",
"os": "example_string",
"device": "example_string",
"country": "USA",
"city": "New York",
"url": "example_string",
"source": "example_string",
"medium": "example_string",
"campaign": "example_string"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.nexus.usehardal.com/analytics/funnel/events?timeframe=today&startDate=example_string&endDate=example_string&timezone=example_string&targetSignalId=example_string&isCompareEnabled=false&compareStartDate=example_string&compareEndDate=example_string", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "YOUR_API_KEY"
},
body: JSON.stringify({
"funnelEvents": [
"example_string"
],
"category": "browser",
"secondaryCategory": "browser",
"hostname": "John Doe",
"browser": "example_string",
"os": "example_string",
"device": "example_string",
"country": "USA",
"city": "New York",
"url": "example_string",
"source": "example_string",
"medium": "example_string",
"campaign": "example_string"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"funnelEvents": [
"example_string"
],
"category": "browser",
"secondaryCategory": "browser",
"hostname": "John Doe",
"browser": "example_string",
"os": "example_string",
"device": "example_string",
"country": "USA",
"city": "New York",
"url": "example_string",
"source": "example_string",
"medium": "example_string",
"campaign": "example_string"
}`)
req, err := http.NewRequest("POST", "https://api.nexus.usehardal.com/analytics/funnel/events?timeframe=today&startDate=example_string&endDate=example_string&timezone=example_string&targetSignalId=example_string&isCompareEnabled=false&compareStartDate=example_string&compareEndDate=example_string", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.nexus.usehardal.com/analytics/funnel/events?timeframe=today&startDate=example_string&endDate=example_string&timezone=example_string&targetSignalId=example_string&isCompareEnabled=false&compareStartDate=example_string&compareEndDate=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'YOUR_API_KEY'
request.body = '{
"funnelEvents": [
"example_string"
],
"category": "browser",
"secondaryCategory": "browser",
"hostname": "John Doe",
"browser": "example_string",
"os": "example_string",
"device": "example_string",
"country": "USA",
"city": "New York",
"url": "example_string",
"source": "example_string",
"medium": "example_string",
"campaign": "example_string"
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"data": [
{
"eventName": "page_view",
"step": 1,
"sessions": 98012,
"dropRate": 0,
"categoryResult": {
"Android": {
"sessions": 33690,
"breakdown": {
"Munich": {
"sessions": 1747
},
"Sydney": {
"sessions": 1739
},
"Madrid": {
"sessions": 1736
}
}
},
"Windows": {
"sessions": 20224,
"breakdown": {
"Madrid": {
"sessions": 1100
},
"São Paulo": {
"sessions": 1076
},
"London": {
"sessions": 1048
}
}
}
}
}
],
"metadata": {
"timeframe": "yesterday"
}
},
"timestamp": "2026-06-30T12:14:57.410Z",
"path": "/analytics/funnel/events"
}
/analytics/funnel/events
Target server for requests. Edit to use your own host.
API key (sent in header)
Required preset timeframe for the query. Use custom together with startDate and endDate when querying a custom date range.
Start date (YYYY-MM-DD)
End date (YYYY-MM-DD)
Timezone for date filtering (default: Europe/Istanbul)
Target signal ID for an authorized mobile app or related signal in the same project
Enable comparison range calculations (default: false)
Comparison start date (YYYY-MM-DD)
Comparison end date (YYYY-MM-DD)
The media type of the request body
List of funnel events
Category to group funnel data by (e.g., device, browser, country)
Secondary category to group funnel data by (e.g., device, browser, country)
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Provide your API key in the header.
Query Parameters
Required preset timeframe for the query. Use custom together with startDate and endDate when querying a custom date range.
todayyesterdaylast7dayslast30dayscustomStart date (YYYY-MM-DD)
End date (YYYY-MM-DD)
Timezone for date filtering (default: Europe/Istanbul)
Target signal ID for an authorized mobile app or related signal in the same project
Enable comparison range calculations (default: false)
Comparison start date (YYYY-MM-DD)
Comparison end date (YYYY-MM-DD)
Body
List of funnel events
Category to group funnel data by (e.g., device, browser, country)
browserosdevicecountrycitysourcemediumcampaignSecondary category to group funnel data by (e.g., device, browser, country)
browserosdevicecountrycitysourcemediumcampaignResponses
Successful response.