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

# Read account analytics report

> Required permissions: analytics-read. Reads stored measurements only; never triggers collection. Counters are decimal strings; null means missing data, not zero. generatedAt is the response time, collectedAt is the measurement time. Optionally filter by accountId and platform. Unsupported or disabled platforms return 400. Disconnected accounts are excluded; needs_reauth accounts retain stored history. Report freshness uses the oldest latest daily collection in the selected range; use accountsObserved/accountsTotal to detect incomplete coverage. partial and comparisonReason explain missing coverage. Followers value is the last observed total; its chart points are daily changes. Other metrics are daily activity totals.



## OpenAPI

````yaml /api-reference/openapi.json get /analytics/report
openapi: 3.1.0
info:
  title: Postinger Public API
  version: 1.0.0
  description: >-
    Project-scoped API keys. JSON bodies up to 100 KB. Upload media directly to
    the returned R2 URL, then complete the upload. Rate limits are shared by all
    keys in the project. Scheduling requires posts-publish in addition to
    posts-write. A paused key returns 403 with error.code api_key_paused.
servers:
  - url: https://api.dev.postinger.dev/public/v1
security: []
paths:
  /analytics/report:
    get:
      tags:
        - Analytics
      summary: Read account analytics report
      description: >-
        Required permissions: analytics-read. Reads stored measurements only;
        never triggers collection. Counters are decimal strings; null means
        missing data, not zero. generatedAt is the response time, collectedAt is
        the measurement time. Optionally filter by accountId and platform.
        Unsupported or disabled platforms return 400. Disconnected accounts are
        excluded; needs_reauth accounts retain stored history. Report freshness
        uses the oldest latest daily collection in the selected range; use
        accountsObserved/accountsTotal to detect incomplete coverage. partial
        and comparisonReason explain missing coverage. Followers value is the
        last observed total; its chart points are daily changes. Other metrics
        are daily activity totals.
      operationId: getAnalyticsReport
      parameters:
        - name: from
          in: query
          required: true
          description: Inclusive UTC date. Both dates are required; at most 366 days.
          schema:
            type: string
            format: date
        - name: to
          in: query
          required: true
          description: Inclusive UTC date. Both dates are required; at most 366 days.
          schema:
            type: string
            format: date
        - name: accountId
          in: query
          schema:
            type: string
            format: uuid
        - name: platform
          in: query
          schema:
            type: string
            enum:
              - instagram
              - facebook
              - youtube
              - tiktok
      responses:
        '200':
          description: Stored analytics
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                properties:
                  data:
                    $ref: '#/components/schemas/AnalyticsReport'
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '400':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '401':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '403':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '404':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '409':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
            Retry-After:
              schema:
                type: integer
              description: Present for idempotency_in_progress; wait before retrying.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '413':
          description: >-
            JSON body exceeds the 100 KB limit. This can be rejected before the
            controller, so the public error envelope is not guaranteed.
        '429':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
            Retry-After:
              schema:
                type: integer
              description: Seconds before retrying.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '500':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
        '503':
          description: Request failed. Check error.code and meta.requestId.
          headers:
            X-Request-Id:
              schema:
                type: string
              description: Request identifier for troubleshooting.
            Cache-Control:
              schema:
                type: string
                const: no-store
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Project-wide limit, when supplied by the rate limiter.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Remaining project requests, when supplied by the rate limiter.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - meta
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                      message:
                        anyOf:
                          - type: string
                          - type: array
                            items:
                              type: string
                  meta:
                    type: object
                    required:
                      - requestId
                    properties:
                      requestId:
                        type: string
      security:
        - ApiKey: []
