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

# Get exact frame data

> Fetches and returns the bytes, base64 encoded, of the frame at the given timestamp for a device. Use this instead of getExactFrameUri if, for whatever reason, either the URI is not useful or the client is unable to hit the media servers. The response always has HTTP status 200; check the status field, frameData is only set when it is AVAILABLE.



## OpenAPI

````yaml https://api2.rhombussystems.com/api/openapi/public.json post /api/video/getExactFrameData
openapi: 3.0.1
info:
  contact:
    email: developer@rhombussystems.com
  description: >-
    This API is for use by Rhombus customers and partners.


    ## Authentication


    All requests require two headers:

    - `x-auth-scheme` — The authentication scheme identifier. Use `api-token`
    for standard API key auth, or `partner-api-token` for partner API auth.

    - `x-auth-apikey` — Your Rhombus API key.


    Example:

    ```

    POST /api/camera/getMinimalCameraStateList

    x-auth-scheme: api-token

    x-auth-apikey: YOUR_API_KEY

    Content-Type: application/json

    ```
  title: Rhombus API
  version: '1.0'
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/video/getExactFrameData:
    post:
      tags:
        - Video Webservice
      summary: Get exact frame data
      description: >-
        Fetches and returns the bytes, base64 encoded, of the frame at the given
        timestamp for a device. Use this instead of getExactFrameUri if, for
        whatever reason, either the URI is not useful or the client is unable to
        hit the media servers. The response always has HTTP status 200; check
        the status field, frameData is only set when it is AVAILABLE.
      operationId: getExactFrameData
      parameters:
        - description: >-
            Authentication scheme identifier. Use `api-token` for standard API
            key authentication, `partner-api-token` for partner API key
            authentication. Must be paired with the `x-auth-apikey` header
            containing your API key.
          example: api-token
          in: header
          name: x-auth-scheme
          required: true
          schema:
            type: string
            default: api-token
            enum:
              - api-token
              - api
              - partner-api-token
              - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Video_GetExactFrameDataWSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video_GetExactFrameDataWSResponse'
          description: OK
components:
  schemas:
    Video_GetExactFrameDataWSRequest:
      type: object
      description: Request object for fetching the bytes of an exact frame from a camera.
      properties:
        cameraUuid:
          type: string
          format: DeviceFacetUuid
          description: RUUID with optional appended facet information
          example: AAAAAAAAAAAAAAAAAAAAAA.v0
          nullable: true
        downscaleFactor:
          type: integer
          format: int32
          description: >-
            Ratio to shrink the image pixels by. Defaults to 1 (full
            resolution).
          minimum: 1
          nullable: true
        permyriadCropHeight:
          type: integer
          format: int32
          description: >-
            Precise ratio to crop the height by. Capped at 10000, which is
            100.00% of the image
          maximum: 10000
          minimum: 0
          nullable: true
        permyriadCropWidth:
          type: integer
          format: int32
          description: >-
            Precise ratio to crop the width by. Capped at 10000, which is
            100.00% of the image
          maximum: 10000
          minimum: 0
          nullable: true
        permyriadCropX:
          type: integer
          format: int32
          description: >-
            Proportional location to start horizontal crop at. Where 10000 is
            100.00% of, or the end of the image
          maximum: 10000
          minimum: 0
          nullable: true
        permyriadCropY:
          type: integer
          format: int32
          description: >-
            Proportional location to start vertical crop at. Where 10000 is
            100.00% of, or the end of the image
          maximum: 10000
          minimum: 0
          nullable: true
        timestampMs:
          type: integer
          format: int64
          description: Timestamp in epoch milliseconds
          nullable: true
      required:
        - cameraUuid
        - timestampMs
    Video_GetExactFrameDataWSResponse:
      type: object
      description: >-
        Response object containing the bytes of the requested frame data in
        base64 format
      properties:
        error:
          type: boolean
          nullable: true
        errorMsg:
          type: string
          nullable: true
        frameData:
          type: string
          description: >-
            Base64-encoded image bytes for the requested frame. Null if no frame
            could be retrieved.
          nullable: true
        mimeType:
          type: string
          description: MIME type of the encoded frame data
          example: image/jpeg
          nullable: true
        responseMessage:
          type: string
          description: Human-readable message describing the result
          example: Frame retrieved successfully
          nullable: true
        status:
          $ref: '#/components/schemas/Video_ExactFrameAvailabilityWSStatus'
        warningMsg:
          type: string
          nullable: true
    Video_ExactFrameAvailabilityWSStatus:
      type: string
      description: >-
        Outcome of an exact frame request. AVAILABLE is the only value under
        which a frame URI or frame data is returned; every other value explains
        why the frame cannot be served.
      enum:
        - AVAILABLE
        - FUTURE_TIMESTAMP
        - CAMERA_DELETED
        - CAMERA_STATE_UNAVAILABLE
        - CAMERA_NOT_CONNECTED
        - MEDIA_STORAGE_DEVICE_NOT_CONNECTED
        - NOT_RECORDING_AT_TIMESTAMP
        - NO_FOOTAGE_AT_TIMESTAMP
        - MEDIA_ADDRESS_UNAVAILABLE
        - FRAME_RETRIEVAL_FAILED
  securitySchemes:
    ApiKeyAuth:
      description: >-
        Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header
        set to `api-token` (or `partner-api-token` for partner endpoints).
      in: header
      name: x-auth-apikey
      type: apiKey

````

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