Create Company Post
curl --request POST \
--url https://api.linkupapi.com/v2/content \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"company_url": "<string>",
"message": "<string>",
"file": {
"filename": "<string>",
"data": "<string>"
},
"thumbnail": {},
"files": [
{
"filename": "<string>",
"data": "<string>",
"altText": "<string>"
}
]
}
}
'import requests
url = "https://api.linkupapi.com/v2/content"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"company_url": "<string>",
"message": "<string>",
"file": {
"filename": "<string>",
"data": "<string>"
},
"thumbnail": {},
"files": [
{
"filename": "<string>",
"data": "<string>",
"altText": "<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: {
company_url: '<string>',
message: '<string>',
file: {filename: '<string>', data: '<string>'},
thumbnail: {},
files: [{filename: '<string>', data: '<string>', altText: '<string>'}]
}
})
};
fetch('https://api.linkupapi.com/v2/content', 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/content",
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' => [
'company_url' => '<string>',
'message' => '<string>',
'file' => [
'filename' => '<string>',
'data' => '<string>'
],
'thumbnail' => [
],
'files' => [
[
'filename' => '<string>',
'data' => '<string>',
'altText' => '<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/content"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"company_url\": \"<string>\",\n \"message\": \"<string>\",\n \"file\": {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n },\n \"thumbnail\": {},\n \"files\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\",\n \"altText\": \"<string>\"\n }\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/content")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"company_url\": \"<string>\",\n \"message\": \"<string>\",\n \"file\": {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n },\n \"thumbnail\": {},\n \"files\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\",\n \"altText\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/content")
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 \"company_url\": \"<string>\",\n \"message\": \"<string>\",\n \"file\": {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n },\n \"thumbnail\": {},\n \"files\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\",\n \"altText\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7654321098765432100",
"post_urn": "urn:li:activity:7654321098765432100"
},
"metadata": {
"action": "create_company",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "You must be an admin of the company page to create posts."
},
"metadata": {
"action": "create_company",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Content
Create Company Post
Create a new post on a company page.
POST
/
v2
/
content
Create Company Post
curl --request POST \
--url https://api.linkupapi.com/v2/content \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"company_url": "<string>",
"message": "<string>",
"file": {
"filename": "<string>",
"data": "<string>"
},
"thumbnail": {},
"files": [
{
"filename": "<string>",
"data": "<string>",
"altText": "<string>"
}
]
}
}
'import requests
url = "https://api.linkupapi.com/v2/content"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"company_url": "<string>",
"message": "<string>",
"file": {
"filename": "<string>",
"data": "<string>"
},
"thumbnail": {},
"files": [
{
"filename": "<string>",
"data": "<string>",
"altText": "<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: {
company_url: '<string>',
message: '<string>',
file: {filename: '<string>', data: '<string>'},
thumbnail: {},
files: [{filename: '<string>', data: '<string>', altText: '<string>'}]
}
})
};
fetch('https://api.linkupapi.com/v2/content', 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/content",
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' => [
'company_url' => '<string>',
'message' => '<string>',
'file' => [
'filename' => '<string>',
'data' => '<string>'
],
'thumbnail' => [
],
'files' => [
[
'filename' => '<string>',
'data' => '<string>',
'altText' => '<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/content"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"company_url\": \"<string>\",\n \"message\": \"<string>\",\n \"file\": {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n },\n \"thumbnail\": {},\n \"files\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\",\n \"altText\": \"<string>\"\n }\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/content")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"company_url\": \"<string>\",\n \"message\": \"<string>\",\n \"file\": {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n },\n \"thumbnail\": {},\n \"files\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\",\n \"altText\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/content")
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 \"company_url\": \"<string>\",\n \"message\": \"<string>\",\n \"file\": {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n },\n \"thumbnail\": {},\n \"files\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\",\n \"altText\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7654321098765432100",
"post_urn": "urn:li:activity:7654321098765432100"
},
"metadata": {
"action": "create_company",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "You must be an admin of the company page to create posts."
},
"metadata": {
"action": "create_company",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Overview
Create a post on a company page. The authenticated account must be an admin of the specified company page.This endpoint consumes 1 credit per request. Ignore this if you’re on per-seat pricing: usage is unlimited.
You must be an admin of the company page to create posts on its behalf.
Request
string
required
Your API key for authentication.
string
required
The unique identifier of the account to use.
string
required
Must be
"create_company".object
required
Show params properties
Show params properties
string
required
The URL of the company page on the connected platform (e.g.
"https://www.linkedin.com/company/acme-corp").string
The text content of the post. Supports hashtags (
#tag), line breaks and people mentions.
To mention someone, use mention_user(public_id, display_text) where public_id is the slug of their profile URL (linkedin.com/in/<public_id>) and display_text is the clickable text shown in the post — e.g. "Great talk mention_user(williamhgates, Bill Gates)!". To mention a company page, use mention_company(slug, display_text) where slug is from linkedin.com/company/<slug> — e.g. "Proud to partner with mention_company(microsoft, Microsoft)".string | object
A single file to attach — an image (
.jpg, .png, .gif, .webp), a video (.mp4, .mov, .webm…) or a document (.pdf, .doc, .docx, .ppt, .pptx), which LinkedIn publishes as a page carousel. Can be a URL string or an object with filename and data properties.string | object
Custom cover image for a video post. Only valid when
file is a single video (.mp4, .mov, .webm…). Same format as file: a URL string or an object with filename and data (base64). Without it, LinkedIn picks a frame of the video.array
Response
boolean
Indicates whether the request was successful.
object
object
{
"success": true,
"data": {
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7654321098765432100",
"post_urn": "urn:li:activity:7654321098765432100"
},
"metadata": {
"action": "create_company",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "You must be an admin of the company page to create posts."
},
"metadata": {
"action": "create_company",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Was this page helpful?