Voyager provides full connection lifecycle management — send requests with personalized notes, accept inbound invitations, check pending requests, follow/unfollow profiles, and remove connections.
Every Voyager response is wrapped in the standard envelope { success, statusCode, message, data, errors }. The JSON examples below show only the endpoint-specific payload — access res.data.<field> in your client. See Introduction for the full envelope shape.
Connection request notes are limited to 300 characters by LinkedIn. The message parameter is optional — requests without a note have a higher acceptance rate according to most studies, but personalized notes work better for cold outreach.
See who wants to connect with you:
Use the invitationUrn and sharedSecret from the received invitations list:
Before sending a connection request, check whether you are already connected or have a pending invitation:
Key fields to check:
connected: true — Already connected, no need to send requestpendingInvitationSent: true — You already sent a request, wait for responsecanConnect: false — LinkedIn is blocking connection (rate limit or restriction)Follow a profile without connecting (you will see their posts in your feed):
Trigger a “profile viewed” notification (useful for warming up prospects):
Profile visits are async jobs. The endpoint returns a jobId — poll GET /api/jobs/:jobId for completion.
Set up webhooks to be notified of new connection requests:
Or poll the event feed:
LinkedIn limits the number of weekly connection requests. Exceeding the limit triggers a temporary restriction. Voyager reports usage via GET /api/session/capabilities — your agent should check connectionsRequested and pace accordingly.
Check your connection request limits and sent invitation count:
Find warm paths to a person — mutual connections, shared experiences:
Get LinkedIn’s own suggested contacts for your network:
View your pending outbound connection requests: