Skip to main content
GET
/
api
/
network
/
connections
List network connections
curl --request GET \
  --url https://app.puffle.ai/api/network/connections \
  --header 'Authorization: Bearer <token>'
{
  "connections": [
    {
      "id": "cc111111-1111-1111-1111-111111111111",
      "user_id": "11111111-1111-1111-1111-111111111111",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "email": null,
      "company": "Analytical Engines",
      "position": "Mathematician",
      "connected_on": "2024-11-03",
      "linkedin_url": "https://www.linkedin.com/in/ada",
      "enriched_at": null,
      "message_count": 2
    }
  ],
  "count": 842,
  "page": 1,
  "limit": 50,
  "totalPages": 17
}

Overview

Paginated, searchable, sortable list of the caller’s LinkedIn connections with per-row message counts. Supports filtering by enrichment status and whether the connection has any messages. Sorting by message_count uses a slower in-memory path (loads all connection ids, counts messages, then sorts) but is still fine on sub-100k networks.
This operation shares the URL path /api/network/connections with other verbs. See Import network connections to bulk-upsert from a LinkedIn data-export CSV, or Delete all network connections to nuke the full graph.

AI agent notes

Message counts are per-request. They are not stored on the row. If you need stable counts across calls, snapshot the response.hasMessages filter is post-pagination. The count and totalPages fields reflect the pre-filter total. Don’t rely on connections.length === limit for “has more pages”; use page < totalPages instead.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

Case-insensitive substring match over first_name, last_name, company, position.

page
string

1-indexed page number. Defaults to 1.

limit
string

Page size. Defaults to 50; clamped to a max of 100.

sortBy
enum<string>

Sort field. Unknown values fall back to connected_on. message_count uses a slower in-memory sort path.

Available options:
connected_on,
first_name,
last_name,
company,
position,
enriched_at,
message_count
sortOrder
enum<string>

Sort direction. Defaults to desc.

Available options:
asc,
desc
status
enum<string>

Enrichment filter. enriched = enriched_at IS NOT NULL; basic = enriched_at IS NULL. Defaults to all.

Available options:
all,
enriched,
basic
hasMessages
enum<string>

Filter by whether the connection has any network_messages. Applied in-memory AFTER pagination — the count field still reflects the pre-filter total.

Available options:
true,
false

Response

Paginated connection page. connections may be shorter than limit when hasMessages is applied.

connections
object[]
required
count
integer
required

Total rows matching filters (before hasMessages in-memory filter).

Required range: 0 <= x <= 9007199254740991
page
integer
required
Required range: 0 < x <= 9007199254740991
limit
integer
required
Required range: 0 < x <= 9007199254740991
totalPages
integer
required
Required range: 0 <= x <= 9007199254740991