GET
https://jmpy.me/api/v1
/
analytics
/
top-performing-urls
Top Performing URLs
curl --request GET \
  --url https://jmpy.me/api/v1/analytics/top-performing-urls \
  --header 'Authorization: Bearer <token>'
{
  "urls": [
    {
      "id": "<string>",
      "short_code": "<string>",
      "short_url": "<string>",
      "name": "<string>",
      "original_url": "<string>",
      "click_count": 123,
      "unique_visitors": 123,
      "created_at": "<string>",
      "url_type": "<string>",
      "branded_domain": "<string>",
      "subdomain": "<string>"
    }
  ],
  "pagination": {
    "page": 123,
    "limit": 123,
    "totalPages": 123,
    "totalItems": 123
  }
}
Get a ranked list of your top performing short URLs with pagination, filtering, and sorting options. Perfect for identifying your most successful links.

Query Parameters

limit
integer
default:10
Maximum number of URLs to return (1-100).
page
integer
default:1
Page number for pagination.
offset
integer
Number of records to skip. Overrides page if provided.
days
integer
default:30
Number of days to include in analytics.
dateRange
string
Predefined date range: 7d, 30d, 90d, 1y, all_time, custom. Takes precedence over days if specified.
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.
Search term to filter by URL name or short code.
urlType
string
default:"all"
Filter by URL type: all, standard, branded, subdomain.See Branded Domains and Subdomains for more information.
sortBy
string
default:"clicks"
Sort field: clicks, name, created_at.
sortOrder
string
default:"desc"
Sort direction: asc or desc.

Response

urls
array
Array of top performing URLs.
pagination
object
Pagination metadata.

Request Examples

# Get top 10 performing URLs
curl -X GET "https://jmpy.me/api/v1/analytics/top-performing-urls?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Get top branded URLs
curl -X GET "https://jmpy.me/api/v1/analytics/top-performing-urls?urlType=branded&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Search and paginate
curl -X GET "https://jmpy.me/api/v1/analytics/top-performing-urls?search=promo&page=1&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Custom date range
curl -X GET "https://jmpy.me/api/v1/analytics/top-performing-urls?dateRange=custom&startDate=2024-01-01&endDate=2024-03-31" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response Examples

{
  "success": true,
  "data": {
    "urls": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "short_code": "abc123",
        "short_url": "https://jmpy.me/abc123",
        "name": "Spring Sale Landing Page",
        "original_url": "https://example.com/spring-sale",
        "click_count": 4523,
        "unique_visitors": 3890,
        "created_at": "2024-01-15T10:30:00Z",
        "url_type": "standard",
        "branded_domain": null,
        "subdomain": null
      },
      {
        "id": "661f9511-f3ac-52e5-b827-557766551111",
        "short_code": "promo",
        "short_url": "https://go.mycompany.com/promo",
        "name": "Product Launch",
        "original_url": "https://example.com/new-product",
        "click_count": 2345,
        "unique_visitors": 2012,
        "created_at": "2024-02-01T14:00:00Z",
        "url_type": "branded",
        "branded_domain": "go.mycompany.com",
        "subdomain": null
      },
      {
        "id": "772f0622-g4bd-63f6-c938-668877662222",
        "short_code": "newsletter",
        "short_url": "https://marketing.jmpy.me/newsletter",
        "name": "Weekly Newsletter Signup",
        "original_url": "https://example.com/newsletter",
        "click_count": 1876,
        "unique_visitors": 1654,
        "created_at": "2024-01-20T09:00:00Z",
        "url_type": "subdomain",
        "branded_domain": null,
        "subdomain": "marketing"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "totalPages": 5,
      "totalItems": 48
    }
  }
}

Use Cases

Display a leaderboard of your top performing links.
async function renderLeaderboard(containerId) {
  const response = await fetch(
    'https://jmpy.me/api/v1/analytics/top-performing-urls?limit=10&dateRange=7d',
    { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
  );
  const { data } = await response.json();
  
  const container = document.getElementById(containerId);
  const totalClicks = data.urls.reduce((sum, url) => sum + url.click_count, 0);
  
  container.innerHTML = `
    <div class="leaderboard">
      <h2>🏆 Top 10 Links This Week</h2>
      <div class="total">Total: ${totalClicks.toLocaleString()} clicks</div>
      ${data.urls.map((url, i) => `
        <div class="entry ${i < 3 ? 'top-three' : ''}">
          <span class="rank">${i + 1}</span>
          <span class="name">${url.name || url.short_code}</span>
          <span class="clicks">${url.click_count.toLocaleString()}</span>
          <div class="bar" style="width: ${(url.click_count / data.urls[0].click_count) * 100}%"></div>
        </div>
      `).join('')}
    </div>
  `;
}
Analyze performance differences between branded and standard URLs.
import requests

def compare_url_types():
    types = ['standard', 'branded', 'subdomain']
    results = {}
    
    for url_type in types:
        response = requests.get(
            'https://jmpy.me/api/v1/analytics/top-performing-urls',
            headers={'Authorization': 'Bearer YOUR_API_KEY'},
            params={
                'urlType': url_type,
                'limit': 100,
                'dateRange': '30d'
            }
        )
        
        data = response.json()['data']
        urls = data['urls']
        
        if urls:
            total_clicks = sum(u['click_count'] for u in urls)
            avg_clicks = total_clicks / len(urls)
            results[url_type] = {
                'count': len(urls),
                'total_clicks': total_clicks,
                'avg_clicks': avg_clicks
            }
        else:
            results[url_type] = {'count': 0, 'total_clicks': 0, 'avg_clicks': 0}
    
    print("URL Type Performance Comparison")
    print("=" * 50)
    for url_type, stats in results.items():
        print(f"\n{url_type.upper()}:")
        print(f"  URLs: {stats['count']}")
        print(f"  Total Clicks: {stats['total_clicks']}")
        print(f"  Avg Clicks/URL: {stats['avg_clicks']:.1f}")
Generate a weekly email report of top performers.
interface WeeklyReport {
  generatedAt: string;
  topUrls: Array<{
    rank: number;
    name: string;
    shortUrl: string;
    clicks: number;
    change: string;
  }>;
  summary: {
    totalUrls: number;
    totalClicks: number;
    topPerformer: string;
  };
}

async function generateWeeklyReport(): Promise<WeeklyReport> {
  const response = await fetch(
    'https://jmpy.me/api/v1/analytics/top-performing-urls?limit=10&dateRange=7d',
    { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
  );
  const { data } = await response.json();
  
  const topUrls = data.urls.map((url, i) => ({
    rank: i + 1,
    name: url.name || url.short_code,
    shortUrl: url.short_url,
    clicks: url.click_count,
    change: '+0%' // Would compare with previous week
  }));
  
  return {
    generatedAt: new Date().toISOString(),
    topUrls,
    summary: {
      totalUrls: data.pagination.totalItems,
      totalClicks: topUrls.reduce((sum, u) => sum + u.clicks, 0),
      topPerformer: topUrls[0]?.name || 'N/A'
    }
  };
}