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

FieldTypeWhat it is
kindstringsupport, feature or bug. Absent is support.
subjectstringOne line, up to 140 characters. Absent, it is the first line of message, cut near 60 characters — the window sends none.
messagerequiredstringUp to 10,000 characters.
emailstringRequired 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.
diagnosticsbooleanAttach 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

FieldTypeWhat it is
idrequiredstringThe 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

FieldTypeWhat it is
idrequiredstringThe record’s id.

Body

FieldTypeWhat it is
messagerequiredstringUp 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

FieldTypeWhat it is
idrequiredstringThe record’s id.
screenshotIdrequiredstringFrom 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 }

Next Try it on your own accounts

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.