diff --git a/README.md b/README.md
index a7c8467..a7f3838 100644
--- a/README.md
+++ b/README.md
@@ -169,6 +169,7 @@ For help starting out or to discuss clay, considering joining [the discord serve
     - [Clay_SetCurrentContext](#clay_setcurrentcontext)
     - [Clay_SetLayoutDimensions](#clay_setlayoutdimensions)
     - [Clay_SetPointerState](#clay_setpointerstate)
+    - [Clay_GetPointerState](#clay_getpointerstate)
     - [Clay_UpdateScrollContainers](#clay_updatescrollcontainers)
     - [Clay_BeginLayout](#clay_beginlayout)
     - [Clay_EndLayout](#clay_endlayout)
@@ -646,6 +647,14 @@ Sets the internal pointer position and state (i.e. current mouse / touch positio
 
 ---
 
+### Clay_GetPointerState
+
+`Clay_PointerData Clay_GetPointerState()`
+
+Get the internal pointer position and state (i.e. current mouse / touch position). returns clay internal click start and stop state.
+
+---
+
 ### Clay_UpdateScrollContainers
 
 `void Clay_UpdateScrollContainers(bool enableDragScrolling, Clay_Vector2 scrollDelta, float deltaTime)`
diff --git a/clay.h b/clay.h
index 9f19d5d..eac39c8 100644
--- a/clay.h
+++ b/clay.h
@@ -801,6 +801,9 @@ CLAY_DLL_EXPORT Clay_Arena Clay_CreateArenaWithCapacityAndMemory(size_t capacity
 // Sets the state of the "pointer" (i.e. the mouse or touch) in Clay's internal data. Used for detecting and responding to mouse events in the debug view,
 // as well as for Clay_Hovered() and scroll element handling.
 CLAY_DLL_EXPORT void Clay_SetPointerState(Clay_Vector2 position, bool pointerDown);
+// Gets the state of the "pointer". This will return the position provided by `Clay_SetPointerState` 
+// and the frame pressed state.
+CLAY_DLL_EXPORT Clay_PointerData Clay_GetPointerState();
 // Initialize Clay's internal arena and setup required data before layout can begin. Only needs to be called once.
 // - arena can be created using Clay_CreateArenaWithCapacityAndMemory()
 // - layoutDimensions are the initial bounding dimensions of the layout (i.e. the screen width and height for a full screen layout)
@@ -3861,6 +3864,12 @@ void Clay_SetPointerState(Clay_Vector2 position, bool isPointerDown) {
     }
 }
 
+CLAY_WASM_EXPORT("Clay_GetPointerState")
+Clay_PointerData Clay_GetPointerState() {
+    Clay_Context* context = Clay_GetCurrentContext();
+    return context->pointerInfo;
+}
+
 CLAY_WASM_EXPORT("Clay_Initialize")
 Clay_Context* Clay_Initialize(Clay_Arena arena, Clay_Dimensions layoutDimensions, Clay_ErrorHandler errorHandler) {
     Clay_Context *context = Clay__Context_Allocate_Arena(&arena);