components:
  schemas:
    AnalyticsReport:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        from:
          type: string
          format: date
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        to:
          type: string
          format: date
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        timezone:
          type: string
          const: UTC
        generatedAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        selection:
          type: object
          properties:
            platforms:
              type: array
              items:
                type: string
                enum:
                  - instagram
                  - facebook
                  - youtube
                  - tiktok
          required:
            - platforms
        comparison:
          anyOf:
            - type: object
              properties:
                from:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                to:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                days:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - from
                - to
                - days
            - type: 'null'
        previous:
          anyOf:
            - type: object
              properties:
                from:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                to:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
              required:
                - from
                - to
            - type: 'null'
        metrics:
          type: object
          properties:
            followers:
              type: object
              properties:
                points:
                  type: array
                  items:
                    type: object
                    properties:
                      time:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      value:
                        type:
                          - string
                          - 'null'
                      partial:
                        type: boolean
                    required:
                      - time
                      - value
                      - partial
                value:
                  type:
                    - string
                    - 'null'
                partial:
                  type: boolean
                comparisonValue:
                  type:
                    - string
                    - 'null'
                previousValue:
                  type:
                    - string
                    - 'null'
                change:
                  type:
                    - number
                    - 'null'
                comparisonReason:
                  anyOf:
                    - type: string
                      enum:
                        - incomplete_period
                        - incomplete_data
                        - zero_baseline
                    - type: 'null'
              required:
                - points
                - value
                - partial
                - comparisonValue
                - previousValue
                - change
                - comparisonReason
            views:
              type: object
              properties:
                points:
                  type: array
                  items:
                    type: object
                    properties:
                      time:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      value:
                        type:
                          - string
                          - 'null'
                      partial:
                        type: boolean
                    required:
                      - time
                      - value
                      - partial
                value:
                  type:
                    - string
                    - 'null'
                partial:
                  type: boolean
                comparisonValue:
                  type:
                    - string
                    - 'null'
                previousValue:
                  type:
                    - string
                    - 'null'
                change:
                  type:
                    - number
                    - 'null'
                comparisonReason:
                  anyOf:
                    - type: string
                      enum:
                        - incomplete_period
                        - incomplete_data
                        - zero_baseline
                    - type: 'null'
              required:
                - points
                - value
                - partial
                - comparisonValue
                - previousValue
                - change
                - comparisonReason
            likes:
              type: object
              properties:
                points:
                  type: array
                  items:
                    type: object
                    properties:
                      time:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      value:
                        type:
                          - string
                          - 'null'
                      partial:
                        type: boolean
                    required:
                      - time
                      - value
                      - partial
                value:
                  type:
                    - string
                    - 'null'
                partial:
                  type: boolean
                comparisonValue:
                  type:
                    - string
                    - 'null'
                previousValue:
                  type:
                    - string
                    - 'null'
                change:
                  type:
                    - number
                    - 'null'
                comparisonReason:
                  anyOf:
                    - type: string
                      enum:
                        - incomplete_period
                        - incomplete_data
                        - zero_baseline
                    - type: 'null'
              required:
                - points
                - value
                - partial
                - comparisonValue
                - previousValue
                - change
                - comparisonReason
            comments:
              type: object
              properties:
                points:
                  type: array
                  items:
                    type: object
                    properties:
                      time:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      value:
                        type:
                          - string
                          - 'null'
                      partial:
                        type: boolean
                    required:
                      - time
                      - value
                      - partial
                value:
                  type:
                    - string
                    - 'null'
                partial:
                  type: boolean
                comparisonValue:
                  type:
                    - string
                    - 'null'
                previousValue:
                  type:
                    - string
                    - 'null'
                change:
                  type:
                    - number
                    - 'null'
                comparisonReason:
                  anyOf:
                    - type: string
                      enum:
                        - incomplete_period
                        - incomplete_data
                        - zero_baseline
                    - type: 'null'
              required:
                - points
                - value
                - partial
                - comparisonValue
                - previousValue
                - change
                - comparisonReason
            shares:
              type: object
              properties:
                points:
                  type: array
                  items:
                    type: object
                    properties:
                      time:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      value:
                        type:
                          - string
                          - 'null'
                      partial:
                        type: boolean
                    required:
                      - time
                      - value
                      - partial
                value:
                  type:
                    - string
                    - 'null'
                partial:
                  type: boolean
                comparisonValue:
                  type:
                    - string
                    - 'null'
                previousValue:
                  type:
                    - string
                    - 'null'
                change:
                  type:
                    - number
                    - 'null'
                comparisonReason:
                  anyOf:
                    - type: string
                      enum:
                        - incomplete_period
                        - incomplete_data
                        - zero_baseline
                    - type: 'null'
              required:
                - points
                - value
                - partial
                - comparisonValue
                - previousValue
                - change
                - comparisonReason
            saves:
              type: object
              properties:
                points:
                  type: array
                  items:
                    type: object
                    properties:
                      time:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                      value:
                        type:
                          - string
                          - 'null'
                      partial:
                        type: boolean
                    required:
                      - time
                      - value
                      - partial
                value:
                  type:
                    - string
                    - 'null'
                partial:
                  type: boolean
                comparisonValue:
                  type:
                    - string
                    - 'null'
                previousValue:
                  type:
                    - string
                    - 'null'
                change:
                  type:
                    - number
                    - 'null'
                comparisonReason:
                  anyOf:
                    - type: string
                      enum:
                        - incomplete_period
                        - incomplete_data
                        - zero_baseline
                    - type: 'null'
              required:
                - points
                - value
                - partial
                - comparisonValue
                - previousValue
                - change
                - comparisonReason
          required:
            - followers
            - views
            - likes
            - comments
            - shares
            - saves
        freshness:
          type: object
          properties:
            collectedAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                - type: 'null'
            accountsObserved:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            accountsTotal:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
          required:
            - collectedAt
            - accountsObserved
            - accountsTotal
      required:
        - from
        - to
        - timezone
        - generatedAt
        - selection
        - comparison
        - previous
        - metrics
        - freshness
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: Postinger API key

````

## Related topics

- [Read account counters and daily analytics](/api-reference/analytics/read-account-counters-and-daily-analytics.md)
- [Read analytics](/guides/analytics.md)
- [MCP examples](/mcp/examples.md)
- [MCP tool reference](/mcp/tools.md)
- [Read post measurement history](/api-reference/analytics/read-post-measurement-history.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.