---
title: "GET /v1/users/me"
method: GET
path: "/v1/users/me"
tags: ["Users"]
deprecated: true
---

# GET /v1/users/me

`GET /v1/users/me`

> **Deprecated.**

Returns the authenticated user's profile and feature flags.

**Deprecated in favor of `GET /v1/whoami`.** This route predates API keys and resolves one to the user who created it, so it cannot describe the credential actually in use. `/v1/whoami` answers that for both a session and a key. This route is still fully supported. No migration is required yet.

## Headers

- `Authorization` string

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'user', required
    - `attributes` object, required
      - `username` string, required
      - `firstName` string, nullable, required
      - `lastName` string, nullable, required
      - `role` string, nullable, required
      - `useCase` union, required
        - 'work'
        - 'personal'
      - `featureFlags` object, required
      - `email` string, email, required
      - `emailVerified` boolean, required
      - `profilePictureUrl` string, nullable, required
      - `defaultOrgId` string, uuid, nullable, required
      - `sessionOrgId` string, uuid, nullable, required — The Tessl org this session was issued for, resolved from the access token `org_id` claim, or null when the token carries no org claim or the user is not a member of the claimed org. This is the org WorkOS selected for the session (e.g. the one the user picked on the hosted chooser), distinct from `defaultOrgId`. Only populated for a user session; always null for an API key.
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `onboardingCompletedAt` string, date-time, nullable, required
      - `setupCompleted` boolean, required — Whether the user has been through profile setup: a username they chose rather than the one generated at signup, an org, and at least one workspace they can view. False until all three hold. Every account is created with a generated username, so the presence of a username says nothing on its own.
      - `cliLastSeenAt` string, date-time, nullable, required — Last time this user made an authenticated API request from a command-line client, or null if no such request has been seen. Updated at most hourly, so treat it as a coarse usage signal rather than a precise timestamp.
      - `cliLastVersion` string, nullable, required — Version reported by the last command-line client to make an authenticated request for this user, stored verbatim (a prerelease round-trips unchanged), or null if no such request has been seen. Reflects the last CLI to talk to this backend — not necessarily the newest one the user has installed — so treat it as a hint, not a guarantee. Updated on the same coarse cadence as cliLastSeenAt.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

## Changes

- **2026-09-15** `d50a02b79ad3` — 2 info
  - added the optional property `error/code` to the response with the `403` status
  - added the optional property `error/url` to the response with the `403` status
- **2026-09-09** `1de33e42f781` — 1 info
  - added the required property `data/attributes/sessionOrgId` to the response with the `200` status
- **2026-09-02** `d18817d8161c` — 1 info
  - added the required property `data/attributes/cliLastVersion` to the response with the `200` status
- **2026-08-27** `64ef6ca73e52` — 1 info
  - added the required property `data/attributes/setupCompleted` to the response with the `200` status
- **2026-08-15** `d2805094fa3d` — 1 info
  - endpoint deprecated

[Full history](https://skmtc.dev/tessl/apis/tessl-api/changes/v1/users/me/get.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) · [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tessl/apis/tessl-api/revisions/f4832accd5c3?raw)
