xpoz-ai Instagram (live) API

On-demand Instagram fetches straight from the platform, cursor-paginated. Not available for trial access keys.

Operations 10

GET /api/data/instagram/posts/live Search Instagram posts (live) #
GET /api/data/instagram/posts/users/{identifier}/live Get an Instagram user's posts (live) #
GET /api/data/instagram/posts/{id}/live Get an Instagram post (live) #
GET /api/data/instagram/posts/{id}/comments/live Get Instagram post comments (live) #
GET /api/data/instagram/posts/{id}/comments/{commentId}/live Get an Instagram comment (live) #
GET /api/data/instagram/posts/{id}/comments/{commentId}/replies/live Get Instagram comment replies (live) #
GET /api/data/instagram/posts/{id}/interacting-users/live Get Instagram post interacting users (live) #
GET /api/data/instagram/users/live Search Instagram users (live) #
GET /api/data/instagram/users/{identifier}/live Get an Instagram user (live) #
GET /api/data/instagram/users/{identifier}/connections/live Get Instagram user connections (live) #

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/xpoz-ai:xpoz-ai-instagram-live-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

xpoz-ai-instagram-live-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: XPOZ Instagram (live) API
  version: 1.0.0
  description: 'Social media data API for Twitter/X, Instagram, Reddit, and TikTok.


    **Data endpoints** (`/api/data/*`) are authenticated with an API access key and are metered against the account''s credits. Most stored-data endpoints share the same query options: `fields` selects which attributes to return, `since`/`until` bound the date range, and `responseType` picks between a synchronous first page (`fast`), a full paged query run as a background operation (`paging`), and a CSV export (`csv`). `/live` endpoints fetch from the platform on demand and page with a cursor instead.


    **Account, billing, and crawl-settings endpoints** are used by the XPOZ dashboard and authenticate with the user''s session.'
servers:
- url: /
  description: This server
tags:
- name: Instagram (live)
  description: On-demand Instagram fetches straight from the platform, cursor-paginated. Not available for trial access keys.
