**Donut imports existing Chromium-family profiles in bulk.** Chrome, Chromium, Brave, Microsoft Edge, Opera, Opera GX, Vivaldi, Arc, Yandex, and the Chrome/Brave beta and dev channels all become Wayfern (anti-detect Chromium) profiles — history, cookies, extensions state, and local storage come along; each imported profile gets its own freshly generated fingerprint. Importing is free on every tier.

### In the app

Open the **Import** page from the rail navigation. Two ways in:

- **Auto-detect** scans the default locations of every supported Chromium-family browser (Chrome, Chromium, Brave, Edge, Opera, Opera GX, Vivaldi, Arc, Yandex, and beta/dev channels) and lists every profile it finds. Tick the ones you want (or _Select all_).
- **Manual** points at any path: a single profile folder, a whole browser user-data folder (`Default`, `Profile 2`, …), a folder holding one exported profile per subfolder, or a **ZIP archive** of any of those shapes.

Before importing you can, in one pass:

- rename each profile;
- assign every imported profile to a **group** (or create a new group inline);
- attach a proxy — one proxy for all, or **round-robin across your stored proxies**;
- pick a duplicate strategy: **rename automatically** (`Name (2)`, `Name (3)`, …) or **skip**.

Imports run per-item: one broken profile never aborts the batch, and a progress bar tracks the copy. A results screen shows exactly what was imported, skipped, or failed.

### Via the REST API

Three endpoints cover the whole migration (see the [API reference](/docs/rest-api) for full request/response schemas):

- [`GET /v1/profiles/import/detect`](/docs/rest-api#detect-import-profiles) — list importable profiles, optionally from a custom `?folder=`.
- [`POST /v1/profiles/import`](/docs/rest-api#import-profiles) — bulk-import with `group_id`, per-item `proxy_id`, and `duplicate_strategy`.
- [`POST /v1/proxies/import`](/docs/rest-api#import-proxies) — bulk-add proxies from a plain-text list (`host:port:user:pass`, URL forms) or a Donut JSON export.

A minimal migration:

```bash
# 1. See what's on this machine
curl -sS http://127.0.0.1:10108/v1/profiles/import/detect \
  -H "Authorization: Bearer $DONUT_API_KEY" | jq '.profiles[].path'

# 2. Import everything into a group
curl -sS -X POST http://127.0.0.1:10108/v1/profiles/import \
  -H "Authorization: Bearer $DONUT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      { "source_path": "/Users/me/Library/Application Support/Google/Chrome/Default", "new_profile_name": "Old Chrome" }
    ],
    "group_id": "e2074e8e-2a9e-46dd-a91e-c34c88ee1e35",
    "duplicate_strategy": "rename"
  }'
```

### Via MCP

The [MCP server](/docs/mcp) exposes the same surface as tools, so an AI assistant can run the entire migration conversationally:

- `detect_browser_profiles` — find importable profiles (optionally in a custom folder);
- `import_browser_profiles` — bulk-import with group assignment and duplicate handling;
- plus the existing `import_proxies`, `create_group`, and `assign_profiles_to_group`.

A prompt like _"detect my Chrome profiles, import them all into a group called Migration, and assign my stored proxies round-robin"_ maps 1:1 onto these tools.

### Good to know

- A downloaded Wayfern version must already be present — the import path never downloads browsers.
- Fingerprints are generated per imported profile. Setting a fingerprint `os` (cross-OS spoofing) requires Pro; everything else about importing is free.
- Firefox/Gecko profiles can't be converted to a Chromium engine. Migrate their cookies instead via [`POST /v1/profiles/{id}/cookies/import`](/docs/rest-api).
- Migrating from another anti-detect browser? If it exports raw Chromium profile directories (most do), point the folder or ZIP import at the export.