Managing users¶
You address every client by your own user_ref — your client code, CUID, whatever
you already use. TradLyt mints an internal identity behind it and never receives the
client's email: we generate a synthetic one from your user_ref.
The one exception is full_name, which is optional. Send it and we store it; omit it
and we fall back to a non-identifying placeholder. If you'd rather TradLyt held no
personal data about your clients at all, simply don't send it — everything else works
identically.
Provision a user¶
Claims a seat and creates the behavioural profile. Idempotent — calling it again
for an existing user_ref returns the same user with created: false and does not
consume a second seat.
POST /users
Request body
| Field | Type | Description |
|---|---|---|
user_ref |
string |
Your identifier for the client (required). |
full_name |
string |
Optional display name. The only field that can carry personal data — omit it and we store a non-identifying placeholder instead. |
Response
{
"user_ref": "CLIENT00423",
"user_id": "b1e5…",
"email": "[email protected]",
"created": true,
"seats_used": 41,
"seats_available": 59
}
emailis a synthetic address we mint internally — you never use it.createdisfalsewhen the user already existed (safe to call on every login).
Seat limit
When you're at your seat cap, provisioning a new user_ref returns
402 seat_limit_reached. Deprovision inactive clients to free seats, or contact
TradLyt to increase your seat count. Re-provisioning an existing user never hits
this.
Look up a user¶
GET /users/{user_ref}
{
"user_ref": "CLIENT00423",
"user_id": "b1e5…",
"is_active": true,
"last_active_at": "2026-10-29T05:56:47.685114+00:00"
}
user_id is TradLyt's internal id for the client (stable; useful for your own
correlation). last_active_at updates whenever the user's data is touched (a trade
sync or a pre-trade call), and is ISO-8601 with an explicit UTC offset. Returns
404 if the user_ref was never provisioned.
Deprovision a user¶
Deactivates the client and frees their seat. Idempotent.
DELETE /users/{user_ref}
History is retained
Deprovisioning only frees the seat — the client's behavioural history is kept.
Re-provisioning the same user_ref later resumes exactly where they left off.