# Mosaic REST API reference

> The full reference for Mosaic’s local REST API: 194 routes in 21 groups, generated from the app’s own docs, plus authentication and errors.

Source: https://mosaicbrowser.com/docs/api

**Docs** REST API

## The local REST API, every route

Everything the Mosaic window does, a script on the same computer can do: make profiles, give them proxies, start them and drive them. This reference is built from the one the app ships, so it lists what your copy answers.

## Authentication

Mosaic runs the API inside the app, on `127.0.0.1`, so only programs on the same computer can reach it. Make a key on the API screen in Mosaic and send it with every request, in either header:

```
Authorization: Bearer msc_…
X-API-Key: msc_…
```

The secret is shown once and stored as a hash, so a lost key cannot be read back: revoke it and make another. `GET /health` is the one route that needs no key.

## Which plan answers

The API is part of Pro. On Free, a request with a valid key gets a `402` with `{ "error", "feature": "api" }`, while a wrong key is still a `401`, so a typo never looks like a billing problem. A limit reached inside a route, such as a sixth profile on Free, is also a `402` that names its `feature`.

## Why a web page cannot call it

A request carrying a `Sec-Fetch-Site` header other than `same-origin` came from a browser, and it gets a `403` before the route is read. Otherwise any site you visit could ask `/health` and learn that this computer runs an anti-detect browser. Scripts, `curl`, Puppeteer and Playwright do not send that header and are not affected.

## Conventions

- Bodies are JSON unless a route says otherwise. Ids are UUIDs, times are ISO 8601 in UTC.
- `PATCH` changes the fields you send and leaves the rest alone. An unknown field is refused by name, not dropped.
- Deleting a profile or a project moves it to the trash. Nothing is destroyed until it is purged, after 30 days or through the trash routes.
- An error is `{ "error": "…" }` with a 4xx or 5xx status. A 4xx sentence is written for you; a 500 is a bug of ours.

## Attaching Playwright or Puppeteer

`POST /profiles/:id/start` returns a `wsEndpoint`. Connect to it and use the context that is already there, because a new context starts with none of the profile’s cookies:

```
const started = await fetch(`${BASE}/profiles/${id}/start`, {
  method: 'POST', headers: { Authorization: `Bearer ${KEY}` }
}).then((r) => r.json())

const browser = await chromium.connectOverCDP(started.wsEndpoint)
const context = browser.contexts()[0]
```

