GET
https://jmpy.me/api/v1
/
analytics
/
overview
Analytics Overview
curl --request GET \
  --url https://jmpy.me/api/v1/analytics/overview \
  --header 'Authorization: Bearer <token>'
{
  "summary": {
    "totalURLs": 123,
    "totalClicks": 123,
    "trackedURLs": 123,
    "avgClicksPerUrl": 123
  },
  "paginated": {
    "showingResults": 123,
    "pageClicks": 123,
    "pageTrackedURLs": 123
  },
  "pagination": {
    "page": 123,
    "limit": 123,
    "totalPages": 123,
    "totalItems": 123
  },
  "period": {
    "start": "<string>",
    "end": "<string>",
    "dateRange": "<string>",
    "isAllTime": true
  },
  "appliedFilters": {}
}
Get a comprehensive analytics overview with summary statistics, filtering, and pagination for all your short URLs.
This endpoint returns user-level aggregated analytics. For analytics on a specific short URL, use the Complete Analytics endpoint.

Query Parameters

page
integer
default:1
Page number for pagination.
limit
integer
default:10
Number of results per page (max 100).
Search term to filter URLs by name or short code.
dateRange
string
default:"all_time"
Predefined date range: 7d, 30d, 90d, 1y, all_time, custom.
startDate
string
Start date for custom range (ISO 8601). Required when dateRange is custom.
endDate
string
End date for custom range (ISO 8601). Required when dateRange is custom.
urlType
string
default:"all"
Filter by URL type: all, standard, branded, subdomain.See Branded Domains and Subdomains for more information.
sortBy
string
default:"created_at"
Sort field: name, short_code, clicks, created_at, unique_visitors.
sortOrder
string
default:"desc"
Sort direction: asc or desc.

Response

summary
object
Aggregated statistics across all URLs matching the filters.
paginated
object
Statistics for the current page of results.
pagination
object
Pagination metadata.
period
object
Date range information for the query.
appliedFilters
object
The filters that were applied to the query.

Request Examples

# Basic request - get overview for last 30 days
curl -X GET "https://jmpy.me/api/v1/analytics/overview?dateRange=30d" \
  -H "Authorization: Bearer YOUR_API_KEY"

# With pagination and filtering
curl -X GET "https://jmpy.me/api/v1/analytics/overview?page=1&limit=20&urlType=branded&sortBy=clicks&sortOrder=desc" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Custom date range
curl -X GET "https://jmpy.me/api/v1/analytics/overview?dateRange=custom&startDate=2024-01-01T00:00:00Z&endDate=2024-12-31T23:59:59Z" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response Examples

{
  "success": true,
  "data": {
    "summary": {
      "totalURLs": 156,
      "totalClicks": 24589,
      "trackedURLs": 142,
      "avgClicksPerUrl": 157.62
    },
    "paginated": {
      "showingResults": 10,
      "pageClicks": 4523,
      "pageTrackedURLs": 10
    },
    "pagination": {
      "page": 1,
      "limit": 10,
      "totalPages": 16,
      "totalItems": 156
    },
    "period": {
      "start": "2024-12-08T00:00:00Z",
      "end": "2025-01-07T00:00:00Z",
      "dateRange": "30d",
      "isAllTime": false
    },
    "appliedFilters": {
      "urlType": "all",
      "sortBy": "created_at",
      "sortOrder": "desc",
      "search": ""
    }
  }
}

Use Cases

Display key metrics in a dashboard widget showing total URLs, clicks, and performance.
async function getDashboardStats() {
  const response = await fetch(
    'https://jmpy.me/api/v1/analytics/overview?dateRange=30d',
    { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
  );
  const { data } = await response.json();
  
  return {
    totalUrls: data.summary.totalURLs,
    totalClicks: data.summary.totalClicks,
    avgPerformance: data.summary.avgClicksPerUrl,
    trackedPercentage: Math.round(
      (data.summary.trackedURLs / data.summary.totalURLs) * 100
    )
  };
}
Analyze performance differences between your branded domain URLs and standard URLs.
async function compareUrlTypes() {
  const [branded, standard] = await Promise.all([
    fetch('https://jmpy.me/api/v1/analytics/overview?urlType=branded&dateRange=30d', {
      headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
    }).then(r => r.json()),
    fetch('https://jmpy.me/api/v1/analytics/overview?urlType=standard&dateRange=30d', {
      headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
    }).then(r => r.json())
  ]);
  
  console.log('Branded URLs avg clicks:', branded.data.summary.avgClicksPerUrl);
  console.log('Standard URLs avg clicks:', standard.data.summary.avgClicksPerUrl);
}