Skip to content

Analytics

Get analytics data including funnel conversion analysis and dashboard metrics.

GET /v1/analytics/funnel

Analyze order funnel conversion from visitors to completed orders.

Parameters

ParameterTypeRequiredDescription
daysnumberNoNumber of days to analyze (1-365, default: 30)

Example Request

bash
curl -H "Authorization: Bearer looha_your_api_key" \
  "https://api.looha.app/v1/analytics/funnel?days=30"

Response

json
{
  "success": true,
  "data": {
    "totalVisitors": 12000,
    "conversionRate": 2.08,
    "dropOffRate": 97.92,
    "stages": [
      {
        "name": "Visitors",
        "count": 12000,
        "percentage": 100.0,
        "dropOff": 0.0
      },
      {
        "name": "Product Views",
        "count": 6000,
        "percentage": 50.0,
        "dropOff": 50.0
      },
      {
        "name": "Add to Cart",
        "count": 1200,
        "percentage": 10.0,
        "dropOff": 40.0
      },
      {
        "name": "Checkout Started",
        "count": 600,
        "percentage": 5.0,
        "dropOff": 5.0
      },
      {
        "name": "Orders Completed",
        "count": 250,
        "percentage": 2.08,
        "dropOff": 2.92
      }
    ]
  }
}

Response Fields

FieldTypeDescription
totalVisitorsnumberTotal number of visitors
conversionRatenumberOverall conversion rate percentage
dropOffRatenumberOverall drop-off rate percentage
stagesarrayFunnel stages with counts and percentages

GET /v1/analytics/dashboard

Get analytics dashboard with funnel summary.

Parameters

ParameterTypeRequiredDescription
daysnumberNoNumber of days to analyze (default: 30)

Example Request

bash
curl -H "Authorization: Bearer looha_your_api_key" \
  "https://api.looha.app/v1/analytics/dashboard?days=30"

Response

json
{
  "success": true,
  "data": {
    "funnel": {
      "totalVisitors": 12000,
      "conversionRate": 2.08,
      "dropOffRate": 97.92,
      "stages": [...]
    },
    "summary": {
      "totalVisitors": 12000,
      "conversionRate": 2.08,
      "dropOffRate": 97.92
    }
  }
}

Note: This endpoint combines funnel data with a summary view for dashboard display.


Error Responses

400 Bad Request

json
{
  "success": false,
  "error": "days must be between 1 and 365"
}

401 Unauthorized

json
{
  "success": false,
  "error": "Unauthorized"
}

Use Cases

Track Funnel Drop-offs

javascript
const API_KEY = 'looha_your_api_key'

const response = await fetch('https://api.looha.app/v1/analytics/funnel?days=30', {
  headers: { Authorization: `Bearer ${API_KEY}` },
})

const funnel = await response.json()
const stages = funnel.data.stages

// Find biggest drop-off
let biggestDrop = 0
let problemStage = ''

for (let i = 1; i < stages.length; i++) {
  if (stages[i].dropOff > biggestDrop) {
    biggestDrop = stages[i].dropOff
    problemStage = stages[i].name
  }
}

console.log(`Biggest drop-off: ${problemStage} (${biggestDrop}%)`)
python
import requests
from datetime import datetime, timedelta

API_KEY = 'looha_your_api_key'

# Get conversion rate for different periods
periods = [7, 14, 30, 90]
rates = []

for days in periods:
    response = requests.get(
        'https://api.looha.app/v1/analytics/funnel',
        params={'days': days},
        headers={'Authorization': f'Bearer {API_KEY}'}
    )

    data = response.json()
    rates.append({
        'period': f'{days} days',
        'rate': data['data']['conversionRate']
    })

print('Conversion Rate Trends:')
for rate in rates:
    print(f"{rate['period']}: {rate['rate']}%")

Dashboard Integration

javascript
function updateAnalyticsDashboard() {
  const API_KEY = PropertiesService.getScriptProperties().getProperty('LOOHA_API_KEY')

  const response = UrlFetchApp.fetch('https://api.looha.app/v1/analytics/dashboard?days=30', {
    headers: { Authorization: `Bearer ${API_KEY}` },
  })

  const data = JSON.parse(response.getContentText())
  const summary = data.data.summary

  // Update Google Sheets dashboard
  const sheet = SpreadsheetApp.getActiveSheet()
  sheet.getRange('B2').setValue(summary.totalVisitors)
  sheet.getRange('B3').setValue(summary.conversionRate + '%')
  sheet.getRange('B4').setValue(summary.dropOffRate + '%')
}

Next: Alerts API →

Profit analytics platform for Saudi e-commerce merchants