curl --request GET \
--url https://api.scraperize.com/v1/linkedin/post \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/linkedin/post"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/linkedin/post', 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.scraperize.com/v1/linkedin/post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/linkedin/post"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/linkedin/post")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/linkedin/post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"content": {
"type": "post",
"id": "7483148510742343680",
"url": "https://www.linkedin.com/posts/shopify_the-preparedness-paradox-wait-for-ready-activity-7483148510742343680-cNqc",
"title": "The preparedness paradox: Wait for “ready,” and it might never come",
"excerpt": "57% of U.S.",
"body": "57% of U.S. founders who waited before launching a business wish they’d started sooner.\n\nWe surveyed aspiring entrepreneurs and business owners across five countries to find out what holds people back.\n\nThe top reasons: not enough money, an idea still taking shape, and not feeling prepared.\n\nThey’re the same reasons current founders once gave. But the conditions have changed. \n\nMost respondents say starting a business is more accessible than ever and requires less formal training or credentials. AI has lowered the cost and complexity. \n\nFounders aren’t waiting for a plan either. In four of the five countries, around 70% worked through their earliest challenges by trial and error.\n\nReady isn’t a feeling you arrive at. It’s what happens after you start. \nhttps://lnkd.in/gMCKE5Yn",
"coverImageUrl": "https://media.licdn.com/dms/image/sync/v2/D5627AQFnTFkSXuQaVg/articleshare-shrink_800/B56Z9cGnSeGgAY-/0/1783956666107?e=2147483647&v=beta&t=2PgncJMqtEz69n4nfnAuNMFpMsmaIu7OTXuzNJ-8IUk",
"author": {
"name": "Shopify",
"url": "https://ca.linkedin.com/company/shopify",
"imageUrl": "https://media.licdn.com/dms/image/v2/D560BAQG_KjTcNcrLVw/company-logo_100_100/B56ZZolTV.HUAc-/0/1745511331439/shopify_logo?e=2147483647&v=beta&t=nXMs-vUElNvDVFNmabs-Pd03SF2Rph4CfU7R1SdRPU0",
"type": "organization",
"followerCount": 1113098
},
"publishedAt": "2026-07-15T13:20:35.118Z",
"modifiedAt": null,
"readingTime": null,
"isAccessibleForFree": null,
"likeCount": 114,
"commentCount": 38,
"comments": [
{
"author": {
"name": "Biren Poriya",
"url": "https://au.linkedin.com/in/biren-poriya",
"imageUrl": null
},
"text": "The barrier is shifting from capital to conviction.\nExecution is becoming the scarcest differentiator.",
"publishedAt": "2026-07-16T04:09:31.257Z",
"postedAgo": null,
"likeCount": 8
},
{
"author": {
"name": "M2E Cloud",
"url": "https://uk.linkedin.com/showcase/m2ecloud/",
"imageUrl": null
},
"text": "We couldn’t agree more. Most founders don’t become ready first, they become ready by doing. Every step teaches something you could never learn by waiting. \nAnd if you’re still hesitating: just keep going. 🙌",
"publishedAt": "2026-07-16T12:40:59.905Z",
"postedAgo": null,
"likeCount": 2
},
{
"author": {
"name": "Khandaker Md. Saiful Islam",
"url": "https://bd.linkedin.com/in/sinafees",
"imageUrl": null
},
"text": "Great insights! Many people wait for the perfect time, perfect idea, or perfect preparation before starting. But real growth comes from taking action, learning, and improving along the way.\nAs a Shopify Developer, I’ve seen many businesses grow by starting small, testing ideas, improving their online store, and focusing on customers. A good store is not built overnight - it’s improved step by step.\nThe important thing is to start, adapt, and keep moving forward. 🚀",
"publishedAt": "2026-07-19T07:08:00.440Z",
"postedAgo": null,
"likeCount": 3
}
],
"moreArticles": [],
"images": [],
"media": null
},
"fetchedAt": "2026-10-05T14:46:38.955Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Post
Fetches a public LinkedIn post or Pulse article and returns it as clean JSON. Works for both content types: a feed post (linkedin.com/posts/<slug>) or a long-form article (linkedin.com/pulse/<slug>) — the response type tells you which. Posts include any photos as an images array, and a rich attachment under media — either a video (stream url, thumbnail, duration, dimensions, embed url) or a document/slide deck (source url, title, page count, and the guest-visible slide images). Returns the id, canonical url, title, excerpt, full body, cover image, author (name, url, image, follower count), published/modified dates, reading time (articles), like and comment counts, the publicly rendered comments (each with the commenter’s name and profile url), and — for an article — the related “Others also viewed” articles. Only public data is returned.
curl --request GET \
--url https://api.scraperize.com/v1/linkedin/post \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/linkedin/post"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/linkedin/post', 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.scraperize.com/v1/linkedin/post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/linkedin/post"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/linkedin/post")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/linkedin/post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"content": {
"type": "post",
"id": "7483148510742343680",
"url": "https://www.linkedin.com/posts/shopify_the-preparedness-paradox-wait-for-ready-activity-7483148510742343680-cNqc",
"title": "The preparedness paradox: Wait for “ready,” and it might never come",
"excerpt": "57% of U.S.",
"body": "57% of U.S. founders who waited before launching a business wish they’d started sooner.\n\nWe surveyed aspiring entrepreneurs and business owners across five countries to find out what holds people back.\n\nThe top reasons: not enough money, an idea still taking shape, and not feeling prepared.\n\nThey’re the same reasons current founders once gave. But the conditions have changed. \n\nMost respondents say starting a business is more accessible than ever and requires less formal training or credentials. AI has lowered the cost and complexity. \n\nFounders aren’t waiting for a plan either. In four of the five countries, around 70% worked through their earliest challenges by trial and error.\n\nReady isn’t a feeling you arrive at. It’s what happens after you start. \nhttps://lnkd.in/gMCKE5Yn",
"coverImageUrl": "https://media.licdn.com/dms/image/sync/v2/D5627AQFnTFkSXuQaVg/articleshare-shrink_800/B56Z9cGnSeGgAY-/0/1783956666107?e=2147483647&v=beta&t=2PgncJMqtEz69n4nfnAuNMFpMsmaIu7OTXuzNJ-8IUk",
"author": {
"name": "Shopify",
"url": "https://ca.linkedin.com/company/shopify",
"imageUrl": "https://media.licdn.com/dms/image/v2/D560BAQG_KjTcNcrLVw/company-logo_100_100/B56ZZolTV.HUAc-/0/1745511331439/shopify_logo?e=2147483647&v=beta&t=nXMs-vUElNvDVFNmabs-Pd03SF2Rph4CfU7R1SdRPU0",
"type": "organization",
"followerCount": 1113098
},
"publishedAt": "2026-07-15T13:20:35.118Z",
"modifiedAt": null,
"readingTime": null,
"isAccessibleForFree": null,
"likeCount": 114,
"commentCount": 38,
"comments": [
{
"author": {
"name": "Biren Poriya",
"url": "https://au.linkedin.com/in/biren-poriya",
"imageUrl": null
},
"text": "The barrier is shifting from capital to conviction.\nExecution is becoming the scarcest differentiator.",
"publishedAt": "2026-07-16T04:09:31.257Z",
"postedAgo": null,
"likeCount": 8
},
{
"author": {
"name": "M2E Cloud",
"url": "https://uk.linkedin.com/showcase/m2ecloud/",
"imageUrl": null
},
"text": "We couldn’t agree more. Most founders don’t become ready first, they become ready by doing. Every step teaches something you could never learn by waiting. \nAnd if you’re still hesitating: just keep going. 🙌",
"publishedAt": "2026-07-16T12:40:59.905Z",
"postedAgo": null,
"likeCount": 2
},
{
"author": {
"name": "Khandaker Md. Saiful Islam",
"url": "https://bd.linkedin.com/in/sinafees",
"imageUrl": null
},
"text": "Great insights! Many people wait for the perfect time, perfect idea, or perfect preparation before starting. But real growth comes from taking action, learning, and improving along the way.\nAs a Shopify Developer, I’ve seen many businesses grow by starting small, testing ideas, improving their online store, and focusing on customers. A good store is not built overnight - it’s improved step by step.\nThe important thing is to start, adapt, and keep moving forward. 🚀",
"publishedAt": "2026-07-19T07:08:00.440Z",
"postedAgo": null,
"likeCount": 3
}
],
"moreArticles": [],
"images": [],
"media": null
},
"fetchedAt": "2026-10-05T14:46:38.955Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}cache_max_age) are free.Copy for AI assistant
Copy for AI assistant
I want to make an API call to /v1/linkedin/post. Here are the details:
Endpoint: GET https://api.scraperize.com/v1/linkedin/post
Description: Fetches a public LinkedIn post or Pulse article and returns it as clean JSON. Works for both content types: a feed **post** (`linkedin.com/posts/<slug>`) or a long-form **article** (`linkedin.com/pulse/<slug>`) — the response `type` tells you which. Posts include any photos as an `images` array, and a rich attachment under `media` — either a video (stream url, thumbnail, duration, dimensions, embed url) or a document/slide deck (source url, title, page count, and the guest-visible slide images). Returns the id, canonical url, title, excerpt, full body, cover image, author (name, url, image, follower count), published/modified dates, reading time (articles), like and comment counts, the publicly rendered comments (each with the commenter's name and profile url), and — for an article — the related "Others also viewed" articles. Only public data is returned.
Required Headers:
- x-api-key: Your API key
Parameters:
- url (string) [required]: The URL of the LinkedIn post (`https://www.linkedin.com/posts/<slug>`) or article (`https://www.linkedin.com/pulse/<slug>`).
- cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
Example Response:
{
"data": {
"content": {
"type": "post",
"id": "7483148510742343680",
"url": "https://www.linkedin.com/posts/shopify_the-preparedness-paradox-wait-for-ready-activity-7483148510742343680-cNqc",
"title": "The preparedness paradox: Wait for “ready,” and it might never come",
"excerpt": "57% of U.S.",
"body": "57% of U.S. founders who waited before launching a business wish they’d started sooner.\n\nWe surveyed aspiring entrepreneurs and business owners across five coun…",
"coverImageUrl": "https://media.licdn.com/dms/image/sync/v2/D5627AQFnTFkSXuQaVg/articleshare-shrink_800/B56Z9cGnSeGgAY-/0/1783956666107?e=2147483647&v=beta&t=2PgncJMqtEz69n4nfnAu…",
"author": {
"name": "Shopify",
"url": "https://ca.linkedin.com/company/shopify",
"imageUrl": "https://media.licdn.com/dms/image/v2/D560BAQG_KjTcNcrLVw/company-logo_100_100/B56ZZolTV.HUAc-/0/1745511331439/shopify_logo?e=2147483647&v=beta&t=nXMs-vUElNvDVFN…",
"type": "organization",
"followerCount": 1113098
},
"publishedAt": "2026-07-15T13:20:35.118Z",
"modifiedAt": null,
"readingTime": null,
"isAccessibleForFree": null,
"likeCount": 114,
"commentCount": 38,
"comments": [
{
"author": {
"name": "Biren Poriya",
"url": "https://au.linkedin.com/in/biren-poriya",
"imageUrl": null
},
"text": "The barrier is shifting from capital to conviction.\nExecution is becoming the scarcest differentiator.",
"publishedAt": "2026-07-16T04:09:31.257Z",
"postedAgo": null,
"likeCount": 8
}
],
"moreArticles": [],
"images": [],
"media": null
},
"fetchedAt": "2026-10-05T14:46:38.955Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}
Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
Authorizations
Your API key. Send it in the x-api-key header (or Authorization: Bearer <key>). Create and manage keys from your dashboard.
Query Parameters
The URL of the LinkedIn post (https://www.linkedin.com/posts/<slug>) or article (https://www.linkedin.com/pulse/<slug>).
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.
1d, 3d, 7d, 14d, 30d