paths:
  /api/data/instagram/posts/live:
    get:
      tags:
      - Instagram (live)
      summary: Search Instagram posts (live)
      description: Search Instagram posts on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/QueryQ'
      - $ref: '#/components/parameters/InstagramPostFields'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: Validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramPostsLive
  /api/data/instagram/posts/users/{identifier}/live:
    get:
      tags:
      - Instagram (live)
      summary: Get an Instagram user's posts (live)
      description: Fetch an Instagram user's recent posts on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/Identifier'
      - $ref: '#/components/parameters/InstagramPostFields'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: Validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramPostsUsersIdentifierLive
  /api/data/instagram/posts/{id}/live:
    get:
      tags:
      - Instagram (live)
      summary: Get an Instagram post (live)
      description: Fetch a single Instagram post on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/InstagramLivePostId'
      - $ref: '#/components/parameters/InstagramPostFields'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: 'Validation failed. Also returned when the post ID is invalid: `Invalid Instagram post ID. Must be a shortcode (e.g., "DdaSlMIgeTm") or strong_id format: media_id_user_id (e.g., "3606450040306139062_4836333238").`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramPostsIdLive
  /api/data/instagram/posts/{id}/comments/live:
    get:
      tags:
      - Instagram (live)
      summary: Get Instagram post comments (live)
      description: Fetch top-level comments of an Instagram post on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/InstagramLivePostId'
      - $ref: '#/components/parameters/InstagramCommentFields'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: 'Validation failed. Also returned when the post ID is invalid: `Invalid Instagram post ID. Must be a shortcode (e.g., "DdaSlMIgeTm") or strong_id format: media_id_user_id (e.g., "3606450040306139062_4836333238").`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramPostsIdCommentsLive
  /api/data/instagram/posts/{id}/comments/{commentId}/live:
    get:
      tags:
      - Instagram (live)
      summary: Get an Instagram comment (live)
      description: 'Fetch a single top-level comment of an Instagram post on demand, by post ID and comment ID. Always returns `has_more: false`. Reply (child comment) IDs are not supported; page the parent comment''s replies instead. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.'
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/InstagramLivePostId'
      - $ref: '#/components/parameters/InstagramCommentId'
      - $ref: '#/components/parameters/InstagramCommentFields'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: 'Validation failed. Also returned when the post ID is invalid: `Invalid Instagram post ID. Must be a shortcode (e.g., "DdaSlMIgeTm") or strong_id format: media_id_user_id (e.g., "3606450040306139062_4836333238").`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramPostsIdCommentsCommentIdLive
  /api/data/instagram/posts/{id}/comments/{commentId}/replies/live:
    get:
      tags:
      - Instagram (live)
      summary: Get Instagram comment replies (live)
      description: Fetch replies to a top-level comment of an Instagram post on demand. Fetches directly from the platform and returns one page with a cursor, plus the top-level comment itself in `parent_comment`. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/InstagramLivePostId'
      - $ref: '#/components/parameters/InstagramCommentId'
      - $ref: '#/components/parameters/InstagramCommentFields'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstagramCommentRepliesCursorResponse'
        '400':
          description: 'Validation failed. Also returned when the post ID is invalid: `Invalid Instagram post ID. Must be a shortcode (e.g., "DdaSlMIgeTm") or strong_id format: media_id_user_id (e.g., "3606450040306139062_4836333238").`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramPostsIdCommentsCommentIdRepliesLive
  /api/data/instagram/posts/{id}/interacting-users/live:
    get:
      tags:
      - Instagram (live)
      summary: Get Instagram post interacting users (live)
      description: Fetch users who commented on or liked an Instagram post, on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/InstagramLivePostId'
      - $ref: '#/components/parameters/InstagramInteractionType'
      - $ref: '#/components/parameters/InstagramUserFields'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: 'Validation failed. Also returned when the post ID is invalid: `Invalid Instagram post ID. Must be a shortcode (e.g., "DdaSlMIgeTm") or strong_id format: media_id_user_id (e.g., "3606450040306139062_4836333238").`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramPostsIdInteractingUsersLive
  /api/data/instagram/users/live:
    get:
      tags:
      - Instagram (live)
      summary: Search Instagram users (live)
      description: Search Instagram users by name on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/QueryName'
      - $ref: '#/components/parameters/InstagramUserFields'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: Validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramUsersLive
  /api/data/instagram/users/{identifier}/live:
    get:
      tags:
      - Instagram (live)
      summary: Get an Instagram user (live)
      description: Fetch an Instagram user profile on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/Identifier'
      - $ref: '#/components/parameters/InstagramUserFields'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: Validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramUsersIdentifierLive
  /api/data/instagram/users/{identifier}/connections/live:
    get:
      tags:
      - Instagram (live)
      summary: Get Instagram user connections (live)
      description: Fetch followers or following of an Instagram user on demand. Fetches directly from the platform and returns one page with a cursor. Not available for trial access keys.
      security:
      - AccessKey: []
      parameters:
      - $ref: '#/components/parameters/Identifier'
      - $ref: '#/components/parameters/ConnectionType'
      - $ref: '#/components/parameters/InstagramUserFields'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: One page of results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CursorResponse'
        '400':
          description: Validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/TrialForbidden'
        default:
          $ref: '#/components/responses/DataRouteError'
      operationId: getDataInstagramUsersIdentifierConnectionsLive
