More REST API
Support
Contact support, request a feature or report a bug, with screenshots, and read the replies. The same requests the Support page in the app files and lists.
File a support request
POST/api/v1/support/tickets
Sends a request to Mosaic’s support through the account server. kind is support (a question or a problem — this kind also emails the support inbox), feature or bug. Signed out works: the request then needs email, which is where the reply goes, and this install keeps the key that opens the thread so GET /support/tickets still lists it. Screenshots go as base64 in the body and are checked against the type they claim; their metadata — EXIF, XMP, text chunks — is stripped on the server before anything is stored. diagnostics: true attaches exactly what GET /support/diagnostics shows and nothing else: versions, the operating system and the last log lines with proxy credentials, tokens, email and IP addresses and the home folder scrubbed out. Every refusal names its field, here and again on the server, which reads the same limits.
Body
| Field | Type | What it is |
|---|---|---|
kind | string | support, feature or bug. Absent is support. |
subject | string | One line, up to 140 characters. Absent, it is the first line of message, cut near 60 characters — the window sends none. |
messagerequired | string | Up to 10,000 characters. |
email | string | Required when Mosaic is not signed in; when signed in the account’s address is used. |
screenshots | { name, type, data }[] | Up to 4. type is image/png, image/jpeg or image/webp; data is base64. 3 MB each, 8 MB together. |
diagnostics | boolean | Attach the scrubbed diagnostics. Default false — read them first. |
Returns
{ ticket: SupportTicket, guest } — guest is true when it was filed signed out.
Errors
- 400 — a field is missing or wrong, named.
- 429 — too many requests in the last hour.
- 502 — the account server could not be reached.
List my support requests
GET/api/v1/support/tickets
The account’s requests, and the ones filed from this install while signed out, newest activity first. status is open, in_progress, answered, fixed or closed; lastFrom: "staff" means an answer is waiting.
Returns
{ tickets: [{ id, kind, subject, status, email, createdAt, updatedAt, lastFrom, replies, screenshots }], signedIn }
Read one support request
GET/api/v1/support/tickets/:id
The request and its whole conversation, oldest first, with its screenshots listed. Someone else’s request is a 404, never a 403, so an id says nothing about whether it exists.
Path parameters
| Field | Type | What it is |
|---|---|---|
idrequired | string | The record’s id. |
Returns
{ ticket, messages: [{ id, from: "user"|"staff", body, createdAt }], screenshots: [{ id, name, type, size }] }
Reply to a support request
POST/api/v1/support/tickets/:id/replies
Adds a message to the thread. A reply to a request that was answered, fixed or closed opens it again.
Path parameters
| Field | Type | What it is |
|---|---|---|
idrequired | string | The record’s id. |
Body
| Field | Type | What it is |
|---|---|---|
messagerequired | string | Up to 10,000 characters. |
Returns
{ message, ticket }
Read one screenshot
GET/api/v1/support/tickets/:id/screenshots/:screenshotId
A screenshot of a request as base64 with its type — JSON rather than the raw image, so a model reads it the same way a script does.
Path parameters
| Field | Type | What it is |
|---|---|---|
idrequired | string | The record’s id. |
screenshotIdrequired | string | From GET /support/tickets/:id. |
Returns
{ type, data }
Preview the diagnostics
GET/api/v1/support/diagnostics
Exactly the text diagnostics: true attaches, already scrubbed. Nothing is sent. The app shows this under its checkbox before a request goes anywhere; read it the same way before attaching it from a script.
Returns
{ text }
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.