# Introduction to the Donobu API

## What the Donobu API is, its local-first architecture, and when you might need to use it directly.

## What is the Donobu API?

The Donobu API is a local REST API that runs at `http://localhost:31000` when Donobu Studio is running. It powers both [Donobu Studio](/content/docs/studio/index.html) and the [Donobu Playwright Extension](/content/docs/playwright/index.html).

When you create a flow in Studio or call `page.ai()` in a Playwright test, the request goes to this API, which orchestrates the browser automation — launching the browser, running AI-driven actions, capturing screenshots, and recording results.

## Local-first architecture

The API runs entirely on your local machine. No data is sent to external servers (other than LLM provider API calls for AI decision-making). This means:

- **Privacy** — Your automation data stays on your machine
- **Speed** — No network round-trips to a remote server
- **Offline-capable** — Works without internet access (except for LLM API calls in autonomous mode)

## When to use the API directly

Most users should interact with Donobu through **Studio** or the **Playwright Extension** rather than calling the API directly. The API is useful for:

- **Custom integrations** — Building your own tooling on top of Donobu
- **Programmatic flow management** — Creating, listing, or deleting flows from scripts
- **Advanced configuration** — Managing GPT providers, environment variables, and agent assignments programmatically
- **MCP server** — The [Donobu MCP server](/content/docs/api/mcp-server/index.html) uses the API to bridge AI coding assistants with browser testing

If you're just getting started, we recommend beginning with [Donobu Studio](/content/docs/studio/index.html) (visual, no-code) or the [Playwright Extension](/content/docs/playwright/index.html) (TypeScript tests).

## API basics

- **Base URL:**`http://localhost:31000`
- **Authentication:** None required (the API only accepts local connections)
- **Format:** JSON request and response bodies
- **Health check:**`GET /api/ping` — returns `{"status": "pong"}`

See the [API Reference](/content/docs/api/index.html) for the complete list of endpoints.
