---
title: "Perform a gesture"
method: POST
path: "/api/v1/ui/actions/gesture"
tags: ["ui-actions"]
---

# Perform a gesture

`POST /api/v1/ui/actions/gesture`

Performs a named gesture — pinch, rotate, pan, swipe, doubletap, longpress or tap. The gesture is first offered to a matching MAUI gesture recognizer on the target element or its ancestors. If there is none, it is injected natively at the platform view, which is how pinch-to-zoom reaches controls that handle gestures internally such as Map, WebView and native scroll views. The response reports which tier serviced the gesture so callers can tell a real recognizer hit from a native fallback. Tap requires elementId; other gesture types target the current page when it is omitted.

## Request body

- GestureRequest — unresolved $ref

## Response `200`

Gesture performed.

- GestureResponse — unresolved $ref

## Other responses

- `400` — The gesture request was invalid or no recognizer/native surface handled it.
- `408` — Operation timed out.
- `409` — Capture is stale or a UI/native mutation or probe is temporarily busy. Retry after obtaining a fresh capture.
- `500` — Internal server error.
- `501` — Capability not implemented by the connected backend.

---

[API](https://skmtc.dev/dotnet/apis/devflow-agent-protocol.md) · [All operations](https://skmtc.dev/dotnet/apis/devflow-agent-protocol/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dotnet/devflow-agent-protocol/revisions/31dec8eed3de/schema)
