Resolve an environment

.md

Turn the address somebody typed into the environment they are signing in to.

POST/v1/auth/workspace

The first call an app makes, before anybody has typed a password. It turns an address into the environment behind it, and hands back enough branding for the sign-in screen to look like the firm it belongs to.

Needs no credential, which is the point: this is what you ask when you have none.

Accepts what somebody would actually type. acmefunded.com, https://acmefunded.com and https://acmefunded.com/ are the same answer.

Request

curl https://api.proppertrading.com/v1/auth/workspace \
  -H "Content-Type: application/json" \
  -d '{"workspace": "acmefunded.com"}'
FieldTypeDescription
workspacestringThe address of the environment. Required

Response

{
    "data": {
        "object": "workspace",
        "id": "acme",
        "name": "Acme Funded",
        "platform": false,
        "url": "https://acmefunded.com",
        "branding": {
            "logo_url": "https://acmefunded.com/storage/tenants/4/branding/logo.webp",
            "logo_dark_url": null,
            "icon_url": null,
            "primary_color": "#3b82f6",
            "primary_color_dark": "#60a5fa",
            "primary_foreground": "#ffffff",
            "primary_foreground_dark": "#0b1530"
        },
        "maintenance": false
    },
    "meta": { "request_id": "req_01kz4bkr1aj1gv63d8fv3133ey" }
}
FieldDescription
idWhat choosing an environment and the Propper-Workspace header take. Signing in with an environment takes the address, not this id
platformTrue for Propper itself, false for a propfirm
urlWhere its website is, for opening something from a notification there
brandingA fixed subset for a sign-in screen. Any field may be null, and the whole object is null when platform is true
branding.icon_urlSquare, at most 512 pixels, for the firm in a small space such as a switcher. Made from the favicon the firm uploads, so null until it uploads one again after 2026-10-15, and null for a favicon uploaded as an ICO: then use the logo
branding.primary_foregroundWhat the firm writes on its own colour, such as the label of a button. _dark for dark mode. Null when the firm never set one: then pick black or white by contrast
maintenanceThe firm is closed. Signing in will be refused until it reopens

Errors

StatusCodeMeaning
400workspace_not_foundNothing is served from that address
429rate_limit_exceededMore than 30 lookups a minute from one address

It never says whether an account exists

This endpoint knows nothing about people. It answers about domains only.

Propper itself has no branding

{"workspace": "proppertrading.com"} answers with "platform": true and "branding": null, not with an object of null fields. A client that reaches straight into branding.logo_url crashes on the one environment our own staff sign in on.