Events
curl --request POST \
--url https://api.linkupapi.com/v2/network \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"event_url": "<string>",
"profiles": [
"<string>"
]
}
}
'import requests
url = "https://api.linkupapi.com/v2/network"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"event_url": "<string>",
"profiles": ["<string>"]
}
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_id: '<string>',
action: '<string>',
params: {event_url: '<string>', profiles: ['<string>']}
})
};
fetch('https://api.linkupapi.com/v2/network', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/network",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'action' => '<string>',
'params' => [
'event_url' => '<string>',
'profiles' => [
'<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/network"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"event_url\": \"<string>\",\n \"profiles\": [\n \"<string>\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/network")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"event_url\": \"<string>\",\n \"profiles\": [\n \"<string>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/network")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"event_url\": \"<string>\",\n \"profiles\": [\n \"<string>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"event_id": "7515337029308538883",
"event_urn": "urn:li:fsd_professionalEvent:7515337029308538883",
"name": "Product launch",
"description": "Join us for the live walkthrough.",
"url": "https://www.linkedin.com/events/productlaunch7515337029308538883/",
"vanity_name": "productlaunch7515337029308538883",
"start_at": "2026-10-12T11:00:00Z",
"end_at": "2026-10-12T12:00:00Z",
"start_local": "2026-10-12T13:00:00",
"end_local": "2026-10-12T14:00:00",
"time_zone": "Europe/Paris",
"display_time": "Oct 12, 2026, 1:00 PM - 2:00 PM CEST",
"lifecycle_state": "FUTURE",
"cancelled": false,
"private_event": false,
"organizer_invite_only": false,
"external_url": null,
"streaming_url": null,
"broadcast_tool": null,
"venue": null,
"address": {
"country": "FR",
"city": "Paris",
"line1": "10 rue de la Paix"
},
"organizer": {
"profile_id": "ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"profile_urn": "urn:li:fsd_profile:ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"public_identifier": "douglas-collombat-8aa5863a7",
"name": "Douglas Collombat",
"company_id": null,
"company_urn": null,
"company_universal_name": null,
"company_name": null
},
"co_hosts": [],
"speakers": [
{
"profile_id": "ACoAAAgL-5IBkwG9UY53vuhg5dPPBKae0IcvZTQ",
"profile_urn": "urn:li:fsd_profile:ACoAAAgL-5IBkwG9UY53vuhg5dPPBKae0IcvZTQ",
"public_identifier": "caffeinatedtejal",
"name": "Tejal Rives",
"headline": "Recruiting Leader | Founder of Get Selected",
"role": "SPEAKER",
"state": "APPROVED"
}
],
"attendee_count": 12,
"attendee_visibility": true,
"viewer_status": "INVITED",
"viewer_is_host": false,
"can_invite": false,
"post_urn": "urn:li:ugcPost:7515337032559292416",
"background_image_url": null,
"created_at": "2026-10-12T09:06:16Z"
},
"metadata": {
"action": "get_event",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Event not found"
},
"metadata": {
"action": "get_event",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "event_url or event_id is required"
},
"metadata": {
"action": "get_event",
"credits_consumed": 0,
"timestamp": "2026-10-12T14:02:11Z"
}
}
Network
Events
Read a LinkedIn event and invite members to it.
POST
/
v2
/
network
Events
curl --request POST \
--url https://api.linkupapi.com/v2/network \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"event_url": "<string>",
"profiles": [
"<string>"
]
}
}
'import requests
url = "https://api.linkupapi.com/v2/network"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"event_url": "<string>",
"profiles": ["<string>"]
}
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_id: '<string>',
action: '<string>',
params: {event_url: '<string>', profiles: ['<string>']}
})
};
fetch('https://api.linkupapi.com/v2/network', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/network",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'action' => '<string>',
'params' => [
'event_url' => '<string>',
'profiles' => [
'<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/network"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"event_url\": \"<string>\",\n \"profiles\": [\n \"<string>\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/network")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"event_url\": \"<string>\",\n \"profiles\": [\n \"<string>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/network")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"event_url\": \"<string>\",\n \"profiles\": [\n \"<string>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"event_id": "7515337029308538883",
"event_urn": "urn:li:fsd_professionalEvent:7515337029308538883",
"name": "Product launch",
"description": "Join us for the live walkthrough.",
"url": "https://www.linkedin.com/events/productlaunch7515337029308538883/",
"vanity_name": "productlaunch7515337029308538883",
"start_at": "2026-10-12T11:00:00Z",
"end_at": "2026-10-12T12:00:00Z",
"start_local": "2026-10-12T13:00:00",
"end_local": "2026-10-12T14:00:00",
"time_zone": "Europe/Paris",
"display_time": "Oct 12, 2026, 1:00 PM - 2:00 PM CEST",
"lifecycle_state": "FUTURE",
"cancelled": false,
"private_event": false,
"organizer_invite_only": false,
"external_url": null,
"streaming_url": null,
"broadcast_tool": null,
"venue": null,
"address": {
"country": "FR",
"city": "Paris",
"line1": "10 rue de la Paix"
},
"organizer": {
"profile_id": "ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"profile_urn": "urn:li:fsd_profile:ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"public_identifier": "douglas-collombat-8aa5863a7",
"name": "Douglas Collombat",
"company_id": null,
"company_urn": null,
"company_universal_name": null,
"company_name": null
},
"co_hosts": [],
"speakers": [
{
"profile_id": "ACoAAAgL-5IBkwG9UY53vuhg5dPPBKae0IcvZTQ",
"profile_urn": "urn:li:fsd_profile:ACoAAAgL-5IBkwG9UY53vuhg5dPPBKae0IcvZTQ",
"public_identifier": "caffeinatedtejal",
"name": "Tejal Rives",
"headline": "Recruiting Leader | Founder of Get Selected",
"role": "SPEAKER",
"state": "APPROVED"
}
],
"attendee_count": 12,
"attendee_visibility": true,
"viewer_status": "INVITED",
"viewer_is_host": false,
"can_invite": false,
"post_urn": "urn:li:ugcPost:7515337032559292416",
"background_image_url": null,
"created_at": "2026-10-12T09:06:16Z"
},
"metadata": {
"action": "get_event",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Event not found"
},
"metadata": {
"action": "get_event",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "event_url or event_id is required"
},
"metadata": {
"action": "get_event",
"credits_consumed": 0,
"timestamp": "2026-10-12T14:02:11Z"
}
}
Overview
Two actions on LinkedIn events, both onPOST /v2/network:
get_event: when the event starts and ends, its state, organizer, venue, speakers, and the account’s own status towards it.invite_to_event: invite 1st-degree connections to it.
This endpoint consumes 1 credit per request. Ignore this if you’re on per-seat pricing: usage is unlimited.
string
required
Your API key for authentication.
string
required
The unique identifier of the account to use.
Get event
action: "get_event"
Returns the details of a LinkedIn event from its URL, URN or id: when it starts and ends (as UTC instants and as wall-clock times in the event’s own time zone), whether it is upcoming, ongoing or past, who organizes it, where it happens or streams, and the account’s own status towards it (invited, attending, host).
Request
string
required
Must be
"get_event".object
required
Show params properties
Show params properties
string
required
The event: URL (
https://www.linkedin.com/events/launch7315105458780465155/), urn:li:fsd_professionalEvent:… or the numeric event id. event_id is accepted as an alias.Response
boolean
Indicates whether the request was successful.
object
Show data properties
Show data properties
string
Numeric id of the event.
string
urn:li:fsd_professionalEvent:….string
Event title.
string | null
Event description.
string
Public URL of the event page.
string | null
The slug in the event URL.
string | null
Start, ISO 8601 UTC (e.g.
2026-10-12T11:00:00Z).string | null
End, ISO 8601 UTC.
null when the organizer set no end time.string | null
Start as a wall-clock time in
time_zone (2026-10-12T13:00:00, no offset).string | null
End as a wall-clock time in
time_zone.string | null
IANA time zone of the event (
Europe/Paris).string | null
The time range as LinkedIn displays it (
Oct 12, 2026, 1:00 PM - 2:00 PM CEST).string
FUTURE, ONGOING or PAST.boolean
Whether the organizer cancelled the event.
boolean
Private events are visible to invitees only.
boolean
When
true, only the organizer and co-hosts can invite.string | null
Registration or streaming link outside LinkedIn, when set.
string | null
LinkedIn Live stream URL, when set.
string | null
The streaming tool for a LinkedIn Live event.
string | null
Venue details for an in-person event.
object | null
Postal address for an in-person event (
line1, line2, city, postalCode, country…), only the fields LinkedIn filled.object
Show organizer properties
Show organizer properties
string | null
Member id of the organizing person (
ACoAA…).string | null
urn:li:fsd_profile:… of the organizing person.string | null
Public slug of the organizing person.
string | null
Name of the organizing person.
string | null
Numeric id of the organizing company page, when a page organizes.
string | null
urn:li:fsd_company:… of the organizing page.string | null
Slug of the organizing page.
string | null
Name of the organizing page.
object[]
Co-hosts:
profile_id, profile_urn, public_identifier, name, headline, role, state.object[]
Announced speakers, same shape (
role is SPEAKER, state is APPROVED once the speaker accepted).integer | null
Number of attendees when LinkedIn shows it.
boolean
Whether the attendee list is visible.
string | null
The account’s status towards the event:
INVITED, INTERESTED (attending), NOT_INTERESTED, or null.boolean
true when the account organizes or co-hosts the event.boolean
LinkedIn’s own flag for the account on this event. Indicative only: on a public event LinkedIn still accepts invitations to 1st-degree connections when it is
false (see Invite to event).string | null
Cover image URL.
string | null
When the event was created, ISO 8601 UTC.
object
{
"success": true,
"data": {
"event_id": "7515337029308538883",
"event_urn": "urn:li:fsd_professionalEvent:7515337029308538883",
"name": "Product launch",
"description": "Join us for the live walkthrough.",
"url": "https://www.linkedin.com/events/productlaunch7515337029308538883/",
"vanity_name": "productlaunch7515337029308538883",
"start_at": "2026-10-12T11:00:00Z",
"end_at": "2026-10-12T12:00:00Z",
"start_local": "2026-10-12T13:00:00",
"end_local": "2026-10-12T14:00:00",
"time_zone": "Europe/Paris",
"display_time": "Oct 12, 2026, 1:00 PM - 2:00 PM CEST",
"lifecycle_state": "FUTURE",
"cancelled": false,
"private_event": false,
"organizer_invite_only": false,
"external_url": null,
"streaming_url": null,
"broadcast_tool": null,
"venue": null,
"address": {
"country": "FR",
"city": "Paris",
"line1": "10 rue de la Paix"
},
"organizer": {
"profile_id": "ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"profile_urn": "urn:li:fsd_profile:ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"public_identifier": "douglas-collombat-8aa5863a7",
"name": "Douglas Collombat",
"company_id": null,
"company_urn": null,
"company_universal_name": null,
"company_name": null
},
"co_hosts": [],
"speakers": [
{
"profile_id": "ACoAAAgL-5IBkwG9UY53vuhg5dPPBKae0IcvZTQ",
"profile_urn": "urn:li:fsd_profile:ACoAAAgL-5IBkwG9UY53vuhg5dPPBKae0IcvZTQ",
"public_identifier": "caffeinatedtejal",
"name": "Tejal Rives",
"headline": "Recruiting Leader | Founder of Get Selected",
"role": "SPEAKER",
"state": "APPROVED"
}
],
"attendee_count": 12,
"attendee_visibility": true,
"viewer_status": "INVITED",
"viewer_is_host": false,
"can_invite": false,
"post_urn": "urn:li:ugcPost:7515337032559292416",
"background_image_url": null,
"created_at": "2026-10-12T09:06:16Z"
},
"metadata": {
"action": "get_event",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Event not found"
},
"metadata": {
"action": "get_event",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "event_url or event_id is required"
},
"metadata": {
"action": "get_event",
"credits_consumed": 0,
"timestamp": "2026-10-12T14:02:11Z"
}
}
Invite to event
action: "invite_to_event"
Invites one or more members to a LinkedIn event, the same way the Invite button on the event page does. LinkedIn only lets you invite your 1st-degree connections. On a public event any member can invite their connections; on a private or organizer-only event, the organizer and co-hosts. The event is read first: a deleted or cancelled event is refused before any invitation is sent.
Up to 50 profiles per call. Each profile is resolved first; a profile LinkedIn cannot find is reported in results and does not block the others.
Request
string
required
Must be
"invite_to_event".object
required
Show params properties
Show params properties
string
required
The event: URL (
https://www.linkedin.com/events/7315105458780465155/), urn:li:fsd_professionalEvent:… or the numeric event id. event_id is accepted as an alias.string[]
required
The people to invite (max 50): profile URLs, public slugs, member ids (
ACoAA…) or urn:li:fsd_profile:…. A single profile_url string is accepted for one person.Response
boolean
Indicates whether the request was successful.
object
Show data properties
Show data properties
string
Numeric id of the event.
string
urn:li:fsd_professionalEvent:… of the event.string | null
Title of the event.
integer
How many of the profiles were invited.
object[]
One entry per profile given, in order.
Show result properties
Show result properties
string
The profile as you passed it.
string
Resolved member id (
ACoAA…), when found.string
Resolved
urn:li:fsd_profile:…, when found.string
invited, or error.string
Id of the created invitation, as a string (19 digits). Inviting someone already invited returns the existing invitation.
string
urn:li:fsd_invitation:… of the invitation.string
Why this person was not invited (only on
error).string
LinkedIn’s own refusal code for this person, when it gives one (e.g. already invited, already attending).
object
{
"success": true,
"data": {
"event_id": "7315105458780465155",
"event_urn": "urn:li:fsd_professionalEvent:7315105458780465155",
"event_name": "Product launch",
"invited_count": 1,
"results": [
{
"profile": "https://www.linkedin.com/in/john-doe/",
"profile_id": "ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"profile_urn": "urn:li:fsd_profile:ACoAAGOTIYIBlqheYWb-Mm6ygh4ErjKMId2CNMo",
"status": "invited",
"invitation_id": "7515337837941141504",
"invitation_urn": "urn:li:fsd_invitation:7515337837941141504"
},
{
"profile": "no-such-person-xyz",
"status": "error",
"message": "Profile not found"
}
]
},
"metadata": {
"action": "invite_to_event",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Event not found"
},
"metadata": {
"action": "invite_to_event",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "LinkedIn refused the invitation: this account cannot invite people to this event."
},
"metadata": {
"action": "invite_to_event",
"credits_consumed": 1,
"timestamp": "2026-10-12T14:02:11Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "profiles is required: a list of profile URLs, slugs or member ids (or profile_url for one)"
},
"metadata": {
"action": "invite_to_event",
"credits_consumed": 0,
"timestamp": "2026-10-12T14:02:11Z"
}
}
Was this page helpful?