---
title: "Get Users Me"
method: GET
path: "/v1/users/me"
tags: ["v1", "users"]
---

# Get Users Me

`GET /v1/users/me`

## Request

- Base URL: `https://thrustlab.com`
- URL: `https://thrustlab.com/v1/users/me`
- Auth: HTTP bearer

Return the authenticated user's profile.

Includes: id, email, email_verified, tier (free|beta_tester|hobbyist|pro),
unit_system (metric|imperial display preference; storage stays metric),
trial_start/trial_end (or null), trial_days_remaining, and created_at.

`concurrency` reports the live occupancy of the account-wide execution
budget — `limit` from the plan, `active` runs holding a slot right now, and
`queued` runs waiting for one. That budget is shared by the dashboard and
every API key, so submitting from two places at once starves whichever went
second; these numbers are how a client sees that instead of inferring it.
All three read null if the occupancy store is briefly unreachable.

`recent_project_id` is where a run started from a catalog page is filed
unless the caller names another project: the project of the account's most
recent simulation, falling back to the default project, and null when the
account has neither. It is a READ — asking who you are never creates a
project.

The `id` is a stable `user_<ksuid>`; safe to store in your own systems
as a long-term identifier.

## Response `200`

Successful Response

- UserResource
  - `concurrency` ConcurrencyResource: What the account's shared execution budget is doing right now. ``max_concurrent_runs`` is account-wide across the dashboard and every API key, so a client submitting from two places starves whichever went second with no way to see why. These three numbers make that visible: * ``limit`` — simultaneous runs this plan allows (the entitlement). * ``active`` — runs holding an execution slot at this instant. * ``queued`` — runs waiting for one. All three are ``null`` when the occupancy store cannot be read; a whoami call never fails because a metering read did.
    - `active` integer, nullable, required: Runs holding an execution slot now, or null if unavailable.
    - `limit` integer, nullable, required: Simultaneous runs this plan allows, or null if unavailable.
    - `queued` integer, nullable, required: Runs waiting for a slot, or null if unavailable.
  - `created_at` string, date-time, required
  - `default_project_id` string, nullable: Public id (proj_…) of the account's default project, or null when it has not been created yet.
  - `email` string, email, required
  - `email_verified` boolean, required
  - `entitlements` EntitlementsResource, required: The tier -> capability bundle serialized onto /v1/users/me. Sourced from ``entitlement_for(user.tier)`` (default-down), so the frontend has ONE authoritative entitlement source and never re-hardcodes tier sets. A plain declared model (NOT a ``@computed_field``) so it appears in the OpenAPI schema that codegen consumes.
    - `api_access` boolean, required
    - `cad_export` boolean, required
    - `component_specs` boolean: DEPRECATED — always true since 2026-09-17. Every catalog row and every datasheet field is readable on every tier; the field is kept for one SDK major so a pinned client's model still validates.
    - `creator_edit` boolean, required
    - `daily_cap` integer, nullable, required: DEPRECATED — always null since 2026-09-17. The free daily simulation cap was replaced by full_model_daily; read that instead.
    - `db_access` string, required
    - `fmi_export` boolean, required
    - `full_model_daily` integer, nullable: Full-model runs allowed per rolling 24 hours, or null when unlimited. A run is one job — a single point or a sweep. Fast-model runs are unlimited on every tier and never count against this.
    - `max_concurrent_runs` integer, required: Account-wide simulations that may execute simultaneously across dashboard sessions and every API key. Additional work stays queued.
    - `sim_types` string[], required
    - `weekly_cap` integer, nullable, required: Compatibility field for a rolling weekly usage cap; null for current tiers.
  - `first_name` string, required
  - `full_model_used_today` integer: Full-model runs started by this account in the last 24 hours. A run is one job — a single point or a sweep.
  - `gate_required_tiers` object, required
  - `id` string, required
  - `last_name` string, required
  - `object` string
  - `recent_project_id` string, nullable: Public id (proj_…) of the project the account's most recent simulation was filed in, falling back to the default project. Null when the account has neither. This is where a run started from a catalog page is saved unless the caller names another project.
  - `tier` string, required
  - `trial_days_remaining` integer, nullable, required
  - `trial_end` string, date-time, nullable, required
  - `trial_start` string, date-time, nullable, required
  - `unit_system` 'metric' | 'imperial', required

---

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