scraper-api-com Instagram API

Instagram: read-only. 8 public endpoints, no account needed.

Operations 8

GET /v1/instagram/profile Get an Instagram user's full profile by handle (followers, following, bio) (no… #
GET /v1/instagram/basic-profile Get an Instagram user's basic public profile (name, verified, private, picture)… #
GET /v2/instagram/user/posts Get an Instagram user's posts (incl. #
GET /v1/instagram/post Get a single Instagram post/reel by URL (no login) #
GET /v1/instagram/user/reels Get an Instagram user's reels by handle/user_id (paginated via max_id) (no… #
GET /v2/instagram/post/comments Get comments on an Instagram post by URL (paginated via next_min_id) (no login) #
GET /v1/instagram/user/embed Get an embeddable HTML representation of an Instagram profile by handle #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/scraper-api-com:scraper-api-com-instagram-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

scraper-api-com-instagram-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: scraper-api.com Instagram API
  version: 0.1.0
  description: 'Self-hosted social media scraping API — a drop-in replacement for scrapecreators.com.


    ## Authentication

    Every request must send your API key in the `x-api-key` header.


    ## Credits

    Billing is credit-based: **1 request = 1 credit** (some endpoints cost more — see each endpoint''s description). Credits are **non-expiring** — buy once, use whenever.


    Response bodies match the ScrapeCreators shapes so existing integrations work unchanged.'
  contact:
    name: Fabian Bitter
    email: fabian@bitter.de
servers:
- url: https://api.scraper-api.com
  description: Production
security:
- apiKeyAuth: []
tags:
- name: Instagram
  description: 'Instagram: read-only. 8 public endpoints, no account needed.'
