Create a connection link

POST
/linkedin/invitations

Creates a secure link to connect a LinkedIn account. Send sendEmail: false to get the link and forward it yourself: the person opens it, logs in to LinkedIn on the Emelia page and answers the verification if LinkedIn asks for one. You never see the credentials. The account then appears in GET /linkedin/accounts.

The link created with sendEmail: false is valid for 7 days. Asking again for the same email returns the same link with a new expiry date.

Add authId to reconnect an existing account: the link updates that account instead of adding a new one, so its campaigns keep it.

Without sendEmail: false, Emelia emails the link to email and the link does not expire. A second request for the same address is then refused with LINKEDIN_INVITATION_PENDING.

Errors. AUTH_INVALID_EMAIL, INVALID_PARAMETERS, LINKEDIN_ACCOUNT_NOT_FOUND (unknown authId), LINKEDIN_ACCOUNT_LIMIT_REACHED (no free LinkedIn slot).

Authorization

apiKey
Authorization<token>

Your 48 character API key, sent as is (a Bearer prefix is tolerated). Create it at https://v3.emelia.io/settings/api.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/linkedin/invitations" \  -H "Authorization: YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "email": "claire.fontaine@nexora.io",    "sendEmail": false  }'
{  "success": true,  "token": "7b1f0c52-4d7e-4a3a-9a55-0f3ad1c2b8e1",  "url": "https://app.emelia.io/linkedin-connect/7b1f0c52-4d7e-4a3a-9a55-0f3ad1c2b8e1",  "expiresAt": "2026-11-11T10:00:00.000Z"}