linkedin_unipile_network
Your LinkedIn network: 1st-degree connections and invitations. Inviting,
answering or withdrawing an invitation is linkedin_unipile_act.
op:
"relations" (default): your 1st-degree connections — to target/export your direct network. Paginated (
cursor). Returns{items, cursor, …}— a single list.fields= PROJECTION: keeps only those fields on each item (e.g.["name","headline","public_identifier","created_at"]), plusmember_idalways kept — reduces an export's payload. A key that no connection on the page carries is REFUSED, with the keys present. ⚠️ Pagination is NOT reliable for an EXHAUSTIVE export: thecursorencodes a volatile offset (duplicates in the offset space, overestimated total) and alimit=100page returns 90-100 items, not 100. To load a whole network: deduplicate bymember_id(NEVER the offset), keep ≤6 pages in parallel, ~20 s between two salvos (measured: 8 in parallel →429 "We only allow 10 requests"on 3 of them; beyond that, cascading 502s), prove exhaustion with 2 staggered passes. ⚠️ These six precautions are ALL there is to know: they live here, there is no page to go read. Thebulk-loadguide deals with something else — delegating a big load to a sub-agent — and says nothing about the pagination traps above. ⚠️ An incomplete load does NOT RAISE, it returns fewer people: a process that reads the absence as "not a connection" will then act on a wrong answer."invitations": the connection invitations.
direction='received' (received, to accept) or 'sent' (sent, pending). Paginated —limit(default 50, MAX 100: beyond that upstream returns "Invalid querystring"; and with no limit the whole backlog exceeds the token limit). For the next page, pass thecursorRETURNED by the previous call — and only that: a hand-made cursor is refused. No more returnedcursor= end of the backlog (a SHORT page is not the end), unlesspagination_noteis present: it then says why pagination stopped there, and there is nothing more to ask for.directionis repeated on each page, it cannot be deduced from the cursor.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "linkedin_unipile_network"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | relations (default) | invitations. | relations |
| _org | No | Org (id) de CET APPEL. `oto_list_orgs()`. | |
| limit | No | page size. | |
| _group | No | Équipe (id) de CET APPEL, sous son org parente. | |
| cursor | No | pagination (relations, invitations) — always the one returned by the previous call, never built by hand. | |
| fields | No | op="relations" — field projection (`member_id` always kept; key absent from the whole page = refusal). | |
| _run_id | No | OBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas. | |
| _account | No | Compte à OPÉRER quand plusieurs existent. `oto_identity(op='list')`. | |
| _project | No | Projet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`. | |
| _instance | No | Instance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`. | |
| direction | No | op="invitations" — 'received' (default) or 'sent'. | received |