Instagram Posts API

Beta

Returns a public Instagram account's posts, reels and carousels as they appear on its profile grid, newest first, page by page: caption with hashtags and mentions, publish time, author and collaborators, every carousel item's image or video with its size and duration, tagged accounts, pinned posts, and like, comment and (for videos) view counts. Accepts a username or any profile link.

Get 100 free creditsAPI referenceTry it

Price
From 1 credit per page$0.75–$1.45 per 1,000 pages
Request
GET /v1/instagram/postsOne API key, one JSON schema
Input
handlee.g. nasa
Page size
Up to 12 posts

Use cases

What teams build with it. From one request.

  • Monitor an account's new posts and reels since a date
  • Benchmark engagement across creators and brands
  • Collect captions, hashtags and tagged accounts for social listening
  • Archive an account's posts and media
  • Find an influencer's collaborations and brand tags

What you get

Posts in one schema. The same on every platform.

platformstring
Platform ID (tiktok, youtube, …).
idstring
Platform-native post ID (string; Instagram shortcode, Reddit without t3_).
urlstring
Canonical post URL.
typestring
Normalized content shape. New values may be added; treat unknown values as other.
platform_typestring
The platform's own product label, lowercase (reel, short, story, live, tweet, …).
titlestring
Headline (YouTube title, Reddit title); null on caption-only platforms.
textstring
Caption, description or body as plain text.
languagestring
BCP-47 language of text, when the platform states it.

Every field, its type and when it is null: the response reference and the post schema.

Example request

cURL
curl -G 'https://staging-fly.socialtap.dev/v1/instagram/posts' \
  --data-urlencode 'handle=nasa' \
  -H "x-api-key: $SOCIALTAP_API_KEY"