The port is `7317` on a new install and can be changed in Settings; the API screen in Mosaic shows the address this copy listens on. An assistant that speaks MCP has its own door: the [MCP tools](https://mosaicbrowser.com/docs/mcp).

## Profiles

Make profiles, run them, draw and repair their fingerprints, and organise them into projects and tags.

### [Profiles](https://mosaicbrowser.com/docs/api/profiles) 16

- [GET`/profiles`List profiles](https://mosaicbrowser.com/docs/api/profiles#list-profiles)
- [POST`/profiles`Create a profile](https://mosaicbrowser.com/docs/api/profiles#create-profile)
- [GET`/profiles/:id`Read one profile](https://mosaicbrowser.com/docs/api/profiles#get-profile)
- [PATCH`/profiles/:id`Update a profile](https://mosaicbrowser.com/docs/api/profiles#update-profile)
- [DELETE`/profiles/:id`Move a profile to the trash](https://mosaicbrowser.com/docs/api/profiles#delete-profile)
- [POST`/profiles/:id/duplicate`Duplicate a profile](https://mosaicbrowser.com/docs/api/profiles#duplicate-profile)
- [POST`/profiles/:id/proxy/save`Save a profile’s proxy to the library](https://mosaicbrowser.com/docs/api/profiles#save-profile-proxy)
- [POST`/profiles/:id/shortcut`Put a profile on the desktop](https://mosaicbrowser.com/docs/api/profiles#profile-shortcut)
- [POST`/profiles/bulk/move`Move profiles between projects](https://mosaicbrowser.com/docs/api/profiles#bulk-move)
- [POST`/profiles/bulk/tags`Add or remove tags in bulk](https://mosaicbrowser.com/docs/api/profiles#bulk-tags)
- [POST`/profiles/bulk/edit`Apply one change to many profiles](https://mosaicbrowser.com/docs/api/profiles#bulk-edit)
- [POST`/profiles/:id/clear-cache`Clear a profile’s cache, keep its logins](https://mosaicbrowser.com/docs/api/profiles#clear-cache)
- [POST`/profiles/bulk/clear-cache`Clear several profiles’ caches](https://mosaicbrowser.com/docs/api/profiles#bulk-clear-cache)
- [POST`/profiles/bulk/delete`Move many profiles to the trash](https://mosaicbrowser.com/docs/api/profiles#bulk-delete)
- [POST`/profiles/bulk/start`Start several profiles](https://mosaicbrowser.com/docs/api/profiles#bulk-start)
- [POST`/profiles/bulk/stop`Stop several profiles](https://mosaicbrowser.com/docs/api/profiles#bulk-stop)

### [Running a profile](https://mosaicbrowser.com/docs/api/lifecycle) 8

- [POST`/running/arrange`Lay the running windows out on screen](https://mosaicbrowser.com/docs/api/lifecycle#running-arrange)
- [POST`/running/type`Type the same text into every running profile](https://mosaicbrowser.com/docs/api/lifecycle#running-type)
- [POST`/running/navigate`Send every running profile to a URL](https://mosaicbrowser.com/docs/api/lifecycle#running-navigate)
- [POST`/profiles/:id/start`Start a profile](https://mosaicbrowser.com/docs/api/lifecycle#start-profile)
- [POST`/profiles/:id/stop`Stop a profile](https://mosaicbrowser.com/docs/api/lifecycle#stop-profile)
- [GET`/profiles/:id/status`Read live status](https://mosaicbrowser.com/docs/api/lifecycle#profile-status)
- [GET`/running`List every running profile](https://mosaicbrowser.com/docs/api/lifecycle#list-running)
- [POST`/running/stop-all`Stop everything](https://mosaicbrowser.com/docs/api/lifecycle#stop-all)

### [Fingerprints](https://mosaicbrowser.com/docs/api/fingerprints) 7

- [POST`/fingerprints/generate`Generate a fingerprint](https://mosaicbrowser.com/docs/api/fingerprints#generate-fingerprint)
- [POST`/profiles/:id/fingerprint/regenerate`Regenerate a profile’s identity](https://mosaicbrowser.com/docs/api/fingerprints#regenerate-fingerprint)
- [POST`/profiles/:id/fingerprint/validate`Check a profile’s identity for contradictions](https://mosaicbrowser.com/docs/api/fingerprints#validate-fingerprint)
- [GET`/fingerprints/devices`List the real devices a profile can claim](https://mosaicbrowser.com/docs/api/fingerprints#list-devices)
- [POST`/fingerprints/audit`Check a fingerprint that has not been saved](https://mosaicbrowser.com/docs/api/fingerprints#audit-fingerprint)
- [POST`/profiles/:id/audit`Run a detection audit](https://mosaicbrowser.com/docs/api/fingerprints#audit-profile)
- [GET`/seed`Get a fresh seed](https://mosaicbrowser.com/docs/api/fingerprints#new-seed)

### [Projects and tags](https://mosaicbrowser.com/docs/api/organisation) 9

- [GET`/projects`List projects](https://mosaicbrowser.com/docs/api/organisation#list-projects)
- [POST`/projects`Create a project](https://mosaicbrowser.com/docs/api/organisation#create-project)
- [GET`/projects/:id`Read one project](https://mosaicbrowser.com/docs/api/organisation#get-project)
- [PATCH`/projects/:id`Update a project](https://mosaicbrowser.com/docs/api/organisation#update-project)
- [DELETE`/projects/:id`Move a project to the trash](https://mosaicbrowser.com/docs/api/organisation#delete-project)
- [GET`/tags`List tags](https://mosaicbrowser.com/docs/api/organisation#list-tags)
- [POST`/tags`Create a tag](https://mosaicbrowser.com/docs/api/organisation#create-tag)
- [PATCH`/tags/:id`Update a tag](https://mosaicbrowser.com/docs/api/organisation#update-tag)
- [DELETE`/tags/:id`Delete a tag](https://mosaicbrowser.com/docs/api/organisation#delete-tag)

## Proxies

Saved proxies, and the provider accounts that mint a fresh exit per profile.

### [Proxy providers](https://mosaicbrowser.com/docs/api/providers) 10

- [GET`/providers`List providers](https://mosaicbrowser.com/docs/api/providers#list-providers)
- [POST`/providers`Add a provider](https://mosaicbrowser.com/docs/api/providers#create-provider)
- [POST`/providers/parse`Read a line without saving it](https://mosaicbrowser.com/docs/api/providers#parse-provider-line)
- [GET`/providers/vendors`Every seller this app recognises](https://mosaicbrowser.com/docs/api/providers#list-vendors)
- [GET`/providers/places`Where an exit can be asked to be](https://mosaicbrowser.com/docs/api/providers#list-places)
- [GET`/providers/:id`Read one provider](https://mosaicbrowser.com/docs/api/providers#get-provider)
- [PATCH`/providers/:id`Rename, re-note, or replace the line](https://mosaicbrowser.com/docs/api/providers#update-provider)
- [DELETE`/providers/:id`Delete a provider](https://mosaicbrowser.com/docs/api/providers#delete-provider)
- [POST`/providers/:id/check`Check a provider](https://mosaicbrowser.com/docs/api/providers#check-provider)
- [POST`/providers/:id/mint`Mint a proxy without attaching it](https://mosaicbrowser.com/docs/api/providers#mint-proxy)

### [Proxies](https://mosaicbrowser.com/docs/api/proxies) 24

- [GET`/proxies`List saved proxies](https://mosaicbrowser.com/docs/api/proxies#list-proxies)
- [POST`/proxies`Save a proxy](https://mosaicbrowser.com/docs/api/proxies#create-proxy)
- [GET`/proxies/checking`Which proxies are being checked](https://mosaicbrowser.com/docs/api/proxies#proxies-checking)
- [GET`/proxies/:id`Read one proxy](https://mosaicbrowser.com/docs/api/proxies#get-proxy)
- [PATCH`/proxies/:id`Update a proxy](https://mosaicbrowser.com/docs/api/proxies#update-proxy)
- [DELETE`/proxies/:id`Delete a proxy](https://mosaicbrowser.com/docs/api/proxies#delete-proxy)
- [POST`/proxies/:id/check`Check a saved proxy](https://mosaicbrowser.com/docs/api/proxies#check-proxy)
- [POST`/proxies/:id/reputation`Scan a proxy’s reputation](https://mosaicbrowser.com/docs/api/proxies#proxy-reputation)
- [POST`/proxies/parse`Read a proxy list without saving](https://mosaicbrowser.com/docs/api/proxies#parse-proxies)
- [POST`/proxies/import`Import a proxy list](https://mosaicbrowser.com/docs/api/proxies#import-proxies)
- [GET`/proxies/export`Export proxies as text](https://mosaicbrowser.com/docs/api/proxies#export-proxies)
- [POST`/proxies/check`Check several proxies](https://mosaicbrowser.com/docs/api/proxies#check-proxies)
- [POST`/proxies/:id/rotate`Rotate a proxy through its change-IP link](https://mosaicbrowser.com/docs/api/proxies#rotate-proxy)
- [POST`/proxies/rotate`Rotate several proxies](https://mosaicbrowser.com/docs/api/proxies#rotate-proxies)
- [POST`/proxies/assign`Attach proxies to profiles](https://mosaicbrowser.com/docs/api/proxies#assign-proxy)
- [POST`/proxies/scope`Move proxies between projects](https://mosaicbrowser.com/docs/api/proxies#proxy-scope)
- [GET`/proxies/providers/list`List known providers](https://mosaicbrowser.com/docs/api/proxies#proxy-providers)
- [POST`/proxy/check`Check a proxy without saving it](https://mosaicbrowser.com/docs/api/proxies#check-adhoc-proxy)
- [POST`/profiles/:id/match-exit`Match the identity to the proxy exit](https://mosaicbrowser.com/docs/api/proxies#match-exit)
- [POST`/profiles/bulk/match-exit`Match many identities to their exits](https://mosaicbrowser.com/docs/api/proxies#bulk-match-exit)
- [POST`/profiles/:id/repair-hardware`Move the hardware onto a real machine](https://mosaicbrowser.com/docs/api/proxies#repair-hardware)
- [POST`/profiles/bulk/repair-hardware`Repair hardware across many profiles](https://mosaicbrowser.com/docs/api/proxies#bulk-repair-hardware)
- [POST`/profiles/:id/proxy/check`Check a profile’s own proxy](https://mosaicbrowser.com/docs/api/proxies#check-profile-proxy)
- [POST`/profiles/:id/leak-test`Run a leak test](https://mosaicbrowser.com/docs/api/proxies#leak-test)

## A profile’s data

Everything one profile carries: its cookies, its saved logins and 2FA codes, its bookmarks and its downloads.

### [Cookies](https://mosaicbrowser.com/docs/api/cookies) 3

- [GET`/profiles/:id/cookies`Read a profile’s cookies](https://mosaicbrowser.com/docs/api/cookies#get-cookies)
- [POST`/profiles/:id/cookies`Import cookies](https://mosaicbrowser.com/docs/api/cookies#set-cookies)
- [DELETE`/profiles/:id/cookies`Clear stored cookies](https://mosaicbrowser.com/docs/api/cookies#clear-cookies)

### [Credentials](https://mosaicbrowser.com/docs/api/credentials) 11

- [GET`/profiles/:id/credentials`List a profile’s saved logins](https://mosaicbrowser.com/docs/api/credentials#list-credentials)
- [POST`/profiles/:id/credentials`Save a login](https://mosaicbrowser.com/docs/api/credentials#add-credential)
- [PATCH`/profiles/:id/credentials/:credentialId`Change a saved login](https://mosaicbrowser.com/docs/api/credentials#update-credential)
- [DELETE`/profiles/:id/credentials/:credentialId`Delete a saved login](https://mosaicbrowser.com/docs/api/credentials#delete-credential)
- [GET`/profiles/:id/browser/logins`Read the browser’s own saved logins](https://mosaicbrowser.com/docs/api/credentials#browser-logins)
- [POST`/profiles/:id/browser/logins`Save a login into the browser itself](https://mosaicbrowser.com/docs/api/credentials#browser-login-add)
- [DELETE`/profiles/:id/browser/logins`Remove one saved login from the browser](https://mosaicbrowser.com/docs/api/credentials#browser-login-remove)
- [GET`/profiles/:id/browser/bookmarks`Read the browser’s own bookmarks](https://mosaicbrowser.com/docs/api/credentials#browser-bookmarks)
- [GET`/profiles/:id/browser/history`Read the domains this profile has visited](https://mosaicbrowser.com/docs/api/credentials#browser-history)
- [GET`/profiles/:id/credentials/:credentialId/totp`Generate a two-factor code](https://mosaicbrowser.com/docs/api/credentials#credential-totp)
- [POST`/profiles/:id/credentials/:credentialId/fill`Type a login into the running profile](https://mosaicbrowser.com/docs/api/credentials#fill-credential)

### [Bookmarks](https://mosaicbrowser.com/docs/api/bookmarks) 2

- [GET`/profiles/:id/bookmarks`Read a profile’s bookmarks](https://mosaicbrowser.com/docs/api/bookmarks#get-bookmarks)
- [POST`/profiles/:id/bookmarks`Replace the bookmarks](https://mosaicbrowser.com/docs/api/bookmarks#set-bookmarks)

### [Downloads](https://mosaicbrowser.com/docs/api/downloads) 3

- [GET`/downloads`What each profile has saved](https://mosaicbrowser.com/docs/api/downloads#list-downloads)
- [DELETE`/downloads/:profileId`Empty one profile’s files](https://mosaicbrowser.com/docs/api/downloads#clear-profile-downloads)
- [POST`/downloads/clear`Empty several, by name](https://mosaicbrowser.com/docs/api/downloads#clear-downloads)

## Content and transfer

Extensions, presets, and moving whole profiles in and out of Mosaic.

### [Extensions and templates](https://mosaicbrowser.com/docs/api/extensions) 9

- [GET`/extensions`List the extension library](https://mosaicbrowser.com/docs/api/extensions#list-extensions)
- [POST`/extensions`Register an extension](https://mosaicbrowser.com/docs/api/extensions#add-extension)
- [PATCH`/extensions/:id`Update an extension](https://mosaicbrowser.com/docs/api/extensions#update-extension)
- [DELETE`/extensions/:id`Remove from the library](https://mosaicbrowser.com/docs/api/extensions#delete-extension)
- [GET`/templates`List presets](https://mosaicbrowser.com/docs/api/extensions#list-templates)
- [POST`/templates`Author a preset](https://mosaicbrowser.com/docs/api/extensions#create-template)
- [PATCH`/templates/:id`Change a preset](https://mosaicbrowser.com/docs/api/extensions#update-template)
- [POST`/templates/from-profile`Save a profile as a preset](https://mosaicbrowser.com/docs/api/extensions#template-from-profile)
- [DELETE`/templates/:id`Delete a preset](https://mosaicbrowser.com/docs/api/extensions#delete-template)

### [Import and export](https://mosaicbrowser.com/docs/api/transfer) 3

- [GET`/profiles/:id/export`Export one profile](https://mosaicbrowser.com/docs/api/transfer#export-profile)
- [POST`/profiles/export`Export many profiles](https://mosaicbrowser.com/docs/api/transfer#export-profiles)
- [POST`/profiles/import`Import an archive](https://mosaicbrowser.com/docs/api/transfer#import-profiles)

## Automation

Drive a live page the way a person would — tabs, clicks, reading the DOM, and typing with human timing.

### [Tabs](https://mosaicbrowser.com/docs/api/tabs) 11

- [GET`/profiles/:id/tabs`List open tabs](https://mosaicbrowser.com/docs/api/tabs#list-tabs)
- [POST`/profiles/:id/tabs`Open a tab](https://mosaicbrowser.com/docs/api/tabs#open-tab)
- [DELETE`/profiles/:id/tabs/:tabId`Close a tab](https://mosaicbrowser.com/docs/api/tabs#close-tab)
- [POST`/profiles/:id/tabs/navigate`Navigate a tab](https://mosaicbrowser.com/docs/api/tabs#navigate-tab)
- [GET`/profiles/:id/tabs/read`Read a page](https://mosaicbrowser.com/docs/api/tabs#read-tab)
- [GET`/profiles/:id/tabs/screenshot`Screenshot a tab](https://mosaicbrowser.com/docs/api/tabs#screenshot-tab)
- [POST`/profiles/:id/tabs/evaluate`Run script in a tab](https://mosaicbrowser.com/docs/api/tabs#evaluate-tab)
- [POST`/profiles/:id/tabs/click`Click a selector](https://mosaicbrowser.com/docs/api/tabs#click-tab)
- [POST`/profiles/:id/tabs/watch-network`Record requests for a window](https://mosaicbrowser.com/docs/api/tabs#watch-network-tab)
- [GET`/profiles/:id/tabs/storage`Read site storage](https://mosaicbrowser.com/docs/api/tabs#read-tab-storage)
- [POST`/profiles/:id/tabs/storage`Write site storage](https://mosaicbrowser.com/docs/api/tabs#write-tab-storage)

### [Page control](https://mosaicbrowser.com/docs/api/page-control) 28

- [GET`/profiles/:id/page/snapshot`Snapshot the page](https://mosaicbrowser.com/docs/api/page-control#page-snapshot)
- [GET`/profiles/:id/page/find`Find elements](https://mosaicbrowser.com/docs/api/page-control#page-find)
- [GET`/profiles/:id/page/dom`Read the HTML](https://mosaicbrowser.com/docs/api/page-control#page-dom)
- [GET`/profiles/:id/page/screenshot`Screenshot the page or an element](https://mosaicbrowser.com/docs/api/page-control#page-screenshot)
- [POST`/profiles/:id/page/click`Click](https://mosaicbrowser.com/docs/api/page-control#page-click)
- [POST`/profiles/:id/page/hover`Hover](https://mosaicbrowser.com/docs/api/page-control#page-hover)
- [POST`/profiles/:id/page/type`Type](https://mosaicbrowser.com/docs/api/page-control#page-type)
- [POST`/profiles/:id/page/fill`Clear and fill a field](https://mosaicbrowser.com/docs/api/page-control#page-fill)
- [POST`/profiles/:id/page/press`Press a key](https://mosaicbrowser.com/docs/api/page-control#page-press)
- [POST`/profiles/:id/page/select`Choose in a select](https://mosaicbrowser.com/docs/api/page-control#page-select)
- [POST`/profiles/:id/page/scroll`Scroll](https://mosaicbrowser.com/docs/api/page-control#page-scroll)
- [POST`/profiles/:id/page/drag`Drag](https://mosaicbrowser.com/docs/api/page-control#page-drag)
- [POST`/profiles/:id/page/upload`Attach files](https://mosaicbrowser.com/docs/api/page-control#page-upload)
- [POST`/profiles/:id/page/navigate`Navigate](https://mosaicbrowser.com/docs/api/page-control#page-navigate)
- [POST`/profiles/:id/page/reload`Reload](https://mosaicbrowser.com/docs/api/page-control#page-reload)
- [POST`/profiles/:id/page/history`Back or forward](https://mosaicbrowser.com/docs/api/page-control#page-history)
- [POST`/profiles/:id/page/wait`Wait for the page](https://mosaicbrowser.com/docs/api/page-control#page-wait)
- [POST`/profiles/:id/page/evaluate`Run script](https://mosaicbrowser.com/docs/api/page-control#page-evaluate)
- [GET`/profiles/:id/page/console`Read the console](https://mosaicbrowser.com/docs/api/page-control#page-console)
- [POST`/profiles/:id/page/console-mode`Capture page console calls](https://mosaicbrowser.com/docs/api/page-control#page-console-mode)
- [POST`/profiles/:id/page/network/start`Start the request log](https://mosaicbrowser.com/docs/api/page-control#page-network-start)
- [GET`/profiles/:id/page/network`Read the request log](https://mosaicbrowser.com/docs/api/page-control#page-network)
- [POST`/profiles/:id/page/network/stop`Stop the request log](https://mosaicbrowser.com/docs/api/page-control#page-network-stop)
- [POST`/profiles/:id/page/network/body`Read a response body](https://mosaicbrowser.com/docs/api/page-control#page-network-body)
- [GET`/profiles/:id/page/dialogs`Read dialogs](https://mosaicbrowser.com/docs/api/page-control#page-dialogs-read)
- [POST`/profiles/:id/page/dialogs`Set the dialog policy](https://mosaicbrowser.com/docs/api/page-control#page-dialogs-set)
- [GET`/page/attachments`List page attachments](https://mosaicbrowser.com/docs/api/page-control#page-attachments)
- [POST`/profiles/:id/page/detach`Release an attachment](https://mosaicbrowser.com/docs/api/page-control#page-detach)

### [Human typing](https://mosaicbrowser.com/docs/api/typing) 2

- [GET`/typing/defaults`Read the typing defaults](https://mosaicbrowser.com/docs/api/typing#typing-defaults)
- [POST`/profiles/:id/type`Type into a running profile](https://mosaicbrowser.com/docs/api/typing#type-text)

## Preparing and testing

Warm a profile up before it meets the site that matters, and run it past the public detectors.

### [Warm-up](https://mosaicbrowser.com/docs/api/warmup) 12

- [GET`/warmup/presets`List warm-up presets](https://mosaicbrowser.com/docs/api/warmup#warmup-presets)
- [POST`/profiles/:id/warmup/plan`Preview the site list](https://mosaicbrowser.com/docs/api/warmup#warmup-plan)
- [POST`/profiles/:id/warmup`Warm a profile up](https://mosaicbrowser.com/docs/api/warmup#warmup-run)
- [POST`/profiles/:id/warmup/cancel`Stop a warm-up](https://mosaicbrowser.com/docs/api/warmup#warmup-cancel)
- [GET`/warmup/running`List warm-ups in progress](https://mosaicbrowser.com/docs/api/warmup#warmup-running)
- [GET`/warmup/plans`List saved plans](https://mosaicbrowser.com/docs/api/warmup#list-warmup-plans)
- [GET`/warmup/plans/:id`Read one plan](https://mosaicbrowser.com/docs/api/warmup#get-warmup-plan)
- [POST`/warmup/plans`Create a plan](https://mosaicbrowser.com/docs/api/warmup#create-warmup-plan)
- [PATCH`/warmup/plans/:id`Change a plan](https://mosaicbrowser.com/docs/api/warmup#update-warmup-plan)
- [DELETE`/warmup/plans/:id`Delete a plan](https://mosaicbrowser.com/docs/api/warmup#delete-warmup-plan)
- [POST`/warmup/run`Warm many profiles with one plan](https://mosaicbrowser.com/docs/api/warmup#warmup-run-many)
- [POST`/warmup/cancel`Stop a batch](https://mosaicbrowser.com/docs/api/warmup#warmup-cancel-all)

### [Detection tests](https://mosaicbrowser.com/docs/api/detection) 2

- [GET`/detection-tests`List the detection test catalogue](https://mosaicbrowser.com/docs/api/detection#detection-tests)
- [POST`/profiles/:id/detection-test`Open a profile on a detection test](https://mosaicbrowser.com/docs/api/detection#detection-open)

## Housekeeping

The trash, and the library backups.

### [Trash](https://mosaicbrowser.com/docs/api/trash) 8

- [GET`/trash`List trashed items](https://mosaicbrowser.com/docs/api/trash#list-trash)
- [POST`/trash/profiles/:id/restore`Restore a profile](https://mosaicbrowser.com/docs/api/trash#restore-profile)
- [DELETE`/trash/profiles/:id`Purge a profile](https://mosaicbrowser.com/docs/api/trash#purge-profile)
- [POST`/trash/projects/:id/restore`Restore a project](https://mosaicbrowser.com/docs/api/trash#restore-project)
- [DELETE`/trash/projects/:id`Purge a project](https://mosaicbrowser.com/docs/api/trash#purge-project)
- [POST`/trash/warmup/plans/:id/restore`Restore a warm-up plan](https://mosaicbrowser.com/docs/api/trash#restore-warmup-plan)
- [DELETE`/trash/warmup/plans/:id`Purge a warm-up plan](https://mosaicbrowser.com/docs/api/trash#purge-warmup-plan)
- [POST`/trash/empty`Empty the trash](https://mosaicbrowser.com/docs/api/trash#empty-trash)

### [Backups](https://mosaicbrowser.com/docs/api/backups) 4

- [GET`/backups`List snapshots](https://mosaicbrowser.com/docs/api/backups#list-backups)
- [POST`/backups`Take a snapshot now](https://mosaicbrowser.com/docs/api/backups#create-backup)
- [GET`/backups/:id`See what a restore would do](https://mosaicbrowser.com/docs/api/backups#preview-restore)
- [POST`/backups/:id/restore`Restore profiles from a snapshot](https://mosaicbrowser.com/docs/api/backups#restore-backup)

## System

Settings, engines, updates, keys and the health of the running app.

### [Application](https://mosaicbrowser.com/docs/api/application) 16

- [GET`/updates`Is there a newer Mosaic](https://mosaicbrowser.com/docs/api/application#updates-check)
- [POST`/updates/download`Fetch and verify a newer version](https://mosaicbrowser.com/docs/api/application#updates-download)
- [POST`/updates/apply`Restart into the downloaded version](https://mosaicbrowser.com/docs/api/application#updates-apply)
- [GET`/overview`What is wrong with this library](https://mosaicbrowser.com/docs/api/application#overview)
- [GET`/app`Version, platform and where the data lives](https://mosaicbrowser.com/docs/api/application#app-info)
- [POST`/mcp/restart`Restart the MCP server](https://mosaicbrowser.com/docs/api/application#mcp-restart)
- [GET`/health`Health check](https://mosaicbrowser.com/docs/api/application#health)
- [GET`/events`Stream profile status changes](https://mosaicbrowser.com/docs/api/application#events)
- [GET`/activity`What the API is doing right now](https://mosaicbrowser.com/docs/api/application#api-activity)
- [GET`/engines`List browser engines](https://mosaicbrowser.com/docs/api/application#list-engines)
- [GET`/engines/available`What the engine manifest offers](https://mosaicbrowser.com/docs/api/application#engines-available)
- [POST`/engines/install`Install the engine](https://mosaicbrowser.com/docs/api/application#engines-install)
- [GET`/account`The plan this install is on](https://mosaicbrowser.com/docs/api/application#get-account)
- [DELETE`/account`Delete the account, for good](https://mosaicbrowser.com/docs/api/application#delete-account)
- [GET`/settings`Read settings](https://mosaicbrowser.com/docs/api/application#get-settings)
- [PATCH`/settings`Update settings](https://mosaicbrowser.com/docs/api/application#update-settings)

## More

### [Support](https://mosaicbrowser.com/docs/api/support) 6

- [POST`/support/tickets`File a support request](https://mosaicbrowser.com/docs/api/support#submit-support)
- [GET`/support/tickets`List my support requests](https://mosaicbrowser.com/docs/api/support#list-support)
- [GET`/support/tickets/:id`Read one support request](https://mosaicbrowser.com/docs/api/support#get-support)
- [POST`/support/tickets/:id/replies`Reply to a support request](https://mosaicbrowser.com/docs/api/support#reply-support)
- [GET`/support/tickets/:id/screenshots/:screenshotId`Read one screenshot](https://mosaicbrowser.com/docs/api/support#support-screenshot)
- [GET`/support/diagnostics`Preview the diagnostics](https://mosaicbrowser.com/docs/api/support#support-diagnostics)

## Run the API on your own profiles

The REST API and the MCP server are part of Pro: $49 a month, with the first 14 days free. Free has every browser feature and no API key.

Mosaic is a desktop app

Email yourself the link and open it on your computer.