paths:
  /v1/instagram/profile:
    get:
      tags:
      - Instagram
      summary: Get an Instagram user's full profile by handle (followers, following, bio) (no…
      operationId: instagram_v1_profile
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters:
      - name: handle
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                success: true
                data:
                  user:
                    id: '528817151'
                    username: nasa
                    full_name: NASA
                    biography: Explore the universe and discover our home planet with @NASA.
                    external_url: https://www.nasa.gov
                    profile_pic_url: https://instagram.fxxx.fna.fbcdn.net/mock-pic.jpg
                    profile_pic_url_hd: https://instagram.fxxx.fna.fbcdn.net/mock-pic-hd.jpg
                    is_private: false
                    is_verified: true
                    is_business_account: false
                    edge_followed_by:
                      count: 97800000
                    edge_follow:
                      count: 78
                    edge_owner_to_timeline_media:
                      count: 4210
                      edges: []
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
  /v1/instagram/basic-profile:
    get:
      tags:
      - Instagram
      summary: Get an Instagram user's basic public profile (name, verified, private, picture)…
      operationId: instagram_v1_basic_profile
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters:
      - name: handle
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                success: true
                data:
                  user:
                    id: '528817151'
                    username: nasa
                    full_name: NASA
                    biography: Explore the universe and discover our home planet with @NASA.
                    external_url: https://www.nasa.gov
                    profile_pic_url: https://instagram.fxxx.fna.fbcdn.net/mock-pic.jpg
                    profile_pic_url_hd: https://instagram.fxxx.fna.fbcdn.net/mock-pic-hd.jpg
                    is_private: false
                    is_verified: true
                    is_business_account: false
                    edge_followed_by:
                      count: 97800000
                    edge_follow:
                      count: 78
                    edge_owner_to_timeline_media:
                      count: 4210
                      edges: []
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
  /v2/instagram/user/posts:
    get:
      tags:
      - Instagram
      summary: Get an Instagram user's posts (incl.
      operationId: instagram_v2_user_posts
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters:
      - name: handle
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                items:
                - pk: '3938228276934129521'
                  id: '3938228276934129521_528817151'
                  code: DPmockCode
                  taken_at: 1735689600
                  media_type: 8
                  like_count: 257796
                  comment_count: 1204
                  caption:
                    text: A mock caption from the drop-in fixture.
                  image_versions2:
                    candidates:
                    - url: https://instagram.fxxx.fna.fbcdn.net/mock.jpg
                      width: 1080
                      height: 1080
                  user:
                    pk: '528817151'
                    username: nasa
                    is_verified: true
                num_results: 1
                more_available: true
                next_max_id: '3932620782437825016_528817151'
                user:
                  pk: '528817151'
                  username: nasa
                  full_name: NASA
                  is_private: false
                  is_verified: true
                auto_load_more_enabled: true
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
  /v1/instagram/post:
    get:
      tags:
      - Instagram
      summary: Get a single Instagram post/reel by URL (no login)
      operationId: instagram_v1_post
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                items:
                - pk: '3938228276934129521'
                  id: '3938228276934129521_528817151'
                  code: DPmockCode
                  taken_at: 1735689600
                  media_type: 8
                  like_count: 257796
                  comment_count: 1204
                  caption:
                    text: A mock caption from the drop-in fixture.
                  image_versions2:
                    candidates:
                    - url: https://instagram.fxxx.fna.fbcdn.net/mock.jpg
                      width: 1080
                      height: 1080
                  user:
                    pk: '528817151'
                    username: nasa
                    is_verified: true
                num_results: 1
                data:
                  pk: '3938228276934129521'
                  id: '3938228276934129521_528817151'
                  code: DPmockCode
                  taken_at: 1735689600
                  media_type: 8
                  like_count: 257796
                  comment_count: 1204
                  caption:
                    text: A mock caption from the drop-in fixture.
                  image_versions2:
                    candidates:
                    - url: https://instagram.fxxx.fna.fbcdn.net/mock.jpg
                      width: 1080
                      height: 1080
                  user:
                    pk: '528817151'
                    username: nasa
                    is_verified: true
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
  /v1/instagram/user/reels:
    get:
      tags:
      - Instagram
      summary: Get an Instagram user's reels by handle/user_id (paginated via max_id) (no…
      operationId: instagram_v1_user_reels
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters:
      - name: handle
        in: query
        required: false
        description: 'Provide at least one of: handle, user_id.'
        schema:
          type: string
      - name: user_id
        in: query
        required: false
        description: 'Provide at least one of: handle, user_id.'
        schema:
          type: string
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                items: []
                paging_info:
                  more_available: false
                  max_id: null
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
  /v2/instagram/post/comments:
    get:
      tags:
      - Instagram
      summary: Get comments on an Instagram post by URL (paginated via next_min_id) (no login)
      operationId: instagram_v2_post_comments
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                comments: []
                next_min_id: null
                has_more_comments: false
                comment_count: 0
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
  /v1/instagram/reels/trending:
    get:
      tags:
      - Instagram
      summary: Get currently trending Instagram reels (paginated via max_id) (no login)
      operationId: instagram_v1_reels_trending
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters: []
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                items: []
                paging_info:
                  more_available: false
                  max_id: null
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
  /v1/instagram/user/embed:
    get:
      tags:
      - Instagram
      summary: Get an embeddable HTML representation of an Instagram profile by handle
      operationId: instagram_v1_user_embed
      description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
      security:
      - apiKeyAuth: []
      parameters:
      - name: handle
        in: query
        required: false
        description: 'Provide at least one of: handle, url.'
        schema:
          type: string
      - name: url
        in: query
        required: false
        description: 'Provide at least one of: handle, url.'
        schema:
          type: string
      responses:
        '200':
          description: Platform-native JSON payload (ScrapeCreators-compatible).
          content:
            application/json:
              example:
                html: <blockquote class="instagram-media"></blockquote>
                status: ok
        '400':
          description: Missing or invalid parameters.
          content:
            application/json:
              example:
                error:
                  message: 'Missing required parameter(s): handle'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  message: Invalid API key.
        '402':
          description: Not enough credits.
          content:
            application/json:
              example:
                error:
                  message: Insufficient credits.
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              example:
                error:
                  message: Rate limit exceeded.
        '502':
          description: Upstream scrape failed.
          content:
            application/json:
              example:
                error:
                  message: Upstream scrape failed.
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your scraper-api.com API key.
x-tagGroups:
- name: Platforms
  tags:
  - Instagram
  - TikTok
  - YouTube
  - Facebook
  - LinkedIn
  - Twitter
  - Spotify
  - Apple Music
  - Kleinanzeigen
  - Quoka
  - markt.de
  - mobile.de
  - '11880'
  - Gelbe Seiten
  - ImmobilienScout24
  - immowelt
  - WG-Gesucht
  - Bayut
  - LOVOO
  - Jaumo
  - Tinder
  - Bumble
  - Snapchat
  - Google
  - Arbeitsagentur
  - Ausbildung.de
  - meinestadt.de