curl --request GET \
--url https://api.scraperize.com/v1/linkedin/post/transcript \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/linkedin/post/transcript"
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/transcript', 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/transcript",
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/transcript"
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/transcript")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/linkedin/post/transcript")
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": {
"post": {
"url": "https://www.linkedin.com/posts/artificial-analysis_gemini-35-flash-is-a-step-forward-for-google-activity-7465082408409870337-4Pm-"
},
"transcript": "Hey, my name is Declan Jackson. I am a member of technical staff here at Artificial Analysis and I'm going to do a quick chat through the recent release of Gemini 3.5 Flash. This release is really interesting because Google have really prioritized 2 things with this release, but it has come at a bit of a cost. So with this release of Gemini 3.5 Flash, Google have focused on speed and they're focused on agent capabilities. So in terms of speed, Gemini 3.5 Flash we measured in our pre release testing at about 280. Output tokens per second, which is pretty impressive for a model of that level of intelligence. So this really puts it on the Predo frontier of speed and intelligence. Now this also is a massive jump from Gemini 3 flash speeds and also puts it ahead of a model like GPT 5.4 mini. Now on agenti capabilities, it has a massive uplift from Gemini 3 flash and even more so than Gemini 3.1 pro and agender capabilities has been a bit of a weakness for Google in the past. So it's really good to see that they've uplifted that, especially we've seen in our real world task agentic eval GDP Val, a Gemini 3.5 flash records an ELO of around 1650. So this is a head of Gemini 3.1 Pro and other models like Kimmy K 2.6, GLM 5.1. But as I mentioned this does come with a bit of a trade off. The model costs around 5X the cost to run compared to Gemini 3 flush. This is made-up of two factors #1 the actual token price is a lot higher. So the token price is 3X that of Gemini 3 Flash at 1.5 per million input and $9 per million output. We also find that it is using. Tokens on these evaluations. So it's reasoning more and it's also using more turns on our genetic evaluations, which is going to mean that it's going to cost more to run. So it's a really interesting tradeoff here. Speed and intelligence is really improved, but cost is also really increased.",
"fetchedAt": "2026-10-05T14:46:40.727Z"
},
"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 transcript
Fetches a public LinkedIn post and returns the transcript of its video, when LinkedIn exposes one. Most useful for video posts: the transcript is returned as plain text. If the post has no video, or the video has no transcript, transcript is null. Only the post URL and transcript are returned — all other post fields are on GET /v1/linkedin/post.
curl --request GET \
--url https://api.scraperize.com/v1/linkedin/post/transcript \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/linkedin/post/transcript"
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/transcript', 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/transcript",
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/transcript"
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/transcript")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/linkedin/post/transcript")
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": {
"post": {
"url": "https://www.linkedin.com/posts/artificial-analysis_gemini-35-flash-is-a-step-forward-for-google-activity-7465082408409870337-4Pm-"
},
"transcript": "Hey, my name is Declan Jackson. I am a member of technical staff here at Artificial Analysis and I'm going to do a quick chat through the recent release of Gemini 3.5 Flash. This release is really interesting because Google have really prioritized 2 things with this release, but it has come at a bit of a cost. So with this release of Gemini 3.5 Flash, Google have focused on speed and they're focused on agent capabilities. So in terms of speed, Gemini 3.5 Flash we measured in our pre release testing at about 280. Output tokens per second, which is pretty impressive for a model of that level of intelligence. So this really puts it on the Predo frontier of speed and intelligence. Now this also is a massive jump from Gemini 3 flash speeds and also puts it ahead of a model like GPT 5.4 mini. Now on agenti capabilities, it has a massive uplift from Gemini 3 flash and even more so than Gemini 3.1 pro and agender capabilities has been a bit of a weakness for Google in the past. So it's really good to see that they've uplifted that, especially we've seen in our real world task agentic eval GDP Val, a Gemini 3.5 flash records an ELO of around 1650. So this is a head of Gemini 3.1 Pro and other models like Kimmy K 2.6, GLM 5.1. But as I mentioned this does come with a bit of a trade off. The model costs around 5X the cost to run compared to Gemini 3 flush. This is made-up of two factors #1 the actual token price is a lot higher. So the token price is 3X that of Gemini 3 Flash at 1.5 per million input and $9 per million output. We also find that it is using. Tokens on these evaluations. So it's reasoning more and it's also using more turns on our genetic evaluations, which is going to mean that it's going to cost more to run. So it's a really interesting tradeoff here. Speed and intelligence is really improved, but cost is also really increased.",
"fetchedAt": "2026-10-05T14:46:40.727Z"
},
"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/transcript. Here are the details:
Endpoint: GET https://api.scraperize.com/v1/linkedin/post/transcript
Description: Fetches a public LinkedIn post and returns the transcript of its video, when LinkedIn exposes one. Most useful for video posts: the transcript is returned as plain text. If the post has no video, or the video has no transcript, `transcript` is `null`. Only the post URL and transcript are returned — all other post fields are on `GET /v1/linkedin/post`.
Required Headers:
- x-api-key: Your API key
Parameters:
- url (string) [required]: The URL of the LinkedIn post, e.g. `https://www.linkedin.com/posts/<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": {
"post": {
"url": "https://www.linkedin.com/posts/artificial-analysis_gemini-35-flash-is-a-step-forward-for-google-activity-7465082408409870337-4Pm-"
},
"transcript": "Hey, my name is Declan Jackson. I am a member of technical staff here at Artificial Analysis and I'm going to do a quick chat through the recent release of Gemi…",
"fetchedAt": "2026-10-05T14:46:40.727Z"
},
"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, e.g. https://www.linkedin.com/posts/<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