> ## Documentation Index
> Fetch the complete documentation index at: https://docs.launchpointhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# View post insights

> Get the latest stored Instagram performance and Reel watch metrics for one post.

`insights.status` and `insights.reason` are paired: `available` with `reason: null` means a post snapshot exists; `no_data` with `reason: never_fetched` means no post snapshot exists; and `no_data` with `reason: unsupported_platform` means the post is not Instagram.

`creatorAudience` is account-level audience data for the account that published the post. Its handle follows the same PII lock as the creator audience endpoint. It is not the geography of people who watched this video: Meta does not expose per-post country data at any access level. Instagram audience entries describe separate populations reported by Meta and should not be added together. Non-Instagram posts return `no_data` with `reason: unsupported_platform` instead of invented metrics.




## OpenAPI

````yaml /api-reference/openapi.json get /posts/{id}/insights
openapi: 3.0.4
info:
  title: Launchpoint Public API
  version: 1.0.0
  description: >-
    **Private preview.** The Launchpoint Public API is in private preview and
    available only to trusted partners we work with directly. Access is not
    self-serve. Email hi@launchpointhq.com to ask about access.


    REST API for Launchpoint brands and agencies. Use an API key in the
    `x-api-key` header to authenticate.


    ## Requirements

    - Public API access must be enabled for the company. During private preview,
    access is limited to trusted partners.

    - Create and manage API keys in Dashboard → Settings → Developer.


    ## Creator privacy

    - Responses never include creator email addresses. Creator phone numbers are
    null when no number is stored or the workspace does not have access to
    creator contact details.


    ## Rate limits

    - Default: **100 requests per minute** per API key.

    - Approved partner accounts: **400 requests per minute**.

    - Every response includes `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and
    `X-RateLimit-Reset`. Requests over the limit return `429`.


    ## Errors

    - Errors use `{ "error": "<message>" }` with the matching HTTP status. Some
    endpoints also include a `code`.


    ## Timestamps

    - Timestamps are Unix timestamps in milliseconds unless a field says
    otherwise.


    ## Pagination

    - Most list endpoints accept `page` and `limit` and return `{ data, page,
    total }`. Some also return `totalPages`.

    - `scope=company` is the default. A parent agency key can pass
    `scope=agency` on supported routes to include its own data and linked
    brands.
servers:
  - url: https://dashboard.launchpointhq.com/api/v1
    description: Live API server
security:
  - apiKeyAuth: []
tags:
  - name: Deals
    description: Public creator opportunities across Launchpoint
  - name: Programs
    description: Programs and campaign management
  - name: Posts
    description: Posts and social content
  - name: Analytics
    description: KPIs and performance metrics
  - name: Payouts
    description: Payouts, balances, and pending creator funds
  - name: Contracts
    description: Contracts and creator agreements
  - name: Creators
    description: Creator profiles and metrics
  - name: Applications
    description: Creator applications to Canvas programs
  - name: Messages
    description: Read and send creator messages
paths:
  /posts/{id}/insights:
    get:
      tags:
        - Posts
      summary: View post insights
      description: >
        Get the latest stored Instagram performance and Reel watch metrics for
        one post.


        `insights.status` and `insights.reason` are paired: `available` with
        `reason: null` means a post snapshot exists; `no_data` with `reason:
        never_fetched` means no post snapshot exists; and `no_data` with
        `reason: unsupported_platform` means the post is not Instagram.


        `creatorAudience` is account-level audience data for the account that
        published the post. Its handle follows the same PII lock as the creator
        audience endpoint. It is not the geography of people who watched this
        video: Meta does not expose per-post country data at any access level.
        Instagram audience entries describe separate populations reported by
        Meta and should not be added together. Non-Instagram posts return
        `no_data` with `reason: unsupported_platform` instead of invented
        metrics.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
          description: ID of the post
      responses:
        '200':
          description: Post insights returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      platform:
                        type: string
                      insights:
                        type: object
                        properties:
                          status:
                            type: string
                            enum:
                              - available
                              - no_data
                          reason:
                            type: string
                            nullable: true
                            enum:
                              - never_fetched
                              - unsupported_platform
                          updatedAt:
                            type: integer
                            nullable: true
                            description: >-
                              Unix timestamp in milliseconds for the stored post
                              snapshot
                          views:
                            type: number
                            nullable: true
                          reach:
                            type: number
                            nullable: true
                          likes:
                            type: number
                            nullable: true
                          comments:
                            type: number
                            nullable: true
                          shares:
                            type: number
                            nullable: true
                          saves:
                            type: number
                            nullable: true
                          totalInteractions:
                            type: number
                            nullable: true
                          profileVisits:
                            type: number
                            nullable: true
                          follows:
                            type: number
                            nullable: true
                          totalWatchTimeMs:
                            type: number
                            nullable: true
                          avgWatchTimeMs:
                            type: number
                            nullable: true
                          skipRate:
                            type: number
                            nullable: true
                            description: Percentage from 0 to 100
                          engagementRate:
                            type: number
                            nullable: true
                            description: Percentage from 0 to 100
                      creatorAudience:
                        $ref: '#/components/schemas/CreatorAudienceAccount'
              example:
                data:
                  id: post_demo_4k9
                  platform: instagram
                  insights:
                    status: available
                    reason: null
                    updatedAt: 1786089600000
                    views: 128450
                    reach: 102300
                    likes: 8420
                    comments: 312
                    shares: 486
                    saves: 1190
                    totalInteractions: 10408
                    profileVisits: 2180
                    follows: 347
                    totalWatchTimeMs: 184520000
                    avgWatchTimeMs: 14360
                    skipRate: 31.4
                    engagementRate: 8.1
                  creatorAudience:
                    platform: instagram
                    handle: demo_creator
                    lastUpdatedAt: 1786089600000
                    audience:
                      status: available
                      reason: null
                      countriesReason: null
                      usAudiencePercentage: 72
                      countries:
                        - label: US
                          percentage: 72
                        - label: GB
                          percentage: 18
                        - label: CA
                          percentage: 10
                      ages:
                        - label: 25-34
                          percentage: 48.5
                      genders:
                        - label: female
                          percentage: 61.2
                      cities:
                        - label: New York
                          percentage: 12.4
                      demographicsBasis: reached
                      sampleSize: 2500
                      instagramAudiences:
                        - basis: reached
                          sampleSize: 2500
                          countries:
                            - label: US
                              percentage: 72
                            - label: GB
                              percentage: 18
                            - label: CA
                              percentage: 10
                          ages:
                            - label: 25-34
                              percentage: 48.5
                          genders:
                            - label: female
                              percentage: 61.2
                          cities:
                            - label: New York
                              percentage: 12.4
                        - basis: engaged
                          sampleSize: 840
                          countries:
                            - label: US
                              percentage: 68
                            - label: GB
                              percentage: 22
                            - label: CA
                              percentage: 10
                          ages:
                            - label: 25-34
                              percentage: 52.1
                          genders:
                            - label: female
                              percentage: 58.7
                          cities:
                            - label: New York
                              percentage: 14.1
                        - basis: followers
                          sampleSize: 3100
                          countries:
                            - label: US
                              percentage: 70
                            - label: GB
                              percentage: 20
                            - label: CA
                              percentage: 10
                          ages:
                            - label: 25-34
                              percentage: 47.9
                          genders:
                            - label: female
                              percentage: 62.4
                          cities:
                            - label: New York
                              percentage: 11.8
        '400':
          description: Post ID is invalid
        '404':
          description: No post was found
components:
  schemas:
    CreatorAudienceAccount:
      type: object
      properties:
        platform:
          type: string
        handle:
          type: string
          nullable: true
        lastUpdatedAt:
          type: integer
          nullable: true
          description: >-
            Unix timestamp in milliseconds; audience data may be up to about 30
            days old
        audience:
          $ref: '#/components/schemas/CreatorAudienceBlock'
    CreatorAudienceBlock:
      type: object
      properties:
        status:
          type: string
          enum:
            - available
            - no_data
        reason:
          type: string
          nullable: true
          enum:
            - unsupported_platform
            - no_data_marker
            - never_fetched
        countriesReason:
          type: string
          nullable: true
          enum:
            - unsupported_platform
            - no_data_marker
            - never_fetched
        usAudiencePercentage:
          type: number
          nullable: true
          description: >-
            US audience percentage from the monthly country refresh only; null
            does not mean zero. A saved no-data marker can return 0; that does
            not prove the US share is zero.
        sampleSize:
          type: integer
          nullable: true
          description: >-
            Number of people behind the returned country distribution, or null
            when the saved source has percentages without counts
        countries:
          type: array
          description: >-
            Country distribution from the monthly country refresh when
            available, or the Instagram account's own country split when no
            monthly geo row exists.
          items:
            $ref: '#/components/schemas/AudienceDistribution'
        ages:
          type: array
          items:
            $ref: '#/components/schemas/AudienceDistribution'
        genders:
          type: array
          items:
            $ref: '#/components/schemas/AudienceDistribution'
        cities:
          type: array
          items:
            $ref: '#/components/schemas/AudienceDistribution'
        demographicsBasis:
          type: string
          nullable: true
          enum:
            - reached
            - followers
        instagramAudiences:
          type: array
          description: >-
            Separate Instagram populations reported by Meta: people reached,
            people who engaged, and followers. These are different sets of
            people and should not be added together.
          items:
            $ref: '#/components/schemas/InstagramAudience'
    AudienceDistribution:
      type: object
      properties:
        label:
          type: string
        percentage:
          type: number
    InstagramAudience:
      type: object
      properties:
        basis:
          type: string
          enum:
            - reached
            - engaged
            - followers
        sampleSize:
          type: integer
          nullable: true
          description: >-
            Number of people behind the country distribution, or null when the
            source has percentages without counts
        countries:
          type: array
          items:
            $ref: '#/components/schemas/AudienceDistribution'
        ages:
          type: array
          items:
            $ref: '#/components/schemas/AudienceDistribution'
        genders:
          type: array
          items:
            $ref: '#/components/schemas/AudienceDistribution'
        cities:
          type: array
          items:
            $ref: '#/components/schemas/AudienceDistribution'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key created in Dashboard → Settings → Developer

````