System Atlas

Upload a screenshot

One screenshot of the company's software (PNG, JPEG or WebP, up to 5 MB; base64 or an https URL). Metadata is stripped; it is placed on the matching component and stored private and unverified. The same image twice is skipped.

POST/api/v1/workspaces/:slug/upload/screenshotWrite · editor key

Authentication

Authorization: Bearer sa_… from the workspace owner or a member. Counts against the upload rate limit.

Parameters

Path

  • slugstringrequired

    Workspace slug

Body

  • companystringoptional

    Company slug; defaults to the workspace's own company

    min 1 charmax 80 chars
  • imagestringrequired

    The screenshot: base64 (or a data: URL) of a PNG, JPEG or WebP up to 5 MB, or an https URL to fetch it from

    min 1 charmax 7200000 chars
  • titlestringrequired

    What the screen is, in the product's words: 'Invoices list', 'Checkout: payment'

    min 1 charmax 200 chars
  • urlstringoptional

    The page or route the screen shows (https://app.example.com/invoices or /invoices)

    max 1000 chars
  • componentstringoptional

    The component it belongs to: its id, clientId or label. Omit and System Atlas matches it

    min 1 charmax 200 chars
  • interfacestringoptional

    A catalog interface id or label, if the screen is one

    min 1 charmax 200 chars
  • flow_stepstring | numberoptional

    Its place in a flow: a number, or 'checkout: payment'

Request

curl -X POST "https://systematlas.org/api/v1/workspaces/acme-builders/upload/screenshot" \
  -H "Authorization: Bearer sa_…" \
  -H "content-type: application/json" \
  -d '{"image":"iVBORw0KGgo…","title":"Invoices list","url":"/invoices"}'

Response

201 with the result in data (abbreviated here). Errors are listed in Errors and limits.

Response
{
  "data": {
    "id": "5b1e…",
    "duplicate": false,
    "tier": "private",
    "component": "Billing app"
  }
}

Over MCP

The same call as an MCP tool: upload_screenshot.