Start for $1
Developers

Desktop API

The public endpoints the desktop app uses to check for updates and download installers. Signed-in desktop routes are for the app only.

How updates work

The desktop app checks for a new version every time it starts

The update check

  1. 1
    The app startsThe bootstrap installer asks for the version manifest.
  2. 2
    It compares versionsSemver: the published version against the installed one.
  3. 3
    It downloads the new payloadOnly when a newer release is published.

What changed in each release, in plain words, is on the Changelog.

The Linux build is a plain archive from the Download page, without the update check.

Version manifests

Public JSON, no sign-in needed

Endpoints

The latest published release for each platform, sent with Cache-Control: no-store

  • GET
    /api/desktop/versionWindows. 503 with {"error": "No release published yet."} when there is none.
  • GET
    /api/desktop/version/macmacOS. 503 with "available": false when no macOS release is published yet.

Fields

Both platforms, unless marked macOS

FieldWhat it holds
platformwin or mac
availabletrue when a release exists
versionSemver string
channelFor example stable
released_atISO timestamp
min_bootstrap_versionOldest installer that can apply it
bootstrap_urlInstaller download path
payload_url, payload_sha256, payload_sizeThe encrypted app payload
bootstrap_sha256, bootstrap_sizemacOS, when applicable
changelogArray of release bullet strings

Windows, right now

Read from GET /api/desktop/version as the page opens

Open the raw JSON

Installers

Files are served when a release is published

Installer downloads

  • GET
    /downloads/desktop/DroboAI-Setup.exeWindows bootstrap installer
  • GET
    /downloads/desktop/DroboAI.dmgmacOS disk image
  • GET
    /downloadThe download page, with a card for each platform

Signed-in desktop routes

/api/desktop-auth/*, for the desktop app only

Not a public API. After sign-in, the app uses these routes for session tokens, config sync, AI listing copy and relay commands. Each needs a desktop auth token tied to your account, and they may change without notice. Never put a desktop auth token in a third-party integration or share it.

Listing backup

Kept per eBay account, in ebay_listing_backups/{slug}

  • GET
    …/listing-backup/status?slug=Row count, storage mode (inline or chunked), last updated
  • GET
    …/listing-backup/pull?slug=Every listing row saved for that eBay account
  • POST
    …/listing-backup/pushAdds or updates rows: slug, name, and rows (or one row)
  • POST
    …/listing-backup/deleteRemoves rows: slug, name and itemIds

In the app

What sellers see of the backup

  • Pull from cloud DBOn Listings: downloads the rows saved for the signed-in eBay account into the local config.json.
  • Push to cloud DBSettings → Backup: replaces the backup for that eBay account only.
  • Restores itselfSigned in to eBay with no local rows? The app pulls the backup on its own.
  • Counts are listing rowsOne per eBay item, never storage chunks.

Get help

Installs, updates, or anything on this page