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

# Flick by Description

> Swipe from an element using natural language description

Flick (quick swipe) starting from an element described in natural language. Uses vision AI to find the element and flick from there.

## Request

```bash theme={null}
curl -X POST https://api.tapkit.ai/v1/phones/{phone_id}/flick/select \
  -H "X-API-Key: joot_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"selector": "the message list", "direction": "down"}'
```

### Path Parameters

| Parameter  | Type     | Description          |
| ---------- | -------- | -------------------- |
| `phone_id` | `string` | The phone identifier |

### Query Parameters

| Parameter | Type      | Default | Description                    |
| --------- | --------- | ------- | ------------------------------ |
| `async`   | `boolean` | `false` | Return immediately with job ID |

### Request Body

```json theme={null}
{
  "selector": "the message list",
  "direction": "down"
}
```

| Field       | Type     | Description                                              |
| ----------- | -------- | -------------------------------------------------------- |
| `selector`  | `string` | Natural language description of where to start the flick |
| `direction` | `string` | `"up"`, `"down"`, `"left"`, or `"right"`                 |

## Response

### Synchronous

```json theme={null}
{
  "id": "job_abc123",
  "status": "completed",
  "result": {},
  "created_at": "2024-01-15T10:30:00Z",
  "completed_at": "2024-01-15T10:30:02Z"
}
```

### Asynchronous

```json theme={null}
{
  "job_id": "job_abc123"
}
```

## Examples

### Scroll a List

```bash theme={null}
curl -X POST https://api.tapkit.ai/v1/phones/abc123/flick/select \
  -H "X-API-Key: joot_..." \
  -H "Content-Type: application/json" \
  -d '{"selector": "the email inbox", "direction": "up"}'
```

### SDK Usage

The Python SDK provides this through the `flick()` method with a string argument:

```python theme={null}
phone.flick("the message list", "down")
phone.flick("the photo gallery", "left")
phone.flick("the settings menu", "up")
```

## Related Endpoints

* [Flick](/api-reference/phones/flick) - Flick at specific coordinates
