---
title: "Aggregate analytics over your locally-synced LinkedIn connections with optional filtering. Without filters: totals, mont"
method: GET
path: "/api/v1/network/analytics"
tags: ["network"]
---

# Aggregate analytics over your locally-synced LinkedIn connections with optional filtering. Without filters: totals, mont

`GET /api/v1/network/analytics`

## Request

- Base URL: `https://crispy.sh`
- URL: `https://crispy.sh/api/v1/network/analytics`
- Auth: HTTP bearer

## Query parameters

- `keyword` string: Case-insensitive substring match across name, headline, company, title
- `title` string: Case-insensitive substring match on current_title
- `company` string: Case-insensitive substring match on current_company
- `location` string: Case-insensitive substring match on location
- `skills` string[]: Any-match filter on skills (OR)
- `connected_after` string: ISO 8601 date — only connections added after this date
- `connected_before` string: ISO 8601 date — only connections added before this date
- `group_by` 'company' | 'title' | 'title_group' | 'location' | 'skill': Return a full uncapped distribution for this dimension instead of top-N summaries
- `top_n` number: Entries per ranked category (default 10)
- `contacts_limit` number: Max contacts to return when filters are active (default 100)

## Response `200`

Success

## Other responses

- `401`: Missing or expired API key
- `403`: Insufficient key scope or permission denied
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/crispy/apis/crispy-rest-api.md) · [All operations](https://skmtc.dev/crispy/apis/crispy-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crispy/apis/crispy-rest-api/revisions/6bed0974d9ce?raw)
