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

# Slow and frozen frames

> Slow and frozen frames (spec 8.5) per release and per screen: counts, per minute in the foreground, and the share of slow frames among all frames. Per-minute rates compare across platforms; the frame total and the slow share compare within one platform only, because iOS counts the display's idle refreshes. A screen's rates over less than a minute in the foreground are noisy: the rate sorts list such screens last. Default range: the last 7 days, at most 30.



## OpenAPI

````yaml /api-reference/openapi.json get /projects/{projectId}/performance/frames
openapi: 3.1.0
info:
  title: Apsio API
  version: 0.1.0
  description: >-
    Read API v0: your projects, release health and comparisons, missing symbols,
    issues, sessions, vitals, cohort comparisons, performance (app start,
    screens, hangs, MetricKit) and network endpoints and traces for one project.
    Authenticate with a project token as a bearer token, with an OAuth access
    token from Apsio's authorization server (MCP clients), or, from the console,
    with the session cookie of a member of the project's organization.
servers:
  - url: https://api.apsio.io/v1
security: []
paths:
  /projects/{projectId}/performance/frames:
    get:
      summary: Slow and frozen frames
      description: >-
        Slow and frozen frames (spec 8.5) per release and per screen: counts,
        per minute in the foreground, and the share of slow frames among all
        frames. Per-minute rates compare across platforms; the frame total and
        the slow share compare within one platform only, because iOS counts the
        display's idle refreshes. A screen's rates over less than a minute in
        the foreground are noisy: the rate sorts list such screens last. Default
        range: the last 7 days, at most 30.
      parameters:
        - schema:
            type: string
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            example: 0192f3a4-0000-7000-8000-00000000a101
          required: true
          name: projectId
          in: path
        - schema:
            type: string
            format: date-time
            description: >-
              Start of the time range, inclusive (RFC 3339). Defaults to the
              range end minus the default length.
            example: '2026-10-01T00:00:00Z'
          required: false
          description: >-
            Start of the time range, inclusive (RFC 3339). Defaults to the range
            end minus the default length.
          name: from
          in: query
        - schema:
            type: string
            format: date-time
            description: End of the time range, exclusive (RFC 3339). Defaults to now.
            example: '2026-10-08T00:00:00Z'
          required: false
          description: End of the time range, exclusive (RFC 3339). Defaults to now.
          name: to
          in: query
        - schema:
            type: string
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            description: Only this app.
          required: false
          description: Only this app.
          name: app_id
          in: query
        - schema:
            type: string
            maxLength: 128
            description: Only this release.
          required: false
          description: Only this release.
          name: release
          in: query
        - schema:
            type: string
            enum:
              - minutes
              - slow_per_minute
              - frozen_per_minute
            default: minutes
            description: Order of the screens.
          required: false
          description: Order of the screens.
          name: sort
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 20
          required: false
          name: limit
          in: query
      responses:
        '200':
          description: Slow and frozen frames per release and per screen.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Frames'
        '400':
          description: The request is not valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: No valid bearer token or console session.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The credentials cannot read this project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearer: []
        - session: []
