Instagram — pinned comment by post
curl --request POST \
--url https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://www.instagram.com/reel/DduKh1MBtQa/"
}
'import requests
url = "https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment"
payload = { "url": "https://www.instagram.com/reel/DduKh1MBtQa/" }
headers = {
"x-api-key": "<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': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://www.instagram.com/reel/DduKh1MBtQa/'})
};
fetch('https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment', 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://app.sideshift.app/api/v1/scrape/instagram/pinned-comment",
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([
'url' => 'https://www.instagram.com/reel/DduKh1MBtQa/'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment"
payload := strings.NewReader("{\n \"url\": \"https://www.instagram.com/reel/DduKh1MBtQa/\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://app.sideshift.app/api/v1/scrape/instagram/pinned-comment")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://www.instagram.com/reel/DduKh1MBtQa/\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://www.instagram.com/reel/DduKh1MBtQa/\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"pin_status": "resolved",
"has_pinned_comment": true,
"pinned_comments": [
{
"id": "17909719860506226",
"author": "teatimewithsi",
"text": "The site I used to find …",
"likeCount": 0,
"replyCount": 0,
"timestamp": 1791055609,
"isPinned": true,
"isCreator": true
}
],
"comment_count": 39,
"creator_comments": [
{
"id": "17909719860506226",
"author": "teatimewithsi",
"text": "The site I used to find …",
"likeCount": 0,
"replyCount": 0,
"timestamp": 1791055609,
"isPinned": true,
"isCreator": true
}
],
"comments_disabled": false
},
"request_id": "req_8f3c9a2b1d4e6f70",
"upstream_calls": 1,
"meta": {
"credits_charged": 1,
"credits_remaining": 9998
}
}{
"error": "INVALID_INPUT",
"message": "Invalid username: must match @?[a-zA-Z0-9._-]{1,100}",
"field": "username",
"reason": "must match @?[a-zA-Z0-9._-]{1,100}",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UNAUTHORIZED",
"message": "Scraper routes require an independent scraper key from the Scraper API dashboard.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "INSUFFICIENT_SCRAPER_CREDITS",
"message": "Insufficient scraper credits",
"platform": "tiktok",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "POST_NOT_FOUND",
"message": "Post not found or unavailable.",
"platform": "instagram",
"identifier": "https://instagram.com/reel/XXXX/",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "PAYLOAD_TOO_LARGE",
"message": "Request body must be 32KB or smaller",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "SCRAPER_RATE_LIMITED",
"message": "Scraper API rate limit exceeded",
"platform": "tiktok",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "SCRAPER_USAGE_FINALIZE_FAILED",
"message": "Request could not be finalized. Your credits were refunded.",
"platform": "tiktok",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_ERROR",
"message": "Data source failed. Your credits were refunded.",
"platform": "youtube",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_TIMEOUT",
"message": "Data source timed out. Your credits were refunded.",
"platform": "facebook",
"request_id": "req_8f3c9a2b1d4e6f70"
}Instagram — pinned comment by post
1 credit per request
Returns only the pinned comments of one Instagram post or reel, for checking that a creator pinned a required comment without fetching the whole post. A pinned comment is found regardless of where it would rank, and isCreator confirms the post’s owner wrote it. Also returns the owner’s own comments and whether comments are turned off. Billed at your account’s post rate.
POST
/
scrape
/
instagram
/
pinned-comment
Instagram — pinned comment by post
curl --request POST \
--url https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://www.instagram.com/reel/DduKh1MBtQa/"
}
'import requests
url = "https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment"
payload = { "url": "https://www.instagram.com/reel/DduKh1MBtQa/" }
headers = {
"x-api-key": "<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': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://www.instagram.com/reel/DduKh1MBtQa/'})
};
fetch('https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment', 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://app.sideshift.app/api/v1/scrape/instagram/pinned-comment",
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([
'url' => 'https://www.instagram.com/reel/DduKh1MBtQa/'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment"
payload := strings.NewReader("{\n \"url\": \"https://www.instagram.com/reel/DduKh1MBtQa/\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://app.sideshift.app/api/v1/scrape/instagram/pinned-comment")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://www.instagram.com/reel/DduKh1MBtQa/\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sideshift.app/api/v1/scrape/instagram/pinned-comment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://www.instagram.com/reel/DduKh1MBtQa/\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"pin_status": "resolved",
"has_pinned_comment": true,
"pinned_comments": [
{
"id": "17909719860506226",
"author": "teatimewithsi",
"text": "The site I used to find …",
"likeCount": 0,
"replyCount": 0,
"timestamp": 1791055609,
"isPinned": true,
"isCreator": true
}
],
"comment_count": 39,
"creator_comments": [
{
"id": "17909719860506226",
"author": "teatimewithsi",
"text": "The site I used to find …",
"likeCount": 0,
"replyCount": 0,
"timestamp": 1791055609,
"isPinned": true,
"isCreator": true
}
],
"comments_disabled": false
},
"request_id": "req_8f3c9a2b1d4e6f70",
"upstream_calls": 1,
"meta": {
"credits_charged": 1,
"credits_remaining": 9998
}
}{
"error": "INVALID_INPUT",
"message": "Invalid username: must match @?[a-zA-Z0-9._-]{1,100}",
"field": "username",
"reason": "must match @?[a-zA-Z0-9._-]{1,100}",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UNAUTHORIZED",
"message": "Scraper routes require an independent scraper key from the Scraper API dashboard.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "INSUFFICIENT_SCRAPER_CREDITS",
"message": "Insufficient scraper credits",
"platform": "tiktok",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "POST_NOT_FOUND",
"message": "Post not found or unavailable.",
"platform": "instagram",
"identifier": "https://instagram.com/reel/XXXX/",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "PAYLOAD_TOO_LARGE",
"message": "Request body must be 32KB or smaller",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "SCRAPER_RATE_LIMITED",
"message": "Scraper API rate limit exceeded",
"platform": "tiktok",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "SCRAPER_USAGE_FINALIZE_FAILED",
"message": "Request could not be finalized. Your credits were refunded.",
"platform": "tiktok",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_ERROR",
"message": "Data source failed. Your credits were refunded.",
"platform": "youtube",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_TIMEOUT",
"message": "Data source timed out. Your credits were refunded.",
"platform": "facebook",
"request_id": "req_8f3c9a2b1d4e6f70"
}Authorizations
Independent Scraper API key (scrape_live_*). Generate one in the Scraper dashboard.
Body
application/json
An Instagram post, reel, or TV URL, or a bare shortcode. The plural /reels/{code}/ share link is accepted.
Example:
"https://www.instagram.com/reel/DduKh1MBtQa/"