components:
  schemas:
    DataRouteError:
      type: object
      properties:
        success:
          type: boolean
          const: false
        message:
          type: string
          description: Endpoint-specific label, e.g. `Failed to retrieve Twitter posts`.
        error:
          type: string
          description: Detail. `An unexpected error occurred` for unhandled failures.
      required:
      - success
      - message
      - error
    DataSource:
      type: string
      enum:
      - database
      - api
      - hybrid
      description: Where the results came from.
    InstagramCommentRepliesCursorResponse:
      allOf:
      - $ref: '#/components/schemas/CursorResponse'
      - type: object
        properties:
          parent_comment:
            anyOf:
            - type: object
              additionalProperties: true
              description: The top-level comment the replies belong to, shaped by the requested `fields`.
            - type: 'null'
        required:
        - parent_comment
      description: Cursor envelope for Instagram comment replies, including the parent comment.
    SimpleError:
      type: object
      properties:
        success:
          type: boolean
          const: false
        message:
          type: string
      required:
      - success
      - message
    CursorResponse:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
            additionalProperties: true
            description: Entity shaped by the requested `fields`.
        count:
          type: integer
        dataSource:
          $ref: '#/components/schemas/DataSource'
        has_more:
          type: boolean
        next_page_cursor:
          anyOf:
          - type: string
          - type: 'null'
      required:
      - results
      - count
      - dataSource
      - has_more
      - next_page_cursor
      description: 'Envelope for on-demand `/live` endpoints: one provider page plus a cursor.'
    TrialForbidden:
      type: object
      properties:
        success:
          type: boolean
          const: false
        code:
          type: string
          enum:
          - on_demand_not_available_in_trial
        message:
          type: string
      required:
      - success
      - code
      - message
  responses:
    TrialForbidden:
      description: On-demand search is not available for trial access keys.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TrialForbidden'
    Unauthorized:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SimpleError'
    DataRouteError:
      description: The request could not be fulfilled. Status is 400 for an empty or invalid search query, 402 when CSV export is blocked by plan limits, 500 otherwise.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataRouteError'
  parameters:
    QueryQ:
      name: q
      in: query
      required: true
      description: Search query (Lucene-style keyword syntax). Must not be blank.
      schema:
        type: string
    InstagramPostFields:
      name: fields
      in: query
      required: false
      description: 'Instagram post fields to return. Comma-separated. Allowed values: id, postType, userId, username, fullName, caption, mediaType, codeUrl, imageUrl, videoUrl, audioOnlyUrl, profilePicUrl, videoSubtitlesUri, subtitles, likeCount, commentCount, reshareCount, mediaRepostCount, saveCount, videoPlayCount, videoDuration, createdAt, createdAtTimestamp, createdAtDate, location, genAiChatWithAiCtaInfo, hasHighRiskGenAiInformTreatment.'
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
          - id
          - postType
          - userId
          - username
          - fullName
          - caption
          - mediaType
          - codeUrl
          - imageUrl
          - videoUrl
          - audioOnlyUrl
          - profilePicUrl
          - videoSubtitlesUri
          - subtitles
          - likeCount
          - commentCount
          - reshareCount
          - mediaRepostCount
          - saveCount
          - videoPlayCount
          - videoDuration
          - createdAt
          - createdAtTimestamp
          - createdAtDate
          - location
          - genAiChatWithAiCtaInfo
          - hasHighRiskGenAiInformTreatment
    Cursor:
      name: cursor
      in: query
      required: false
      description: Opaque cursor from `next_page_cursor` of the previous page.
      schema:
        type: string
    InstagramCommentFields:
      name: fields
      in: query
      required: false
      description: 'Instagram comment fields to return. Comma-separated. Allowed values: id, text, parentPostId, parentPostUserId, type, parentCommentId, repliedToCommentId, childCommentCount, userId, username, fullName, likeCount, status, isSpam, hasTranslation, createdAt, createdAtTimestamp, createdAtDate, images.'
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
          - id
          - text
          - parentPostId
          - parentPostUserId
          - type
          - parentCommentId
          - repliedToCommentId
          - childCommentCount
          - userId
          - username
          - fullName
          - likeCount
          - status
          - isSpam
          - hasTranslation
          - createdAt
          - createdAtTimestamp
          - createdAtDate
          - images
    InstagramUserFields:
      name: fields
      in: query
      required: false
      description: 'Instagram user fields to return. Comma-separated. Allowed values: id, username, fullName, isPrivate, isVerified, followerCount, followingCount, mediaCount, biography, externalUrl, hasAnonymousProfilePicture, profilePicId, profilePicUrl, profileUrl.'
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
          - id
          - username
          - fullName
          - isPrivate
          - isVerified
          - followerCount
          - followingCount
          - mediaCount
          - biography
          - externalUrl
          - hasAnonymousProfilePicture
          - profilePicId
          - profilePicUrl
          - profileUrl
    ConnectionType:
      name: connectionType
      in: query
      required: true
      description: Which side of the follow graph to return.
      schema:
        type: string
        enum:
        - followers
        - following
    QueryName:
      name: name
      in: query
      required: true
      description: Name to search for. Must not be blank.
      schema:
        type: string
    Identifier:
      name: identifier
      in: path
      required: true
      description: User identifier; interpreted according to `identifierType` where supported, otherwise a username.
      schema:
        type: string
    InstagramInteractionType:
      name: interactionType
      in: query
      required: true
      description: Kind of interaction to list users for.
      schema:
        type: string
        enum:
        - commenters
        - likers
    InstagramCommentId:
      name: commentId
      in: path
      required: true
      description: ID of the top-level comment.
      schema:
        type: string
    InstagramLivePostId:
      name: id
      in: path
      required: true
      description: Instagram post shortcode (e.g. `DdaSlMIgeTm`, as in `instagram.com/p/DdaSlMIgeTm`) or strong ID in `media_id_user_id` format (e.g. `3606450040306139062_4836333238`).
      schema:
        type: string
        pattern: ^[A-Za-z0-9_-]+$
  securitySchemes:
    AccessKey:
      type: http
      scheme: bearer
      description: 'XPOZ API access key, created from the dashboard or `POST /api/tokens`. Send as `Authorization: Bearer <access key>`.'
    UserSession:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Descope session JWT of a logged-in dashboard user. Send as `Authorization: Bearer <session JWT>`.'