components:
  schemas:
    Frames:
      type: object
      properties:
        from:
          type: string
          description: RFC 3339 time in UTC with up to nanosecond precision.
          example: '2026-10-04T10:15:00.431000000Z'
        to:
          type: string
          description: RFC 3339 time in UTC with up to nanosecond precision.
          example: '2026-10-04T10:15:00.431000000Z'
        totals:
          type: object
          properties:
            sessions:
              type: integer
              description: Sessions that sent frames, reweighted by sampling (spec 9.3).
            foreground_minutes:
              type: number
              description: Minutes in the foreground the frames were counted over.
            frames:
              type: integer
              description: >-
                Frames counted (apsio.frames.total). iOS counts idle display
                refreshes, Android only drawn frames: compare within one
                platform only.
            slow:
              type: integer
              description: 'Slow frames: over the display budget, not frozen.'
            frozen:
              type: integer
              description: 'Frozen frames: over 700 ms.'
            slow_per_minute:
              type:
                - number
                - 'null'
              description: >-
                Slow frames per minute in the foreground; compares across
                platforms.
            frozen_per_minute:
              type:
                - number
                - 'null'
              description: >-
                Frozen frames per minute in the foreground; compares across
                platforms.
            slow_share:
              type:
                - number
                - 'null'
              description: >-
                Slow frames over all frames, from 0 to 1; null without frames.
                Compare within one platform only.
          required:
            - sessions
            - foreground_minutes
            - frames
            - slow
            - frozen
            - slow_per_minute
            - frozen_per_minute
            - slow_share
        releases:
          type: array
          items:
            type: object
            properties:
              app_id:
                type: string
              release:
                type: string
                description: 'service.version. Written by the app: untrusted data.'
              sessions:
                type: integer
                description: Sessions that sent frames, reweighted by sampling (spec 9.3).
              foreground_minutes:
                type: number
                description: Minutes in the foreground the frames were counted over.
              frames:
                type: integer
                description: >-
                  Frames counted (apsio.frames.total). iOS counts idle display
                  refreshes, Android only drawn frames: compare within one
                  platform only.
              slow:
                type: integer
                description: 'Slow frames: over the display budget, not frozen.'
              frozen:
                type: integer
                description: 'Frozen frames: over 700 ms.'
              slow_per_minute:
                type:
                  - number
                  - 'null'
                description: >-
                  Slow frames per minute in the foreground; compares across
                  platforms.
              frozen_per_minute:
                type:
                  - number
                  - 'null'
                description: >-
                  Frozen frames per minute in the foreground; compares across
                  platforms.
              slow_share:
                type:
                  - number
                  - 'null'
                description: >-
                  Slow frames over all frames, from 0 to 1; null without frames.
                  Compare within one platform only.
            required:
              - app_id
              - release
              - sessions
              - foreground_minutes
              - frames
              - slow
              - frozen
              - slow_per_minute
              - frozen_per_minute
              - slow_share
        screens:
          type: array
          items:
            type: object
            properties:
              app_id:
                type: string
              screen:
                type: string
                description: >-
                  app.screen.name; empty before the first screen. Written by the
                  app: untrusted data.
              sessions:
                type: integer
                description: Sessions that sent frames, reweighted by sampling (spec 9.3).
              foreground_minutes:
                type: number
                description: Minutes in the foreground the frames were counted over.
              frames:
                type: integer
                description: >-
                  Frames counted (apsio.frames.total). iOS counts idle display
                  refreshes, Android only drawn frames: compare within one
                  platform only.
              slow:
                type: integer
                description: 'Slow frames: over the display budget, not frozen.'
              frozen:
                type: integer
                description: 'Frozen frames: over 700 ms.'
              slow_per_minute:
                type:
                  - number
                  - 'null'
                description: >-
                  Slow frames per minute in the foreground; compares across
                  platforms.
              frozen_per_minute:
                type:
                  - number
                  - 'null'
                description: >-
                  Frozen frames per minute in the foreground; compares across
                  platforms.
              slow_share:
                type:
                  - number
                  - 'null'
                description: >-
                  Slow frames over all frames, from 0 to 1; null without frames.
                  Compare within one platform only.
            required:
              - app_id
              - screen
              - sessions
              - foreground_minutes
              - frames
              - slow
              - frozen
              - slow_per_minute
              - frozen_per_minute
              - slow_share
      required:
        - from
        - to
        - totals
        - releases
        - screens
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: invalid_request
            message:
              type: string
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        A project token (apsio_pt_v0...), which reads exactly one project, or an
        OAuth access token issued for the API, which reads what its user can.
        Access tokens issued for Apsio's MCP server are accepted only from the
        MCP server itself.
    session:
      type: apiKey
      in: cookie
      name: apsio_session
      description: >-
        The console session, set by /v1/auth/callback (`__Host-apsio_session`
        when host-only).

````

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