Skip to main content
The TapKit REST API gives you programmatic control over real iPhones. Everything in TapKit happens inside a session — a complete agent-controlled phone interaction.

Base URL

Authentication

All API endpoints require an API key in the X-API-Key header:
Get your API key from the TapKit dashboard. Keys start with joot_ followed by a random string.
API keys are sensitive credentials. Never commit them to version control or expose them in client-side code. Use environment variables instead.

Response format

All responses are JSON. Successful responses return the requested data:

Error responses

Errors return a consistent format:

Endpoint categories

Phone endpoints fall into a few different categories. Use Inspection for endpoints that ask the Mac app to report something from the connected phone, such as a screenshot or installed app list.

Sync vs async mode

Most state-changing endpoints support both synchronous and asynchronous execution. Inspection endpoints may return data directly, such as PNG image bytes for screenshots.

Synchronous (default)

Request blocks until the action completes:

Asynchronous

Add ?async=true to return immediately with a job ID:
Poll GET /v1/jobs/{job_id} to check status.

What’s next

Sessions

Understand the core concept — how agent-controlled phone interactions work.

Phones

Learn what you can control on a phone via the API.

Devices

List and manage connected phones.

Inspection

Read screenshots, app lists, and live phone state.

Gestures

Send touch input to the phone.

Device Commands

Press Home, lock, unlock, and open system surfaces.