Node.js
const params = new URLSearchParams({
  handle: "nasa",
});
const res = await fetch(`https://staging-fly.socialtap.dev/v1/instagram/posts?${params}`, {
  headers: { "x-api-key": process.env.SOCIALTAP_API_KEY ?? "" },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`);
const { data, page, meta } = body;
console.log(data, meta.credits_charged);
Python
import os

import requests

res = requests.get(
    "https://staging-fly.socialtap.dev/v1/instagram/posts",
    params={"handle": "nasa"},
    headers={"x-api-key": os.environ["SOCIALTAP_API_KEY"]},
)
body = res.json()
if not res.ok:
    raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
data, page, meta = body["data"], body["page"], body["meta"]
print(data, meta["credits_charged"])
Go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"net/url"
	"os"
)

func main() {
	q := url.Values{}
	q.Set("handle", "nasa")
	req, err := http.NewRequest("GET", "https://staging-fly.socialtap.dev/v1/instagram/posts?"+q.Encode(), nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("x-api-key", os.Getenv("SOCIALTAP_API_KEY"))
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()
	var body struct {
		Data  json.RawMessage `json:"data"`
		Page  json.RawMessage `json:"page"`
		Meta  map[string]any  `json:"meta"`
		Error *struct {
			Code    string `json:"code"`
			Message string `json:"message"`
		} `json:"error"`
	}
	if err := json.NewDecoder(res.Body).Decode(&body); err != nil {
		log.Fatal(err)
	}
	if body.Error != nil {
		log.Fatalf("%s: %s", body.Error.Code, body.Error.Message)
	}
	fmt.Println(string(body.Data), body.Meta["credits_charged"])
}
PHP
<?php

$query = http_build_query([
    'handle' => 'nasa',
]);
$ch = curl_init('https://staging-fly.socialtap.dev/v1/instagram/posts?' . $query);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['x-api-key: ' . getenv('SOCIALTAP_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
if (curl_getinfo($ch, CURLINFO_RESPONSE_CODE) >= 400) {
    throw new RuntimeException($body['error']['code'] . ': ' . $body['error']['message']);
}
print_r($body['data']);
echo $body['meta']['credits_charged'], PHP_EOL;
Ruby
require "json"
require "net/http"

uri = URI("https://staging-fly.socialtap.dev/v1/instagram/posts")
uri.query = URI.encode_www_form('handle' => 'nasa')
req = Net::HTTP::Get.new(uri)
req["x-api-key"] = ENV.fetch("SOCIALTAP_API_KEY")
res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(req) }
body = JSON.parse(res.body)
raise "#{body["error"]["code"]}: #{body["error"]["message"]}" unless res.is_a?(Net::HTTPSuccess)
pp body["data"]
puts body["meta"]["credits_charged"]
Java
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) throws Exception {
        String query = "handle=" + encode("nasa");
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://staging-fly.socialtap.dev/v1/instagram/posts?" + query))
            .header("x-api-key", System.getenv("SOCIALTAP_API_KEY"))
            .GET()
            .build();
        HttpResponse<String> response = HttpClient.newHttpClient()
            .send(request, HttpResponse.BodyHandlers.ofString());
        // An error is {"error": {"code", "message", ...}}; success is {data, meta}, meta.credits_charged its price.
        if (response.statusCode() >= 400) throw new RuntimeException(response.body());
        System.out.println(response.body());
    }

    static String encode(String value) {
        return URLEncoder.encode(value, StandardCharsets.UTF_8);
    }
}
.NET
using System.Text.Json;

using var http = new HttpClient();
http.DefaultRequestHeaders.Add("x-api-key", Environment.GetEnvironmentVariable("SOCIALTAP_API_KEY"));

var query = string.Join("&",
    "handle=" + Uri.EscapeDataString("nasa"));
var res = await http.GetAsync("https://staging-fly.socialtap.dev/v1/instagram/posts?" + query);
using var body = JsonDocument.Parse(await res.Content.ReadAsStringAsync());
if (!res.IsSuccessStatusCode)
{
    var error = body.RootElement.GetProperty("error");
    throw new Exception($"{error.GetProperty("code")}: {error.GetProperty("message")}");
}
Console.WriteLine(body.RootElement.GetProperty("data"));
Console.WriteLine(body.RootElement.GetProperty("meta").GetProperty("credits_charged"));
Rust
// Cargo.toml: reqwest = { version = "0.12", features = ["blocking", "json"] }, serde_json = "1"
use std::env;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let res = reqwest::blocking::Client::new()
        .get("https://staging-fly.socialtap.dev/v1/instagram/posts")
        .query(&[("handle", "nasa")])
        .header("x-api-key", env::var("SOCIALTAP_API_KEY")?)
        .send()?;
    let ok = res.status().is_success();
    let body: serde_json::Value = res.json()?;
    if !ok {
        return Err(format!("{}: {}", body["error"]["code"], body["error"]["message"]).into());
    }
    println!("{} {}", body["data"], body["meta"]["credits_charged"]);
    Ok(())
}
200 OK
{
  "data": [
    {
      "approximate_fields": [],
      "author": {
        "avatar_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=24&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_ss=7b689&…",
        "display_name": "NASA",
        "id": "528817151",
        "is_verified": true,
        "url": "https://www.instagram.com/nasa/",
        "username": "nasa"
      },
      "coauthors": [
        {
          "avatar_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/93880139_247576663101568_4560165171292536832_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=24&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_ss=7b689&…",
          "display_name": "NASA Solar System Exploration",
          "id": "1611722079",
          "is_verified": true,
          "url": "https://www.instagram.com/nasasolarsystem/",
          "username": "nasasolarsystem"
        },
        {
          "avatar_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.82787-19/670016304_18577283653042671_4689932669633757619_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=24&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_gid=S…",
          "display_name": "NASA Artemis",
          "id": "1104426670",
          "is_verified": true,
          "url": "https://www.instagram.com/nasaartemis/",
          "username": "nasaartemis"
        }
      ],
      "duration_ms": 43767,
      "hashtags": [
        "NASA",
        "ArtemisII",
        "Artemis"
      ],
      "id": "DeTUk4sDSp-",
      "is_nsfw": null,
      "is_pinned": true,
      "is_sponsored": false,
      "language": null,
      "media": [
        {
          "alt_text": null,
          "duration_ms": 43767,
          "expires_at": "2026-10-25T18:00:00Z",
          "height": 1908,
          "thumbnail_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.82787-15/842191580_18656578867049152_4200499629839780998_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=111&ig_cache_key=NDAwNDYzNDk4OTM2MjQ4OTk4MjE4NjU2NTc4ODYxMDQ5MTUy.3-ccb7-5&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=…",
          "type": "video",
          "url": "https://scontent-atl3-2.cdninstagram.com/o1/v/t2/f2/m86/AQNUvreb47JFAC3mKM7kF_weYHzhiVF-MfERm99CfyBTok0ezeRdbVW8cH5NXn4mxO8gVi6j1GQ2RU9i4ByvKCLVPHdDruUpsCKYDQI.mp4?_nc_cat=105&_nc_sid=SCRUBBED&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_ohc=SCRUBBED&efg=SCRUBBED&ccb=SCRUBBED&vs=S…",
          "width": 1074
        }
      ],
      "mentions": [
        "nasaartemis",
        "nasasolarsystem"
      ],
      "metrics": {
        "comment_count": 7628,
        "like_count": 755597,
        "quote_count": null,
        "repost_count": null,
        "save_count": null,
        "share_count": null,
        "view_count": 11075076
      },
      "platform": "instagram",
      "platform_specific": {
        "instagram": {
          "is_ai_generated": false
        }
      },
      "platform_type": "reel",
      "published_at": "2026-10-10T15:15:02Z",
      "text": "POV: you're watching the Earth set\n\nWe just released hundreds of new images and hours of new audio from our Artemis II mission around the Moon this spring. Check out our link in bio for the Artemis II Preliminary Lunar Science Report.\n\n#NASA #ArtemisII #Artemis",
      "thumbnail_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.82787-15/842191580_18656578867049152_4200499629839780998_n.jpg?stp=c0.417.1074.1074a_dst-jpg_e15_tt6&_nc_cat=111&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-atl3-2.cdninstagra…",
      "title": null,
      "type": "video",
      "unknown_fields": [],
      "url": "https://www.instagram.com/reel/DeTUk4sDSp-/"
    },
    {
      "approximate_fields": [],
      "author": {
        "avatar_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/432029380_939863124412845_4074172309041694202_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=24&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_ss=7b689…",
        "display_name": "NASA Webb Telescope",
        "id": "549313808",
        "is_verified": true,
        "url": "https://www.instagram.com/nasawebb/",
        "username": "nasawebb"
      },
      "coauthors": [
        {
          "avatar_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/437785305_1498177207718392_5285428334541669140_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=105&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=24&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_ss=7b…",
          "display_name": "NASA Universe",
          "id": "65495240044",
          "is_verified": true,
          "url": "https://www.instagram.com/nasauniverse/",
          "username": "nasauniverse"
        },
        {
          "avatar_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=24&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_ss=7b689&…",
          "display_name": "NASA",
          "id": "528817151",
          "is_verified": true,
          "url": "https://www.instagram.com/nasa/",
          "username": "nasa"
        }
      ],
      "duration_ms": null,
      "hashtags": [],
      "id": "DeJ28eTxo4s",
      "is_nsfw": null,
      "is_pinned": true,
      "is_sponsored": false,
      "language": null,
      "media": [
        {
          "alt_text": null,
          "duration_ms": null,
          "expires_at": "2026-10-25T18:00:00Z",
          "height": 1872,
          "thumbnail_url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/838879752_18633093571001809_7013098794556155636_n.jpg?stp=c64.0.1872.1872a_dst-jpg_e35_s1080x1080_sh2.08_tt6&_nc_cat=109&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-a…",
          "type": "image",
          "url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/838879752_18633093571001809_7013098794556155636_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=109&ig_cache_key=NDAwMTk3MTM5NDExOTYzNDQ3Ng%3D%3D.3-ccb7-5&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=…",
          "width": 2000
        }
      ],
      "mentions": [
        "NASAWebb",
        "nasa",
        "nasauniverse"
      ],
      "metrics": {
        "comment_count": 1027,
        "like_count": 290040,
        "quote_count": null,
        "repost_count": null,
        "save_count": null,
        "share_count": null,
        "view_count": null
      },
      "platform": "instagram",
      "platform_specific": {
        "instagram": {
          "is_ai_generated": false
        }
      },
      "platform_type": "post",
      "published_at": "2026-10-06T13:10:11Z",
      "text": "Brewing up new stars 🪄\n \n@NASAWebb’s unique view of the stellar nursery known as NGC 7129 reveals numerous stars formerly hidden in this cosmic cauldron. \n \nStars begin their life in cold, dense regions of dust and gas, hiding from view of most telescopes. Webb’s high degree of i…",
      "thumbnail_url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/838879752_18633093571001809_7013098794556155636_n.jpg?stp=c64.0.1872.1872a_dst-jpg_e35_s1080x1080_sh2.08_tt6&_nc_cat=109&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-a…",
      "title": null,
      "type": "image",
      "unknown_fields": [],
      "url": "https://www.instagram.com/p/DeJ28eTxo4s/"
    },
    {
      "approximate_fields": [],
      "author": {
        "avatar_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=24&_nc_ht=scontent-atl3-2.cdninstagram.com&_nc_ss=7b689&…",
        "display_name": "NASA",
        "id": "528817151",
        "is_verified": true,
        "url": "https://www.instagram.com/nasa/",
        "username": "nasa"
      },
      "coauthors": [],
      "duration_ms": null,
      "hashtags": [
        "NASA",
        "Space",
        "Stars"
      ],
      "id": "DeAYvsnn4la",
      "is_nsfw": null,
      "is_pinned": true,
      "is_sponsored": false,
      "language": null,
      "media": [
        {
          "alt_text": null,
          "duration_ms": null,
          "expires_at": "2026-10-25T18:00:00Z",
          "height": 1350,
          "thumbnail_url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/831222439_18653890615049152_5346150317938845760_n.jpg?stp=c0.135.1080.1080a_dst-jpg_e15_s1080x1080_tt6&_nc_cat=110&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-atl3-1.…",
          "type": "image",
          "url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/831222439_18653890615049152_5346150317938845760_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=110&ig_cache_key=Mzk5OTMwNDc1ODAwMTk1MzE5OA%3D%3D.3-ccb7-5&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=…",
          "width": 1080
        },
        {
          "alt_text": null,
          "duration_ms": null,
          "expires_at": "2026-10-25T18:00:00Z",
          "height": 1350,
          "thumbnail_url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/830418338_18653890612049152_312587861543217627_n.jpg?stp=c0.135.1080.1080a_dst-jpg_e15_s1080x1080_tt6&_nc_cat=100&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-atl3-1.c…",
          "type": "image",
          "url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/830418338_18653890612049152_312587861543217627_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=100&ig_cache_key=Mzk5OTMwNDc1ODM0NjExNzEyOA%3D%3D.3-ccb7-5&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=2…",
          "width": 1080
        },
        {
          "alt_text": null,
          "duration_ms": null,
          "expires_at": "2026-10-25T18:00:00Z",
          "height": 1350,
          "thumbnail_url": "https://scontent-atl3-2.cdninstagram.com/v/t51.82787-15/831354642_18653890627049152_4381034991606753149_n.jpg?stp=c0.135.1080.1080a_dst-jpg_e15_s1080x1080_tt6&_nc_cat=104&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-atl3-2.…",
          "type": "image",
          "url": "https://scontent-atl3-2.cdninstagram.com/v/t51.82787-15/831354642_18653890627049152_4381034991606753149_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=104&ig_cache_key=Mzk5OTMwNDc2MDcwMzExNzQxOA%3D%3D.3-ccb7-5&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=…",
          "width": 1080
        }
      ],
      "mentions": [
        "NASAWebb"
      ],
      "metrics": {
        "comment_count": 5550,
        "like_count": 1353320,
        "quote_count": null,
        "repost_count": null,
        "save_count": null,
        "share_count": null,
        "view_count": null
      },
      "platform": "instagram",
      "platform_specific": {
        "instagram": {
          "is_ai_generated": false
        }
      },
      "platform_type": "post",
      "published_at": "2026-10-02T20:52:45Z",
      "text": "Swipe for countless stars\n\nSagittarius B2 is the most massive and most active star-forming region in the Milky Way. It produces half of the stars in our home galaxy’s core.\n\nThis image of Sagittarius B2 was taken by our @NASAWebb telescope.\n\n#NASA #Space #Stars",
      "thumbnail_url": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-15/831222439_18653890615049152_5346150317938845760_n.jpg?stp=c0.135.1080.1080a_dst-jpg_e15_s1080x1080_tt6&_nc_cat=110&ccb=SCRUBBED&_nc_sid=SCRUBBED&efg=SCRUBBED&_nc_ohc=SCRUBBED&_nc_oc=SCRUBBED&_nc_zt=23&_nc_ht=scontent-atl3-1.…",
      "title": null,
      "type": "carousel",
      "unknown_fields": [],
      "url": "https://www.instagram.com/p/DeAYvsnn4la/"
    }
  ],
  "page": {
    "has_more": true,
    "next_cursor": "c1.EXAMPLE_CURSOR",
    "next_cursor_expires_at": "2026-10-26T12:00:00Z",
    "end_reason": null
  },
  "meta": {
    "request_id": "req_3f9c2a7d1e8b4c6a9f0e2d4b6a8c0e1f",
    "platform": "instagram",
    "source": "api",
    "is_cached": false,
    "credits_charged": 1,
    "latency_ms": 0,
    "fetched_at": "2026-10-25T12:00:00Z",
    "input": {
      "kind": "profile",
      "id": "528817151",
      "url": "https://www.instagram.com/nasa/"
    },
    "credits_remaining": 9999,
    "client_request_id": null,
    "warnings": [],
    "mode": "live"
  }
}

Long arrays and strings are shortened for display; real responses are complete.

Pricing

Pay per page. Only when it succeeds.

SourcePrice per successful pagePer 1,000 pages
Any source1 credit$0.75–$1.45
  • Failed requests are free: errors cost 0 credits.
  • Cache hits are free: responses served from the cache cost 0 credits.
  • Credits never expire.
  • One credit balance for every endpoint and platform.

Credit packs · How this endpoint is priced · How credits work

FAQ

Questions, answered.

How far back can I page?
Through the account's whole grid: every page returns a next_cursor until its oldest post. Use since to stop at a date: paging ends there, so older pages are not fetched or charged.
Who is in coauthors?
The other accounts of a collab post. A collab another account published appears on this account's grid with that account as author and this one among the coauthors.
How much does the Instagram Posts API cost?
1 credit per page of up to 12 items, charged for every successful page, empty pages included. SocialTap credits cost $0.75–$1.45 per 1,000 depending on the pack.
How do I get the next page?
Repeat the same request with cursor set to page.next_cursor from the previous response, keeping the other parameters. When page.has_more is false there are no more items. Cursors expire after 24 hours.
Am I charged for failed requests?
No. Requests that return an error cost 0 credits. Responses served from the cache are free too.

Start with 100 free credits. No card required.

Test keys answer every endpoint from recorded responses, free, so you can build before you spend. Failed requests are always free.

Get your API keyRead the API reference