> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.flashid.app/llms.txt.
> For full documentation content, see https://docs.flashid.app/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.flashid.app/_mcp/server.

# Overview

# FlashID Local API

Programmatic access to the FlashID desktop client over a local HTTP service.

|                        |                                                                     |
| ---------------------- | ------------------------------------------------------------------- |
| **Base URL**           | `http://127.0.0.1:58931` (the `baseUrl` variable)                   |
| **Auth**               | `X-API-Key` header on every request except `GET /api/system/health` |
| **Binding**            | `127.0.0.1` only — not exposed to the network                       |
| **Enabled by default** | Off — enable it on the client Settings page                         |

Set your key in the `apiKey` collection variable. Each request includes a saved **Example** response.

## Response envelope

Success: `{ "success": true, "code": 0, "data": {...} }`

Error: `{ "success": false, "code": <number>, "message": "..." }`

## Error codes

**Every response is HTTP 200** — the body `code` is the sole signal (`success:false` + non-zero `code` on error).

| `code` | Name                      |
| ------ | ------------------------- |
| `0`    | SUCCESS                   |
| `1001` | UNAUTHORIZED              |
| `1002` | INVALID\_API\_KEY         |
| `1003` | RATE\_LIMITED             |
| `1004` | FORBIDDEN                 |
| `1005` | NOT\_IN\_WORKSPACE        |
| `2001` | BAD\_REQUEST              |
| `2002` | VALIDATION\_FAILED        |
| `2003` | MISSING\_PARAM            |
| `3001` | BROWSER\_OPEN\_FAILED     |
| `3002` | BROWSER\_CLOSE\_FAILED    |
| `3003` | BROWSER\_NOT\_FOUND       |
| `3004` | BROWSER\_IN\_USE          |
| `3005` | DISK\_INSUFFICIENT        |
| `3006` | WRITE\_PERMISSION\_DENIED |
| `3007` | KERNEL\_ERROR             |
| `3008` | KERNEL\_DOWNLOADING       |
| `3009` | BROWSER\_LAUNCH\_FAILED   |
| `3010` | CONFIG\_FETCH\_FAILED     |
| `3011` | FILE\_PREPARE\_FAILED     |
| `3012` | BROWSER\_OPEN\_TIMEOUT    |
| `4001` | PROXY\_CHECK\_FAILED      |
| `4002` | PROXY\_INVALID            |
| `5001` | PROFILE\_NOT\_FOUND       |
| `5002` | PROFILE\_FETCH\_FAILED    |
| `5003` | QUOTA\_EXCEEDED           |
| `5004` | PROFILE\_CREATE\_FAILED   |
| `5005` | SUBSCRIPTION\_EXPIRED     |
| `6001` | FOLDER\_NOT\_FOUND        |
| `6002` | WORKSPACE\_NOT\_FOUND     |
| `9001` | INTERNAL\_ERROR           |
| `9002` | SERVICE\_UNAVAILABLE      |

## Rate limiting