> ISPO SDK documentation. [HTML](https://ispo.ai/docs/functions/core.isIspoFrame.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Function isIspoFrame

*   <a id="isispoframe"></a>
    
    ```typescript
    isIspoFrame(data: WireFrameInput): data is IspoFrame
    ```
    
    Types: [WireFrameInput](../types/core.Supporting_types.WireFrameInput.md), [IspoFrame](../types/core.IspoFrame.md)
    
    True iff `data` is a versioned ISPO frame with a string `op`. Does NOT validate per-op payload fields — callers switch on `op` and apply op-specific checks where it matters (see `isRpcCall` / `isRpcReply`). Rejects runtime-logger frames (`{ v, type }`), legacy `{ type: 'ispo:*' }` events, bare `{ id, method }` RPC, `null`, and arrays.
    
    #### Parameters
    
    *   data: [WireFrameInput](../types/core.Supporting_types.WireFrameInput.md)
    
    #### Returns data is [IspoFrame](../types/core.IspoFrame.md)
